From a46d039d3c62a239fbb88fc1ed09ae9ff4686d25 Mon Sep 17 00:00:00 2001 From: Stefan Hanreich Date: Wed, 21 Dec 2022 17:51:10 +0100 Subject: [PATCH] rollback: Only create start task with --start if VM is not running When rolling back to the snapshot of a VM that includes RAM, the VM gets started by the rollback task anyway, so no additional start task is needed. Previously, when rolling back with the start parameter and the VM snapshot included RAM, a start task was created. That task failed because the VM had already been started by the rollback task. Additionally documented this behaviour in the description of the start parameter Signed-off-by: Stefan Hanreich --- PVE/API2/Qemu.pm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm index e2a420f7..c87602d0 100644 --- a/PVE/API2/Qemu.pm +++ b/PVE/API2/Qemu.pm @@ -5066,7 +5066,8 @@ __PACKAGE__->register_method({ snapname => get_standard_option('pve-snapshot-name'), start => { type => 'boolean', - description => "Whether the VM should get started after rolling back successfully", + description => "Whether the VM should get started after rolling back successfully." + . " (Note: VMs will be automatically started if the snapshot includes RAM.)", optional => 1, default => 0, }, @@ -5093,7 +5094,7 @@ __PACKAGE__->register_method({ PVE::Cluster::log_msg('info', $authuser, "rollback snapshot VM $vmid: $snapname"); PVE::QemuConfig->snapshot_rollback($vmid, $snapname); - if ($param->{start}) { + if ($param->{start} && !PVE::QemuServer::Helpers::vm_running_locally($vmid)) { PVE::API2::Qemu->vm_start({ vmid => $vmid, node => $node }); } };