From a2f1554b6eff7deefea6aec6dac1ca8bdfc5cece Mon Sep 17 00:00:00 2001 From: Alexandre Derumier Date: Wed, 11 Jul 2018 13:55:53 +0200 Subject: [PATCH] Fix #1717: delete snapshot when vm running and drive not attached changelog v2: - remove hash - remove check if cdrom if we try to delete a snapshot, and that is disk from the snapshot is not attached anymore (unused), we can't delete the snapshot with qemu snapshot delete command (for storage which use it (qcow2,rbd,...)) example: ... unused0: rbd:vm-107-disk-3 [snap1] ... scsi2: rbd:vm-107-disk-3,size=1G -> die qmp command 'delete-drive-snapshot' failed - Device 'drive-scsi2' not found If drive is not attached, we need to use the storage snapshot delete command --- PVE/QemuServer.pm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 7357e389..a4ab11e2 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -4197,6 +4197,16 @@ sub qemu_volume_snapshot_delete { my $running = check_running($vmid); + if($running) { + + $running = undef; + my $conf = PVE::QemuConfig->load_config($vmid); + foreach_drive($conf, sub { + my ($ds, $drive) = @_; + $running = 1 if $drive->{file} eq $volid; + }); + } + if ($running && do_snapshots_with_qemu($storecfg, $volid)){ vm_mon_cmd($vmid, "delete-drive-snapshot", device => $deviceid, name => $snap); } else {