we only checked if a vm had in use base disks when deleting them, at which point we do not stop to delete the vm even when a disk deletion fails, which means we could successfully delete the config and all not used (base) disks of a template, resulting in left over vm disks
Signed-off-by: Dominik Csapak <d.csa...@proxmox.com> --- PVE/QemuServer.pm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 2b6fda9..54775c1 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -2111,6 +2111,23 @@ sub destroy_vm { PVE::QemuConfig->check_lock($conf) if !$skiplock; + if ($conf->{template}) { + # check if any base image is still used by a linked clone + foreach_drive($conf, sub { + my ($ds, $drive) = @_; + + return if drive_is_cdrom($drive); + + my $volid = $drive->{file}; + + return if !$volid || $volid =~ m|^/|; + + die "base volume '$volid' is still in use by linked cloned\n" + if PVE::Storage::volume_is_base_and_used($storecfg, $volid); + + }); + } + # only remove disks owned by this VM foreach_drive($conf, sub { my ($ds, $drive) = @_; -- 2.11.0 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel