Changeset 13180 for trunk/Nebulous-Server
- Timestamp:
- May 2, 2007, 5:21:28 PM (19 years ago)
- Location:
- trunk/Nebulous-Server
- Files:
-
- 3 edited
-
lib/Nebulous/Server.pm (modified) (2 diffs)
-
lib/Nebulous/Server/SQL.pm (modified) (3 diffs)
-
t/09_server_stat_object.t (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Nebulous-Server/lib/Nebulous/Server.pm
r13173 r13180 1 1 # Copyright (c) 2004 Joshua Hoblitt 2 2 # 3 # $Id: Server.pm,v 1.3 2 2007-05-03 01:44:23jhoblitt Exp $3 # $Id: Server.pm,v 1.33 2007-05-03 03:21:28 jhoblitt Exp $ 4 4 5 5 package Nebulous::Server; … … 1021 1021 my ( $key ) = validate_pos( @_, 1022 1022 { 1023 type => SCALAR, 1024 }, 1025 ); 1026 1027 my $log = $self->log; 1028 my $sql = $self->sql; 1029 my $db =$self->db; 1030 1031 $log->debug( "entered - @_" ); 1023 type => SCALAR, 1024 callbacks => { 1025 'is valid object key' => sub { $self->_is_valid_object_key($_[0]) }, 1026 }, 1027 }, 1028 ); 1029 1030 my $log = $self->log; 1031 my $sql = $self->sql; 1032 my $db =$self->db; 1033 1034 $log->debug("entered - @_"); 1032 1035 1033 1036 my $stat; 1034 1037 eval { 1035 my $query = $db->prepare_cached( $sql-> get_object );1036 my $rows = $query->execute( $key);1037 1038 unless ( $rows == 1) {1039 $log->logdie( "no storage object found");1038 my $query = $db->prepare_cached( $sql->stat_object ); 1039 my $rows = $query->execute($key); 1040 1041 unless ($rows == 1) { 1042 $log->logdie("no storage object found"); 1040 1043 } 1041 1044 1042 1045 $stat = $query->fetchrow_arrayref; 1043 1046 $query->finish; 1044 1045 $db->commit;1046 1047 }; 1047 1048 if ( $@ ) { 1048 1049 $db->rollback; 1049 $log->logdie( "database error: $@");1050 } 1051 1052 $log->debug( "leaving");1050 $log->logdie("database error: $@"); 1051 } 1052 1053 $log->debug("leaving"); 1053 1054 1054 1055 return $stat; -
trunk/Nebulous-Server/lib/Nebulous/Server/SQL.pm
r13177 r13180 1 1 # Copyright (c) 2004 Joshua Hoblitt 2 2 # 3 # $Id: SQL.pm,v 1.3 5 2007-05-03 01:49:55jhoblitt Exp $3 # $Id: SQL.pm,v 1.36 2007-05-03 03:21:28 jhoblitt Exp $ 4 4 5 5 package Nebulous::Server::SQL; … … 53 53 get_object => qq{ 54 54 SELECT 55 s torage_object.so_id,55 so_id, 56 56 ext_id, 57 57 read_lock, … … 63 63 USING (so_id) 64 64 WHERE ext_id = ? 65 }, 66 stat_object => qq{ 67 SELECT 68 storage_object.so_id, 69 storage_object.ext_id, 70 read_lock, 71 write_lock, 72 storage_object_attr.epoch, 73 storage_object_attr.mtime, 74 COUNT(instance.so_id) as instances 75 FROM storage_object 76 JOIN storage_object_attr 77 USING (so_id) 78 JOIN instance 79 USING (so_id) 80 WHERE ext_id = ? 81 GROUP BY storage_object.so_id 65 82 }, 66 83 # Note: this sets an update lock -
trunk/Nebulous-Server/t/09_server_stat_object.t
r13092 r13180 3 3 # Copryight (C) 2004-2005 Joshua Hoblitt 4 4 # 5 # $Id: 09_server_stat_object.t,v 1.1 0 2007-05-01 02:52:04jhoblitt Exp $5 # $Id: 09_server_stat_object.t,v 1.11 2007-05-03 03:21:28 jhoblitt Exp $ 6 6 7 7 use strict; 8 8 use warnings FATAL => qw( all ); 9 9 10 use Test::More tests => 1 1;10 use Test::More tests => 12; 11 11 12 12 use lib qw( ./t ./lib ); … … 23 23 24 24 Test::Nebulous->setup; 25 26 25 { 27 my $uri =$neb->create_object("foo");26 $neb->create_object("foo"); 28 27 29 28 my $info = $neb->stat_object("foo"); 30 29 31 is(scalar @$info, 6, "number of columns");30 is(scalar @$info, 7, "number of columns"); 32 31 } 33 32 … … 35 34 36 35 { 37 my $uri =$neb->create_object("foo", "node01");36 $neb->create_object("foo", "node01"); 38 37 39 38 my $info = $neb->stat_object("foo"); 40 39 41 is(scalar @$info, 6, "number of columns");40 is(scalar @$info, 7, "number of columns"); 42 41 is(@$info[0], 1, "so_id"); 43 42 is(@$info[1], "foo", "ext_id"); … … 46 45 like(@$info[4], qr/....-..-.. ..:..:../, "epoch"); 47 46 like(@$info[5], qr/....-..-.. ..:..:../, "mtime"); 47 is(@$info[6], 1, "instances"); 48 48 } 49 49 … … 53 53 $neb->stat_object("foo"); 54 54 }; 55 like($@, qr/ no storage object found/, "object does not exist");55 like($@, qr/is valid object key/, "object does not exist"); 56 56 57 57 Test::Nebulous->setup; … … 65 65 66 66 eval { 67 $neb->create_object("foo"); 67 68 $neb->stat_object("foo", 2); 68 69 };
Note:
See TracChangeset
for help on using the changeset viewer.
