Changeset 13173
- Timestamp:
- May 2, 2007, 3:44:24 PM (19 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 15 edited
-
Nebulous-Server/Changes (modified) (1 diff)
-
Nebulous-Server/MANIFEST (modified) (1 diff)
-
Nebulous-Server/lib/Nebulous/Server.pm (modified) (7 diffs)
-
Nebulous-Server/lib/Nebulous/Server/SQL.pm (modified) (3 diffs)
-
Nebulous-Server/t/04_server_replicate_object.t (modified) (3 diffs)
-
Nebulous-Server/t/07_server_find_instances.t (modified) (4 diffs)
-
Nebulous-Server/t/08_server_delete_instance.t (modified) (2 diffs)
-
Nebulous-Server/t/11_server_is_valid_object_key.t (added)
-
Nebulous/Changes (modified) (1 diff)
-
Nebulous/MANIFEST (modified) (1 diff)
-
Nebulous/lib/Nebulous/Server.pm (modified) (7 diffs)
-
Nebulous/lib/Nebulous/Server/SQL.pm (modified) (3 diffs)
-
Nebulous/t/04_server_replicate_object.t (modified) (3 diffs)
-
Nebulous/t/07_server_find_instances.t (modified) (4 diffs)
-
Nebulous/t/08_server_delete_instance.t (modified) (2 diffs)
-
Nebulous/t/11_server_is_valid_object_key.t (added)
-
Nebulous/t/53_client_cull.t (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Nebulous-Server/Changes
r13132 r13173 2 2 3 3 0.05 4 - better paramter checking 5 - overhaul instance table 6 - add ->_is_valid_object_key() method 7 - change ->find_instances() to check it's params and only return instances 8 on mounted & available volumes 4 9 - add volume.available field and logic to use it 5 10 - add volume.allocate field and logic to use it -
trunk/Nebulous-Server/MANIFEST
r13092 r13173 87 87 t/09_server_stat_object.t 88 88 t/10_server_is_valid_volume_name.t 89 t/11_server_is_valid_object_key.t 89 90 t/12_server_find_objects.t 90 91 t/13_server_rename_object.t -
trunk/Nebulous-Server/lib/Nebulous/Server.pm
r13131 r13173 1 1 # Copyright (c) 2004 Joshua Hoblitt 2 2 # 3 # $Id: Server.pm,v 1.3 1 2007-05-02 20:53:42jhoblitt Exp $3 # $Id: Server.pm,v 1.32 2007-05-03 01:44:23 jhoblitt Exp $ 4 4 5 5 package Nebulous::Server; … … 283 283 my $self = shift; 284 284 285 my ($key, $volume) = validate_pos(@_, 286 { 287 type => SCALAR, 288 }, 289 { 290 type => SCALAR, 285 my ($key, $vol_name) = validate_pos(@_, 286 { 287 type => SCALAR, 288 callbacks => { 289 'is valid object key' => sub { $self->_is_valid_object_key($_[0]) }, 290 }, 291 }, 292 { 293 type => SCALAR, 294 callbacks => { 295 # check that the volume name requested is valid 296 'is valid volume name' => sub { $self->_is_valid_volume_name($_[0]) }, 297 }, 291 298 optional => 1, 292 299 }, … … 301 308 my ($vol_id, $vol_path); 302 309 eval { 303 ($vol_id, $vol_path) = $self->_get_storage_volume($vol ume);310 ($vol_id, $vol_path) = $self->_get_storage_volume($vol_name); 304 311 }; 305 312 if ($@) { … … 312 319 { 313 320 my $query = $db->prepare_cached( $sql->get_object_instances ); 314 my $rows = $query->execute( $key);321 my $rows = $query->execute($key, 1); 315 322 316 323 unless ( $rows > 0 ) { … … 866 873 my $self = shift; 867 874 868 my ( $key, $volume ) = validate_pos( @_, 869 { 870 type => SCALAR, 871 }, 872 { 873 type => SCALAR, 875 my ($key, $vol_name) = validate_pos(@_, 876 { 877 type => SCALAR, 878 callbacks => { 879 'is valid object key' => sub { $self->_is_valid_object_key($_[0]) }, 880 }, 881 }, 882 { 883 type => SCALAR, 884 callbacks => { 885 # check that the volume name requested is valid 886 'is valid volume name' => sub { $self->_is_valid_volume_name($_[0]) }, 887 }, 874 888 optional => 1, 875 889 }, … … 880 894 my $db =$self->db; 881 895 882 $log->debug( "entered - @_" ); 883 884 # TODO restrict search to a volume 896 $log->debug("entered - @_"); 885 897 886 898 my $query; 887 888 eval { 889 $query = $db->prepare_cached( $sql->get_object_instances ); 890 $query->execute( $key ); 891 }; 892 $log->logdie( "database error: $@" ) if $@; 899 eval { 900 { 901 # ask the db to generate the table of mounted Nebulous volume 902 my $query = $db->prepare_cached("call getmountedvol()"); 903 $query->execute(); 904 } 905 906 if ($vol_name) { 907 $query = $db->prepare_cached( $sql->get_object_instances_by_vol_name ); 908 # ext_id, name, available 909 my $rows = $query->execute($key, $vol_name, 1); 910 unless ($rows > 0) { 911 $query->finish; 912 $log->logdie("no instances on storage volume: $vol_name or volume is not available"); 913 } 914 } else { 915 $query = $db->prepare_cached( $sql->get_object_instances ); 916 # ext_id, available 917 my $rows = $query->execute($key, 1); 918 unless ($rows > 0) { 919 $query->finish; 920 $log->logdie("no instances available"); 921 } 922 } 923 }; 924 $log->logdie("database error: $@") if $@; 893 925 894 926 my @locations; 895 927 896 while ( my $row = $query->fetchrow_hashref) {928 while (my $row = $query->fetchrow_hashref) { 897 929 my $instance = $row->{ 'uri' }; 898 930 push @locations, $instance if $instance; 899 931 } 900 932 901 $log->logdie( "no instances found" ) unless ( scalar @locations ); 902 903 $log->debug( "leaving" ); 933 # XXX remove this? 934 $log->logdie("no instances found") unless (scalar @locations); 935 936 $log->debug("leaving"); 904 937 905 938 return \@locations; … … 1089 1122 } 1090 1123 1124 sub _is_valid_object_key { 1125 my ($self, $key) = @_; 1126 1127 my $log = $self->log; 1128 my $sql = $self->sql; 1129 my $db =$self->db; 1130 1131 my $ext_id; 1132 eval { 1133 my $query = $db->prepare_cached( $sql->get_object ); 1134 $query->execute($key); 1135 ($ext_id) = $query->fetchrow_array; 1136 $query->finish; 1137 }; 1138 if ($@) { 1139 $db->rollback; 1140 $log->logdie( "database error: $@" ); 1141 } 1142 1143 if (defined $ext_id) { 1144 return 1; 1145 } 1146 1147 return; 1148 } 1149 1091 1150 sub _is_valid_volume_name { 1092 1151 my ($self, $vol_name) = @_; -
trunk/Nebulous-Server/lib/Nebulous/Server/SQL.pm
r13131 r13173 1 1 # Copyright (c) 2004 Joshua Hoblitt 2 2 # 3 # $Id: SQL.pm,v 1.3 3 2007-05-02 20:53:42jhoblitt Exp $3 # $Id: SQL.pm,v 1.34 2007-05-03 01:44:24 jhoblitt Exp $ 4 4 5 5 package Nebulous::Server::SQL; … … 144 144 WHERE so_id = ? 145 145 }, 146 get_object_instances => qq{ 147 SELECT storage_object.so_id, 148 uri, assigned_location 149 FROM storage_object 150 LEFT JOIN instance 151 USING (so_id) 152 WHERE ext_id = ? 146 get_object_instances => qq{ 147 SELECT 148 storage_object.so_id, 149 uri, 150 assigned_vol_id 151 FROM storage_object 152 JOIN instance 153 USING (so_id) 154 JOIN mountedvol 155 USING(vol_id) 156 WHERE ext_id = ? 157 AND available = ? 158 }, 159 get_object_instances_by_vol_name => qq{ 160 SELECT 161 storage_object.so_id, 162 uri, 163 assigned_vol_id 164 FROM storage_object 165 JOIN instance 166 USING (so_id) 167 JOIN mountedvol 168 USING(vol_id) 169 WHERE ext_id = ? 170 AND name = ? 171 AND available = ? 153 172 }, 154 173 get_storage_volume_byname => qq{ … … 284 303 uri VARCHAR(255) NOT NULL, 285 304 sha1sum CHAR(40) ASCII, 286 assigned_ location BOOL,305 assigned_vol_id INT, 287 306 epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP, 288 307 mtime TIMESTAMP, -
trunk/Nebulous-Server/t/04_server_replicate_object.t
r12960 r13173 3 3 # Copryight (C) 2004-2005 Joshua Hoblitt 4 4 # 5 # $Id: 04_server_replicate_object.t,v 1. 7 2007-04-23 20:42:29jhoblitt Exp $5 # $Id: 04_server_replicate_object.t,v 1.8 2007-05-03 01:44:24 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 ); … … 72 72 73 73 eval { 74 $neb->replicate_object( "foo");74 $neb->replicate_object('foo'); 75 75 }; 76 like($@, qr/storage object does not exist/, "storage object does not exist"); 76 like($@, qr/is valid object key/, 'storage object does not exist'); 77 78 Test::Nebulous->setup; 79 80 eval { 81 $neb->create_object('foo'); 82 $neb->replicate_object('foo', 'bar'); 83 }; 84 like($@, qr/is valid volume name/, 'storage volume does not exist'); 77 85 78 86 Test::Nebulous->setup; … … 81 89 $neb->replicate_object(); 82 90 }; 83 like($@, qr/1 - 2 were expected/, "no params");91 like($@, qr/1 - 2 were expected/, 'no params'); 84 92 85 93 Test::Nebulous->setup; 86 94 87 95 eval { 88 $neb->replicate_object(1, 2, 3); 96 $neb->create_object('foo'); 97 $neb->replicate_object('foo', 'node01', 3); 89 98 }; 90 like($@, qr/1 - 2 were expected/, "too many params");99 like($@, qr/1 - 2 were expected/, 'too many params'); 91 100 92 101 Test::Nebulous->cleanup; -
trunk/Nebulous-Server/t/07_server_find_instances.t
r12643 r13173 3 3 # Copryight (C) 2004-2005 Joshua Hoblitt 4 4 # 5 # $Id: 07_server_find_instances.t,v 1. 7 2007-03-28 21:48:24 jhoblitt Exp $5 # $Id: 07_server_find_instances.t,v 1.8 2007-05-03 01:44:24 jhoblitt Exp $ 6 6 7 7 use strict; 8 8 use warnings FATAL => qw( all ); 9 9 10 use Test::More tests => 1 3;10 use Test::More tests => 15; 11 11 12 12 use lib qw( ./t ./lib ); … … 53 53 { 54 54 # key, volume 55 my $uri = $neb->create_object( "foo");55 my $uri = $neb->create_object('foo', 'node01'); 56 56 57 my $locations = $neb->find_instances( "foo", "node01");57 my $locations = $neb->find_instances('foo', 'node01'); 58 58 59 59 uri_scheme_ok($locations->[0], 'file'); … … 75 75 } 76 76 77 # object exists but instance is on a different volume 78 Test::Nebulous->setup; 79 80 eval { 81 # key, volume 82 my $uri = $neb->create_object('foo', 'node01'); 83 84 my $locations = $neb->find_instances('foo', 'node02'); 85 }; 86 like($@, qr/no instances on storage volume/, 'instances on a different volume'); 87 77 88 78 89 Test::Nebulous->setup; 79 90 80 91 eval { 81 $neb->find_instances( "foo");92 $neb->find_instances('foo'); 82 93 }; 83 like($@, qr/no instances found/, "storage object does not exist"); 94 like($@, qr/is valid object key/, "storage object does not exist"); 95 96 Test::Nebulous->setup; 97 98 eval { 99 $neb->create_object('foo'); 100 $neb->find_instances('foo', 'bar'); 101 }; 102 like($@, qr/is valid volume name/, "storage volume does not exist"); 84 103 85 104 Test::Nebulous->setup; … … 93 112 94 113 eval { 95 $neb->find_instances("foo", 'read', 3); 114 $neb->create_object('foo'); 115 $neb->find_instances('foo', 'node01', 3); 96 116 }; 97 117 like($@, qr/1 - 2 were expected/, "too many params"); -
trunk/Nebulous-Server/t/08_server_delete_instance.t
r12644 r13173 3 3 # Copryight (C) 2004-2005 Joshua Hoblitt 4 4 # 5 # $Id: 08_server_delete_instance.t,v 1. 7 2007-03-28 21:50:26jhoblitt Exp $5 # $Id: 08_server_delete_instance.t,v 1.8 2007-05-03 01:44:24 jhoblitt Exp $ 6 6 7 7 use strict; … … 47 47 $neb->find_instances("foo"); 48 48 }; 49 like($@, qr/ no instances found/, "storage object was deleted");49 like($@, qr/is valid object key/, "storage object was deleted"); 50 50 } 51 51 -
trunk/Nebulous/Changes
r13132 r13173 2 2 3 3 0.05 4 - better paramter checking 5 - overhaul instance table 6 - add ->_is_valid_object_key() method 7 - change ->find_instances() to check it's params and only return instances 8 on mounted & available volumes 4 9 - add volume.available field and logic to use it 5 10 - add volume.allocate field and logic to use it -
trunk/Nebulous/MANIFEST
r13092 r13173 87 87 t/09_server_stat_object.t 88 88 t/10_server_is_valid_volume_name.t 89 t/11_server_is_valid_object_key.t 89 90 t/12_server_find_objects.t 90 91 t/13_server_rename_object.t -
trunk/Nebulous/lib/Nebulous/Server.pm
r13131 r13173 1 1 # Copyright (c) 2004 Joshua Hoblitt 2 2 # 3 # $Id: Server.pm,v 1.3 1 2007-05-02 20:53:42jhoblitt Exp $3 # $Id: Server.pm,v 1.32 2007-05-03 01:44:23 jhoblitt Exp $ 4 4 5 5 package Nebulous::Server; … … 283 283 my $self = shift; 284 284 285 my ($key, $volume) = validate_pos(@_, 286 { 287 type => SCALAR, 288 }, 289 { 290 type => SCALAR, 285 my ($key, $vol_name) = validate_pos(@_, 286 { 287 type => SCALAR, 288 callbacks => { 289 'is valid object key' => sub { $self->_is_valid_object_key($_[0]) }, 290 }, 291 }, 292 { 293 type => SCALAR, 294 callbacks => { 295 # check that the volume name requested is valid 296 'is valid volume name' => sub { $self->_is_valid_volume_name($_[0]) }, 297 }, 291 298 optional => 1, 292 299 }, … … 301 308 my ($vol_id, $vol_path); 302 309 eval { 303 ($vol_id, $vol_path) = $self->_get_storage_volume($vol ume);310 ($vol_id, $vol_path) = $self->_get_storage_volume($vol_name); 304 311 }; 305 312 if ($@) { … … 312 319 { 313 320 my $query = $db->prepare_cached( $sql->get_object_instances ); 314 my $rows = $query->execute( $key);321 my $rows = $query->execute($key, 1); 315 322 316 323 unless ( $rows > 0 ) { … … 866 873 my $self = shift; 867 874 868 my ( $key, $volume ) = validate_pos( @_, 869 { 870 type => SCALAR, 871 }, 872 { 873 type => SCALAR, 875 my ($key, $vol_name) = validate_pos(@_, 876 { 877 type => SCALAR, 878 callbacks => { 879 'is valid object key' => sub { $self->_is_valid_object_key($_[0]) }, 880 }, 881 }, 882 { 883 type => SCALAR, 884 callbacks => { 885 # check that the volume name requested is valid 886 'is valid volume name' => sub { $self->_is_valid_volume_name($_[0]) }, 887 }, 874 888 optional => 1, 875 889 }, … … 880 894 my $db =$self->db; 881 895 882 $log->debug( "entered - @_" ); 883 884 # TODO restrict search to a volume 896 $log->debug("entered - @_"); 885 897 886 898 my $query; 887 888 eval { 889 $query = $db->prepare_cached( $sql->get_object_instances ); 890 $query->execute( $key ); 891 }; 892 $log->logdie( "database error: $@" ) if $@; 899 eval { 900 { 901 # ask the db to generate the table of mounted Nebulous volume 902 my $query = $db->prepare_cached("call getmountedvol()"); 903 $query->execute(); 904 } 905 906 if ($vol_name) { 907 $query = $db->prepare_cached( $sql->get_object_instances_by_vol_name ); 908 # ext_id, name, available 909 my $rows = $query->execute($key, $vol_name, 1); 910 unless ($rows > 0) { 911 $query->finish; 912 $log->logdie("no instances on storage volume: $vol_name or volume is not available"); 913 } 914 } else { 915 $query = $db->prepare_cached( $sql->get_object_instances ); 916 # ext_id, available 917 my $rows = $query->execute($key, 1); 918 unless ($rows > 0) { 919 $query->finish; 920 $log->logdie("no instances available"); 921 } 922 } 923 }; 924 $log->logdie("database error: $@") if $@; 893 925 894 926 my @locations; 895 927 896 while ( my $row = $query->fetchrow_hashref) {928 while (my $row = $query->fetchrow_hashref) { 897 929 my $instance = $row->{ 'uri' }; 898 930 push @locations, $instance if $instance; 899 931 } 900 932 901 $log->logdie( "no instances found" ) unless ( scalar @locations ); 902 903 $log->debug( "leaving" ); 933 # XXX remove this? 934 $log->logdie("no instances found") unless (scalar @locations); 935 936 $log->debug("leaving"); 904 937 905 938 return \@locations; … … 1089 1122 } 1090 1123 1124 sub _is_valid_object_key { 1125 my ($self, $key) = @_; 1126 1127 my $log = $self->log; 1128 my $sql = $self->sql; 1129 my $db =$self->db; 1130 1131 my $ext_id; 1132 eval { 1133 my $query = $db->prepare_cached( $sql->get_object ); 1134 $query->execute($key); 1135 ($ext_id) = $query->fetchrow_array; 1136 $query->finish; 1137 }; 1138 if ($@) { 1139 $db->rollback; 1140 $log->logdie( "database error: $@" ); 1141 } 1142 1143 if (defined $ext_id) { 1144 return 1; 1145 } 1146 1147 return; 1148 } 1149 1091 1150 sub _is_valid_volume_name { 1092 1151 my ($self, $vol_name) = @_; -
trunk/Nebulous/lib/Nebulous/Server/SQL.pm
r13131 r13173 1 1 # Copyright (c) 2004 Joshua Hoblitt 2 2 # 3 # $Id: SQL.pm,v 1.3 3 2007-05-02 20:53:42jhoblitt Exp $3 # $Id: SQL.pm,v 1.34 2007-05-03 01:44:24 jhoblitt Exp $ 4 4 5 5 package Nebulous::Server::SQL; … … 144 144 WHERE so_id = ? 145 145 }, 146 get_object_instances => qq{ 147 SELECT storage_object.so_id, 148 uri, assigned_location 149 FROM storage_object 150 LEFT JOIN instance 151 USING (so_id) 152 WHERE ext_id = ? 146 get_object_instances => qq{ 147 SELECT 148 storage_object.so_id, 149 uri, 150 assigned_vol_id 151 FROM storage_object 152 JOIN instance 153 USING (so_id) 154 JOIN mountedvol 155 USING(vol_id) 156 WHERE ext_id = ? 157 AND available = ? 158 }, 159 get_object_instances_by_vol_name => qq{ 160 SELECT 161 storage_object.so_id, 162 uri, 163 assigned_vol_id 164 FROM storage_object 165 JOIN instance 166 USING (so_id) 167 JOIN mountedvol 168 USING(vol_id) 169 WHERE ext_id = ? 170 AND name = ? 171 AND available = ? 153 172 }, 154 173 get_storage_volume_byname => qq{ … … 284 303 uri VARCHAR(255) NOT NULL, 285 304 sha1sum CHAR(40) ASCII, 286 assigned_ location BOOL,305 assigned_vol_id INT, 287 306 epoch TIMESTAMP DEFAULT CURRENT_TIMESTAMP, 288 307 mtime TIMESTAMP, -
trunk/Nebulous/t/04_server_replicate_object.t
r12960 r13173 3 3 # Copryight (C) 2004-2005 Joshua Hoblitt 4 4 # 5 # $Id: 04_server_replicate_object.t,v 1. 7 2007-04-23 20:42:29jhoblitt Exp $5 # $Id: 04_server_replicate_object.t,v 1.8 2007-05-03 01:44:24 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 ); … … 72 72 73 73 eval { 74 $neb->replicate_object( "foo");74 $neb->replicate_object('foo'); 75 75 }; 76 like($@, qr/storage object does not exist/, "storage object does not exist"); 76 like($@, qr/is valid object key/, 'storage object does not exist'); 77 78 Test::Nebulous->setup; 79 80 eval { 81 $neb->create_object('foo'); 82 $neb->replicate_object('foo', 'bar'); 83 }; 84 like($@, qr/is valid volume name/, 'storage volume does not exist'); 77 85 78 86 Test::Nebulous->setup; … … 81 89 $neb->replicate_object(); 82 90 }; 83 like($@, qr/1 - 2 were expected/, "no params");91 like($@, qr/1 - 2 were expected/, 'no params'); 84 92 85 93 Test::Nebulous->setup; 86 94 87 95 eval { 88 $neb->replicate_object(1, 2, 3); 96 $neb->create_object('foo'); 97 $neb->replicate_object('foo', 'node01', 3); 89 98 }; 90 like($@, qr/1 - 2 were expected/, "too many params");99 like($@, qr/1 - 2 were expected/, 'too many params'); 91 100 92 101 Test::Nebulous->cleanup; -
trunk/Nebulous/t/07_server_find_instances.t
r12643 r13173 3 3 # Copryight (C) 2004-2005 Joshua Hoblitt 4 4 # 5 # $Id: 07_server_find_instances.t,v 1. 7 2007-03-28 21:48:24 jhoblitt Exp $5 # $Id: 07_server_find_instances.t,v 1.8 2007-05-03 01:44:24 jhoblitt Exp $ 6 6 7 7 use strict; 8 8 use warnings FATAL => qw( all ); 9 9 10 use Test::More tests => 1 3;10 use Test::More tests => 15; 11 11 12 12 use lib qw( ./t ./lib ); … … 53 53 { 54 54 # key, volume 55 my $uri = $neb->create_object( "foo");55 my $uri = $neb->create_object('foo', 'node01'); 56 56 57 my $locations = $neb->find_instances( "foo", "node01");57 my $locations = $neb->find_instances('foo', 'node01'); 58 58 59 59 uri_scheme_ok($locations->[0], 'file'); … … 75 75 } 76 76 77 # object exists but instance is on a different volume 78 Test::Nebulous->setup; 79 80 eval { 81 # key, volume 82 my $uri = $neb->create_object('foo', 'node01'); 83 84 my $locations = $neb->find_instances('foo', 'node02'); 85 }; 86 like($@, qr/no instances on storage volume/, 'instances on a different volume'); 87 77 88 78 89 Test::Nebulous->setup; 79 90 80 91 eval { 81 $neb->find_instances( "foo");92 $neb->find_instances('foo'); 82 93 }; 83 like($@, qr/no instances found/, "storage object does not exist"); 94 like($@, qr/is valid object key/, "storage object does not exist"); 95 96 Test::Nebulous->setup; 97 98 eval { 99 $neb->create_object('foo'); 100 $neb->find_instances('foo', 'bar'); 101 }; 102 like($@, qr/is valid volume name/, "storage volume does not exist"); 84 103 85 104 Test::Nebulous->setup; … … 93 112 94 113 eval { 95 $neb->find_instances("foo", 'read', 3); 114 $neb->create_object('foo'); 115 $neb->find_instances('foo', 'node01', 3); 96 116 }; 97 117 like($@, qr/1 - 2 were expected/, "too many params"); -
trunk/Nebulous/t/08_server_delete_instance.t
r12644 r13173 3 3 # Copryight (C) 2004-2005 Joshua Hoblitt 4 4 # 5 # $Id: 08_server_delete_instance.t,v 1. 7 2007-03-28 21:50:26jhoblitt Exp $5 # $Id: 08_server_delete_instance.t,v 1.8 2007-05-03 01:44:24 jhoblitt Exp $ 6 6 7 7 use strict; … … 47 47 $neb->find_instances("foo"); 48 48 }; 49 like($@, qr/ no instances found/, "storage object was deleted");49 like($@, qr/is valid object key/, "storage object was deleted"); 50 50 } 51 51 -
trunk/Nebulous/t/53_client_cull.t
r13059 r13173 3 3 # Copryight (C) 2004-2005 Joshua Hoblitt 4 4 # 5 # $Id: 53_client_cull.t,v 1. 2 2007-04-27 21:36:20jhoblitt Exp $5 # $Id: 53_client_cull.t,v 1.3 2007-05-03 01:44:24 jhoblitt Exp $ 6 6 7 7 use strict; … … 14 14 use lib qw( ./t ./lib ); 15 15 16 use Nebulous::Client ;16 use Nebulous::Client trace => 'debug'; 17 17 use Nebulous::Util qw( :standard ); 18 18 use Test::Nebulous; … … 96 96 } 97 97 98 die; 98 99 Test::Nebulous->setup; 99 100
Note:
See TracChangeset
for help on using the changeset viewer.
