public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Stefan Hanreich <s.hanreich@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH qemu-server v3] rollback: Only create start task with --start if VM is not running
Date: Wed, 21 Dec 2022 17:51:10 +0100	[thread overview]
Message-ID: <20221221165110.303770-1-s.hanreich@proxmox.com> (raw)

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 <s.hanreich@proxmox.com>
---
Changes v2 -> v3:
Use vm_running_locally() instead of check_running()
Improved description

Changes v1 -> v2:
Do not parse config for checking type of snapshot but rather directly check
whether VM is running or not via check_running()

 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 e2a420f..c87602d 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 });
 	    }
 	};
-- 
2.30.2




             reply	other threads:[~2022-12-21 16:51 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-21 16:51 Stefan Hanreich [this message]
2022-12-30 14:56 ` [pve-devel] applied: " Thomas Lamprecht

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221221165110.303770-1-s.hanreich@proxmox.com \
    --to=s.hanreich@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal