all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Wolfgang Bumiller <w.bumiller@proxmox.com>
To: Friedrich Weber <f.weber@proxmox.com>
Cc: pve-devel@lists.proxmox.com
Subject: Re: [pve-devel] [RFC qemu-server 3/4] fix #4474: qemu api: add overrule-shutdown parameter to stop endpoint
Date: Fri, 17 Nov 2023 14:12:25 +0100	[thread overview]
Message-ID: <wzo6g5z77bneda3ymackjdsq5nnkizlc62wwwyi5kdmxyf6c5t@btmc2tw7jxpd> (raw)
In-Reply-To: <20230126083214.711099-4-f.weber@proxmox.com>

This one LGTM.

On Thu, Jan 26, 2023 at 09:32:13AM +0100, Friedrich Weber wrote:
> The new `overrule-shutdown` parameter is boolean and defaults to 0. If
> it is 1, all active `qmshutdown` tasks by the current user for the same
> VM are aborted before attempting to stop the VM.
> 
> Passing `overrule-shutdown=1` is forbidden for HA resources.
> 
> Signed-off-by: Friedrich Weber <f.weber@proxmox.com>

Acked-by: Wolfgang Bumiller <w.bumiller@proxmox.com>

> ---
>  PVE/API2/Qemu.pm | 16 +++++++++++++++-
>  1 file changed, 15 insertions(+), 1 deletion(-)
> 
> diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
> index c87602d..b253e1f 100644
> --- a/PVE/API2/Qemu.pm
> +++ b/PVE/API2/Qemu.pm
> @@ -2799,7 +2799,13 @@ __PACKAGE__->register_method({
>  		type => 'boolean',
>  		optional => 1,
>  		default => 0,
> -	    }
> +	    },
> +	    'overrule-shutdown' => {
> +		description => "Abort any active 'qmshutdown' task by the current user for this VM before stopping",
> +		optional => 1,
> +		type => 'boolean',
> +		default => 0,
> +	    },
>  	},
>      },
>      returns => {
> @@ -2826,10 +2832,13 @@ __PACKAGE__->register_method({
>  	raise_param_exc({ migratedfrom => "Only root may use this option." })
>  	    if $migratedfrom && $authuser ne 'root@pam';
>  
> +	my $overrule_shutdown = extract_param($param, 'overrule-shutdown');
>  
>  	my $storecfg = PVE::Storage::config();
>  
>  	if (PVE::HA::Config::vm_is_ha_managed($vmid) && ($rpcenv->{type} ne 'ha') && !defined($migratedfrom)) {
> +	    raise_param_exc({ 'overrule-shutdown' => "Not applicable for HA resources." })
> +		if $overrule_shutdown;
>  
>  	    my $hacmd = sub {
>  		my $upid = shift;
> @@ -2849,6 +2858,11 @@ __PACKAGE__->register_method({
>  
>  		syslog('info', "stop VM $vmid: $upid\n");
>  
> +		if ($overrule_shutdown) {
> +		    my $overruled_tasks = PVE::GuestHelpers::overrule_tasks('qmshutdown', $authuser, $vmid);
> +		    print "overruled qmshutdown tasks: " . join(", ", $overruled_tasks->@*) . "\n";
> +		};
> +
>  		PVE::QemuServer::vm_stop($storecfg, $vmid, $skiplock, 0,
>  					 $param->{timeout}, 0, 1, $keepActive, $migratedfrom);
>  		return;
> -- 
> 2.30.2




  reply	other threads:[~2023-11-17 13:12 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-26  8:32 [pve-devel] [RFC manager/container/qemu-server/guest-common 0/4] fix #4474: stop tasks may overrule shutdown tasks Friedrich Weber
2023-01-26  8:32 ` [pve-devel] [RFC manager 1/4] fix #4474: ui: vm stop: ask if active shutdown tasks should be aborted Friedrich Weber
2023-01-26  8:32 ` [pve-devel] [RFC container 2/4] fix #4474: lxc api: add overrule-shutdown parameter to stop endpoint Friedrich Weber
2023-11-17 13:09   ` Wolfgang Bumiller
2023-12-01  9:57     ` Friedrich Weber
2024-01-02 13:34       ` Friedrich Weber
2023-01-26  8:32 ` [pve-devel] [RFC qemu-server 3/4] fix #4474: qemu " Friedrich Weber
2023-11-17 13:12   ` Wolfgang Bumiller [this message]
2023-01-26  8:32 ` [pve-devel] [RFC guest-common 4/4] guest helpers: add helper to overrule active tasks of a specific type Friedrich Weber
2023-11-17 12:53   ` Wolfgang Bumiller
2023-12-01  9:57     ` Friedrich Weber
2023-09-27  9:04 ` [pve-devel] [RFC manager/container/qemu-server/guest-common 0/4] fix #4474: stop tasks may overrule shutdown tasks Friedrich Weber
2023-11-17 12:31   ` Wolfgang Bumiller
2023-12-01  9:57     ` Friedrich Weber

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=wzo6g5z77bneda3ymackjdsq5nnkizlc62wwwyi5kdmxyf6c5t@btmc2tw7jxpd \
    --to=w.bumiller@proxmox.com \
    --cc=f.weber@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal