Changeset 24995
- Timestamp:
- Aug 4, 2009, 10:45:57 AM (17 years ago)
- Location:
- trunk/Nebulous-Server
- Files:
-
- 4 edited
-
Changes (modified) (1 diff)
-
lib/Nebulous/Server.pm (modified) (3 diffs)
-
t/05_server_replicate_object.t (modified) (1 diff)
-
t/09_server_delete_instance.t (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Nebulous-Server/Changes
r24915 r24995 36 36 instance and just those that are available 37 37 - add Nebulous::Server->prune_object() API 38 - don't replicate to the volume being implied by the key being replicated! 38 39 39 40 0.16 -
trunk/Nebulous-Server/lib/Nebulous/Server.pm
r24915 r24995 696 696 $log->debug("entered - @_"); 697 697 698 my ($key, $ vol_name) = validate_pos(@_,698 my ($key, $dest_vol_name) = validate_pos(@_, 699 699 { 700 700 type => SCALAR, … … 726 726 # instance on it. If all avilable volume already have an instance on them 727 727 # then we should throw an error 728 729 # vol_name overrides the key implied volume 730 eval { 731 $key = parse_neb_key($key, $vol_name); 728 # volume names implied as part of the key are *IGNORED* as the source and 729 # *SHOULD NOT* be used as the destination either 730 731 eval { 732 $key = parse_neb_key($key); 732 733 }; 733 734 $log->logdie("$@") if $@; 734 $vol_name = $key->volume;735 735 736 736 my $db = $self->db($key); 737 737 738 if (defined $vol_name 738 # puke if the source volume is bogus, we may want to actually use this as 739 # the instance to be copied later 740 if (defined $key->volume 739 741 and not $self->_is_valid_volume_name($key, $key->volume)) { 740 742 unless ($key->hard_volume) { 741 $log->warn( "$vol_name is not a known volume name" ); 742 $vol_name = undef; 743 $log->warn($key->volume . " not a known volume name"); 743 744 } else { 744 $log->logdie("$vol_name is not a valid volume name"); 745 } 745 $log->logdie("$key is not a valid volume name"); 746 } 747 } 748 # puke if the source volume is bogus, we may want to actually use this as 749 # the instance to be copied later 750 if (defined $dest_vol_name 751 and not $self->_is_valid_volume_name($key, $dest_vol_name)) { 752 $log->logdie($key->volume . " is not a valid volume name"); 746 753 } 747 754 748 755 my ($vol_id, $vol_host, $vol_path, $vol_xattr); 749 if (defined $ vol_name) {756 if (defined $dest_vol_name) { 750 757 ($vol_id, $vol_host, $vol_path, $vol_xattr) 751 = $self->_get_storage_volume($key, $ vol_name);758 = $self->_get_storage_volume($key, $dest_vol_name); 752 759 } else { 753 760 ($vol_id, $vol_host, $vol_path, $vol_xattr) … … 810 817 $db->rollback; 811 818 # handle soft volumes 812 if (defined $ vol_name and not defined $key->hard_volume) {819 if (defined $dest_vol_name and not defined $key->hard_volume) { 813 820 $log->debug("retrying with 'any' volume"); 814 821 return $self->replicate_object($key->path, 'any'); -
trunk/Nebulous-Server/t/05_server_replicate_object.t
r24372 r24995 8 8 use warnings FATAL => qw( all ); 9 9 10 use Test::More tests => 2 6;10 use Test::More tests => 25; 11 11 12 12 use lib qw( ./t ./lib ); -
trunk/Nebulous-Server/t/09_server_delete_instance.t
r24637 r24995 58 58 my $key = "foo"; 59 59 my $uri1 = $neb->create_object($key, 'node01'); 60 my $uri2 = $neb->replicate_object($key, 'node 2');60 my $uri2 = $neb->replicate_object($key, 'node02'); 61 61 62 62 # make one of the instances unavailable
Note:
See TracChangeset
for help on using the changeset viewer.
