]> git.proxmox.com Git - qemu-server.git/blobdiff - PVE/API2/Qemu.pm
live clone_vm : suspend or freezefs before block-job-cancel
[qemu-server.git] / PVE / API2 / Qemu.pm
index 3e4e7f77457f1cb3748a0ea5391a4b5e0ddb4c27..0bae42451341f7530e3845f967f6c85370c70dca 100644 (file)
@@ -2472,7 +2472,7 @@ __PACKAGE__->register_method({
                        $skipcomplete = undef if $total_jobs == $i; #finish after last drive
 
                        my $newdrive = PVE::QemuServer::clone_disk($storecfg, $vmid, $running, $opt, $drive, $snapname,
-                                                                  $newid, $storage, $format, $fullclone->{$opt}, $newvollist, $jobs, $skipcomplete);
+                                                                  $newid, $storage, $format, $fullclone->{$opt}, $newvollist, $jobs, $skipcomplete, $oldconf->{agent});
 
                        $newconf->{$opt} = PVE::QemuServer::print_drive($vmid, $newdrive);
 
@@ -2724,6 +2724,10 @@ __PACKAGE__->register_method({
                description => "CIDR of the (sub) network that is used for migration.",
                optional => 1,
            },
+           targetstorage => get_standard_option('pve-storage-id', {
+               description => "Target storage.",
+               optional => 1,
+           }),
        },
     },
     returns => {
@@ -2750,6 +2754,9 @@ __PACKAGE__->register_method({
 
        my $vmid = extract_param($param, 'vmid');
 
+       raise_param_exc({ targetstorage => "Live Storage migration can only be done online" })
+           if !$param->{online} && $param->{targetstorage};
+
        raise_param_exc({ force => "Only root may use this option." })
            if $param->{force} && $authuser ne 'root@pam';