]> git.proxmox.com Git - qemu-server.git/blobdiff - PVE/API2/Qemu.pm
PVE/API2/Qemu.pm: cleanup - remove unused $upid parameter
[qemu-server.git] / PVE / API2 / Qemu.pm
index bc9f7274b1c198a67fce31fdadee87d61a8bc34e..76fd0e44280185a1dd6f88ec964ca1072165440d 100644 (file)
@@ -16,6 +16,7 @@ use PVE::Storage;
 use PVE::JSONSchema qw(get_standard_option);
 use PVE::RESTHandler;
 use PVE::ReplicationConfig;
+use PVE::GuestHelpers;
 use PVE::QemuConfig;
 use PVE::QemuServer;
 use PVE::QemuMigrate;
@@ -1011,7 +1012,7 @@ my $update_vm_api  = sub {
            foreach my $opt (@delete) {
                $modified->{$opt} = 1;
                $conf = PVE::QemuConfig->load_config($vmid); # update/reload
-               if (!defined($conf->{$opt})) {
+               if (!defined($conf->{$opt}) && !defined($conf->{pending}->{$opt})) {
                    warn "cannot delete '$opt' - not set in current configuration!\n";
                    $modified->{$opt} = 0;
                    next;
@@ -2857,12 +2858,14 @@ __PACKAGE__->register_method({
        } else {
 
            my $realcmd = sub {
-               my $upid = shift;
-
                PVE::QemuMigrate->migrate($target, $targetip, $vmid, $param);
            };
 
-           return $rpcenv->fork_worker('qmigrate', $vmid, $authuser, $realcmd);
+           my $worker = sub {
+               return PVE::GuestHelpers::guest_migration_lock($vmid, 10, $realcmd);
+           };
+
+           return $rpcenv->fork_worker('qmigrate', $vmid, $authuser, $worker);
        }
 
     }});
@@ -3389,7 +3392,12 @@ __PACKAGE__->register_method({
            PVE::QemuConfig->snapshot_rollback($vmid, $snapname);
        };
 
-       return $rpcenv->fork_worker('qmrollback', $vmid, $authuser, $realcmd);
+       my $worker = sub {
+           # hold migration lock, this makes sure that nobody create replication snapshots
+           return PVE::GuestHelpers::guest_migration_lock($vmid, 10, $realcmd);
+       };
+
+       return $rpcenv->fork_worker('qmrollback', $vmid, $authuser, $worker);
     }});
 
 __PACKAGE__->register_method({