From 00b095caba7bc48012af4d2a0cd8c20f77533cc9 Mon Sep 17 00:00:00 2001 From: Alexandre Derumier Date: Thu, 2 May 2013 18:18:04 +0200 Subject: [PATCH] vm_clone : add running vm drive mirror Signed-off-by: Alexandre Derumier --- PVE/API2/Qemu.pm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm index 5e237870..19190eb7 100644 --- a/PVE/API2/Qemu.pm +++ b/PVE/API2/Qemu.pm @@ -1906,8 +1906,6 @@ __PACKAGE__->register_method({ my $running = PVE::QemuServer::check_running($vmid) || 0; - die "Clone running VM $vmid not implemented\n" if $running; # fixme: implement this - # exclusive lock if VM is running - else shared lock is enough; my $shared_lock = $running ? 0 : 1; @@ -2024,7 +2022,12 @@ __PACKAGE__->register_method({ $newvolid = PVE::Storage::vdisk_alloc($storecfg, $storeid, $newid, $fmt, undef, ($size/1024)); push @$newvollist, $newvolid; - PVE::QemuServer::qemu_img_convert($drive->{file}, $newvolid, $size, $snapname); + if(!$running || $snapname){ + PVE::QemuServer::qemu_img_convert($drive->{file}, $newvolid, $size, $snapname); + }else{ + PVE::QemuServer::qemu_drive_mirror($vmid, $opt, $newvolid, $newid); + } + } my ($size) = PVE::Storage::volume_size_info($storecfg, $newvolid, 3);