Changeset 20990 for trunk/Nebulous-Server/lib/Nebulous/Server
- Timestamp:
- Dec 14, 2008, 12:54:25 PM (18 years ago)
- Location:
- trunk/Nebulous-Server/lib/Nebulous/Server
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Nebulous-Server/lib/Nebulous/Server/Config.pm
r20965 r20990 1 1 # Copyright (C) 2005 Joshua Hoblitt 2 2 # 3 # $Id: Config.pm,v 1. 4 2008-12-12 21:13:41 jhoblittExp $3 # $Id: Config.pm,v 1.5 2008-12-14 22:54:25 eugene Exp $ 4 4 5 5 package Nebulous::Server::Config; … … 8 8 use warnings FATAL => qw( all ); 9 9 10 our $VERSION = 0.0 3;10 our $VERSION = 0.02; 11 11 12 12 use base qw( Class::Accessor::Fast ); 13 13 14 14 use Log::Log4perl qw( :levels ); 15 use Params::Validate qw( validate validate_posSCALAR );15 use Params::Validate qw( validate SCALAR ); 16 16 17 17 our %LEVELS = ( … … 25 25 ); 26 26 27 my $db_validate = { 28 dbindex => { 29 type => SCALAR, 30 regex => qr/^\d+$/, 31 }, 27 my $new_validate = { 32 28 dsn => { type => SCALAR }, 33 29 dbuser => { type => SCALAR }, 34 30 dbpasswd => { type => SCALAR }, 35 };36 37 my $new_validate = {38 31 log_level => { 39 32 type => SCALAR, … … 46 39 }, 47 40 }, 48 dsn => { type => SCALAR, optional => 1 },49 dbuser => { type => SCALAR, optional => 1 },50 dbpasswd => { type => SCALAR, optional => 1 },51 41 }; 52 42 53 43 __PACKAGE__->mk_ro_accessors( keys %$new_validate ); 54 44 55 56 sub new 57 { 45 sub init { 58 46 my $class = shift; 59 47 … … 61 49 62 50 # normalize log levels to lower-case 63 my $self ={ log_level => lc $p{ log_level } }; 51 $p{ log_level } = lc $p{ log_level }; 52 53 my $self = \%p; 64 54 65 55 bless $self, $class || ref $class; 66 67 my @dbs;68 $self->{dbs} = \@dbs;69 70 if (defined $p{dsn} or defined $p{dbuser} or defined $p{dbpasswd}) {71 $self->add_db(72 dbindex => 0,73 dsn => $p{dsn},74 dbuser => $p{dbuser},75 dbpasswd => $p{dbpasswd},76 );77 }78 56 79 57 return $self; 80 58 } 81 59 82 83 sub add_db84 {85 my $self = shift;86 87 my %p = validate( @_, $db_validate );88 89 my $config_db = Nebulous::Server::Config::DB->new({90 dsn => $p{dsn},91 dbuser => $p{dbuser},92 dbpasswd => $p{dbpasswd},93 });94 95 $self->{dbs}->[$p{dbindex}] = $config_db;96 97 return $self;98 }99 100 101 sub db102 {103 my $self = shift;104 105 my ($db_index) = validate_pos( @_, { type => SCALAR, optional => 1, });106 107 # default to 0108 $db_index ||= 0;109 110 return $self->{dbs}->[$db_index];111 }112 113 114 sub n_db115 {116 my $self = shift;117 118 return scalar @{ $self->{dbs} };119 }120 121 122 package Nebulous::Server::Config::DB;123 124 use strict;125 use warnings FATAL => qw( all );126 127 our $VERSION = 0.01;128 129 use base qw( Class::Accessor::Fast );130 131 __PACKAGE__->mk_ro_accessors(qw( dsn dbuser dbpasswd ));132 133 60 1; 134 61 -
trunk/Nebulous-Server/lib/Nebulous/Server/Log.pm
r20965 r20990 1 1 # Copyright (c) 2004 Joshua Hoblitt 2 2 # 3 # $Id: Log.pm,v 1. 8 2008-12-12 21:13:41 jhoblittExp $3 # $Id: Log.pm,v 1.9 2008-12-14 22:54:25 eugene Exp $ 4 4 5 5 package Nebulous::Server::Log; … … 16 16 my ($self, $config) = @_; 17 17 18 # my $dsn = $config->db->dsn;19 # my $dbuser = $config->db->dbuser;20 # my $dbpasswd = $config->db->dbpasswd;18 my $dsn = $config->dsn; 19 my $dbuser = $config->dbuser; 20 my $dbpasswd = $config->dbpasswd; 21 21 22 22 my $conf = <<END; … … 30 30 # date | hostname | priority | method/sub - message\n 31 31 32 #log4perl.appender.SQLLOG = Log::Log4perl::Appender::DBI33 # log4perl.appender.SQLLOG.sql = \ 34 # log4perl.appender.SQLLOG.datasource = 35 # log4perl.appender.SQLLOG.username = 36 # log4perl.appender.SQLLOG.password = 32 log4perl.appender.SQLLOG = Log::Log4perl::Appender::DBI 33 log4perl.appender.SQLLOG.datasource = $dsn 34 log4perl.appender.SQLLOG.username = $dbuser 35 log4perl.appender.SQLLOG.password = $dbpasswd 36 log4perl.appender.SQLLOG.sql = \ 37 37 INSERT INTO log (timestamp, hostname, level, sub, message) \ 38 38 VALUES (%d, %H, %p, %M, %m) -
trunk/Nebulous-Server/lib/Nebulous/Server/SOAP.pm
r20972 r20990 1 1 # Copyright (c) 2004 Joshua Hoblitt 2 2 # 3 # $Id: SOAP.pm,v 1. 5 2008-12-13 00:41:15 jhoblittExp $3 # $Id: SOAP.pm,v 1.6 2008-12-14 22:54:25 eugene Exp $ 4 4 5 5 package Nebulous::Server::SOAP; … … 17 17 our $AUTOLOAD; 18 18 19 our $config;19 our @args; 20 20 our $neb; 21 21 22 23 sub new_on_init 24 { 22 sub new_on_init { 25 23 my $self = shift; 26 24 … … 29 27 require Apache2::ServerUtil; 30 28 31 $config = shift;29 @args = @_; 32 30 33 31 my $s = Apache2::ServerUtil->server; … … 37 35 } 38 36 39 40 sub init 41 { 37 sub init { 42 38 my $self = shift; 43 39 44 $neb = Nebulous::Server->new _from_config($config);40 $neb = Nebulous::Server->new(@args); 45 41 46 42 return Apache2::Const::OK; 47 43 } 48 44 49 50 sub AUTOLOAD 51 { 45 sub AUTOLOAD { 52 46 my $self = shift; 53 47 … … 82 76 } 83 77 84 85 78 1; -
trunk/Nebulous-Server/lib/Nebulous/Server/SQL.pm
r20966 r20990 1 1 # Copyright (c) 2004 Joshua Hoblitt 2 2 # 3 # $Id: SQL.pm,v 1.7 7 2008-12-12 21:41:07 jhoblittExp $3 # $Id: SQL.pm,v 1.78 2008-12-14 22:54:25 eugene Exp $ 4 4 5 5 package Nebulous::Server::SQL; … … 8 8 use warnings FATAL => qw( all ); 9 9 10 our $VERSION = '0.0 3';10 our $VERSION = '0.02'; 11 11 12 12 use base qw( Class::Accessor::Fast ); … … 47 47 (so_id, vol_id, uri) 48 48 VALUES (?, ?, 'error') 49 },50 get_all_instances => qq{51 SELECT * FROM INSTANCE52 WHERE so_id = ?53 49 }, 54 50 get_object => qq{ … … 328 324 HAVING available_instances < instances OR instances < copies 329 325 }, 330 find_objects_with_extra_instances _by_xattr=> qq{331 SELECT 332 s o.so_id,333 so.ext_id,326 find_objects_with_extra_instances => qq{ 327 SELECT 328 storage_object.so_id, 329 ext_id, 334 330 count(ins_id) as instances, 335 mv.name as volume_name, 336 mv.host as volume_host, 337 count(mv.vol_id) as available_instances, 338 xattr.value as copies 339 FROM storage_object AS so 340 JOIN storage_object_xattr as xattr 341 ON so.so_id = xattr.so_id 342 AND xattr.name = 'user.copies' 343 JOIN instance AS i 344 ON so.so_id = i.so_id 345 JOIN mountedvol AS mv 331 volume.name as volume_name, 332 volume.host as volume_host, 333 count(mymountedvol.vol_id) as available_instances, 334 count(mymountedvol.vol_id) > 0 as recoverable, 335 storage_object_xattr.value as copies 336 FROM storage_object 337 JOIN instance 338 USING(so_id) 339 JOIN volume 340 USING(vol_id) 341 LEFT JOIN storage_object_xattr 342 ON storage_object.so_id = storage_object_xattr.so_id 343 JOIN mymountedvol 346 344 USING(vol_id) 347 345 WHERE 348 mv.available = 1 346 mymountedvol.available = 1 347 AND storage_object_xattr.name = 'user.copies' 349 348 GROUP BY so_id 350 349 HAVING available_instances > copies 351 limit 5;352 350 }, 353 351 get_mounted_volumes => qq{
Note:
See TracChangeset
for help on using the changeset viewer.
