diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm index aedfb89b..eaaa7533 100644 --- a/PVE/API2/Qemu.pm +++ b/PVE/API2/Qemu.pm @@ -142,6 +142,9 @@ __PACKAGE__->register_method({ die "unable to restore vm $vmid: vm is running\n" if PVE::QemuServer::check_running($vmid); + + # destroy existing data - keep empty config + PVE::QemuServer::destroy_vm($storecfg, $vmid, 1); } my $realcmd = sub { diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 48c6cba6..8afdc389 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -1339,7 +1339,7 @@ sub unlink_image { } sub destroy_vm { - my ($storecfg, $vmid) = @_; + my ($storecfg, $vmid, $keep_empty_config) = @_; my $conffile = config_file($vmid); @@ -1362,7 +1362,11 @@ sub destroy_vm { PVE::Storage::vdisk_free($storecfg, $volid); }); - unlink $conffile; + if ($keep_empty_config) { + PVE::Tools::file_set_contents($conffile, "mem: 128\n"); + } else { + unlink $conffile; + } # also remove unused disk eval {