[pve-devel] [PATCH container] migrate: pass the with_snapshots parameter

Wolfgang Bumiller w.bumiller at proxmox.com
Thu Jun 22 12:24:40 CEST 2017


---
 src/PVE/LXC/Migrate.pm | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/PVE/LXC/Migrate.pm b/src/PVE/LXC/Migrate.pm
index fb33e8c..93446d7 100644
--- a/src/PVE/LXC/Migrate.pm
+++ b/src/PVE/LXC/Migrate.pm
@@ -160,7 +160,8 @@ sub phase1 {
 	    return;
 	}
 
-	$volhash->{$volid} = defined($snapname) ? 'snapshot' : 'config';
+	$volhash->{$volid}->{ref} = defined($snapname) ? 'snapshot' : 'config';
+	$volhash->{$volid}->{snapshots} = defined($snapname);
 
 	my ($path, $owner) = PVE::Storage::path($self->{storecfg}, $volid);
 
@@ -213,7 +214,7 @@ sub phase1 {
 	PVE::Storage::foreach_volid($dl, sub {
 	    my ($volid, $sid, $volname) = @_;
 
-	    $volhash->{$volid} = 'storage';
+	    $volhash->{$volid}->{ref} = 'storage';
 	});
     }
 
@@ -249,11 +250,12 @@ sub phase1 {
     }
 
     foreach my $volid (sort keys %$volhash) {
-	if ($volhash->{$volid} eq 'storage') {
+	my $ref = $volhash->{$volid}->{ref};
+	if ($ref eq 'storage') {
 	    $self->log('info', "found local volume '$volid' (via storage)\n");
-	} elsif ($volhash->{$volid} eq 'config') {
+	} elsif ($ref eq 'config') {
 	    $self->log('info', "found local volume '$volid' (in current VM config)\n");
-	} elsif ($volhash->{$volid} eq 'snapshot') {
+	} elsif ($ref eq 'snapshot') {
 	    $self->log('info', "found local volume '$volid' (referenced by snapshot(s))\n");
 	} else {
 	    $self->log('info', "found local volume '$volid'\n");
@@ -285,7 +287,8 @@ sub phase1 {
 	next if $rep_volumes->{$volid};
 	my ($sid, $volname) = PVE::Storage::parse_volume_id($volid);
 	push @{$self->{volumes}}, $volid;
-	PVE::Storage::storage_migrate($self->{storecfg}, $volid, $self->{ssh_info}, $sid, undef, undef, undef, undef, $insecure);
+	my $with_snapshots = $volhash->{$volid}->{snapshots};
+	PVE::Storage::storage_migrate($self->{storecfg}, $volid, $self->{ssh_info}, $sid, undef, undef, undef, undef, $insecure, $with_snapshots);
     }
 
     my $conffile = PVE::LXC::Config->config_file($vmid);
-- 
2.11.0





More information about the pve-devel mailing list