]> git.proxmox.com Git - qemu-server.git/commitdiff
live storage migration : fix check of target storage availability
authorAlexandre Derumier <aderumier@odiso.com>
Fri, 21 Apr 2017 01:39:34 +0000 (03:39 +0200)
committerWolfgang Bumiller <w.bumiller@proxmox.com>
Fri, 21 Apr 2017 10:05:36 +0000 (12:05 +0200)
if we define a different target storeid for remote node,
and that storage is not available on source node

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
PVE/API2/Qemu.pm
PVE/QemuMigrate.pm

index 24a5b67c73424e81ae20ba3d1982812c8c22ad46..19ba5bec1cdedd08d2c1f6f3f10a08329e1ca9a0 100644 (file)
@@ -2820,7 +2820,12 @@ __PACKAGE__->register_method({
        }
 
        my $storecfg = PVE::Storage::config();
-       PVE::QemuServer::check_storage_availability($storecfg, $conf, $target);
+
+       if( $param->{targetstorage}) {
+           PVE::Storage::storage_check_node($storecfg, $param->{targetstorage}, $target);
+        } else {
+           PVE::QemuServer::check_storage_availability($storecfg, $conf, $target);
+       }
 
        if (PVE::HA::Config::vm_is_ha_managed($vmid) && $rpcenv->{type} ne 'ha') {
 
index 68ec69f86d20d2b0094c678b13e76b12e4fabc98..5caac15f397c3c79dae1a253c151d13b61e2de4a 100644 (file)
@@ -255,8 +255,10 @@ sub sync_disks {
 
            next if @{$dl->{$storeid}} == 0;
 
+           my $targetsid = $self->{opts}->{targetstorage} ? $self->{opts}->{targetstorage} : $storeid;
+
            # check if storage is available on target node
-           PVE::Storage::storage_check_node($self->{storecfg}, $storeid, $self->{node});
+           PVE::Storage::storage_check_node($self->{storecfg}, $targetsid, $self->{node});
            $sharedvm = 0; # there is a non-shared disk
 
            PVE::Storage::foreach_volid($dl, sub {
@@ -293,7 +295,7 @@ sub sync_disks {
            my $targetsid = $self->{opts}->{targetstorage} ? $self->{opts}->{targetstorage} : $sid;
            # check if storage is available on both nodes
            my $scfg = PVE::Storage::storage_check_node($self->{storecfg}, $sid);
-           PVE::Storage::storage_check_node($self->{storecfg}, $sid, $self->{node});
+           PVE::Storage::storage_check_node($self->{storecfg}, $targetsid, $self->{node});
 
            return if $scfg->{shared};