[pve-devel] [PATCH pve-container v2 1/1] fix #4228: add start parameter to rollback endpoint for automatic restarting of CT

Thomas Lamprecht t.lamprecht at proxmox.com
Mon Sep 12 16:12:34 CEST 2022


Am 12/09/2022 um 14:00 schrieb Stefan Hanreich:
> Signed-off-by: Stefan Hanreich <s.hanreich at proxmox.com>
> ---
>  src/PVE/API2/LXC/Snapshot.pm | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/src/PVE/API2/LXC/Snapshot.pm b/src/PVE/API2/LXC/Snapshot.pm
> index 4be16ad..62adaee 100644
> --- a/src/PVE/API2/LXC/Snapshot.pm
> +++ b/src/PVE/API2/LXC/Snapshot.pm
> @@ -272,6 +272,11 @@ __PACKAGE__->register_method({
>  	    node => get_standard_option('pve-node'),
>  	    vmid => get_standard_option('pve-vmid'),
>  	    snapname => get_standard_option('pve-snapshot-name'),
> +	    start => {
> +		optional => 1,
> +		type => 'string',

why is this a string and not a 'boolean'? We normally also document the default
in the schema through, well, the default => X key.

> +		description => "whether the container should get restarted afterwards",

Please try to use somewhat full sentences, that can stand alone and avoids question
like "afterward what?", e.g.:

"Whether the container should get started after rolling back successfully"

> +	    },
>  	},
>      },
>      returns => {
> @@ -291,9 +296,16 @@ __PACKAGE__->register_method({
>  
>  	my $snapname = extract_param($param, 'snapname');
>  
> +	my $start = extract_param($param, 'start');

do you need to extract (i.e., delete from $param hash) the parameter?
Otherwise just use $param->{start} directly below.

> +
>  	my $realcmd = sub {
>  	    PVE::Cluster::log_msg('info', $authuser, "rollback snapshot LXC $vmid: $snapname");
>  	    PVE::LXC::Config->snapshot_rollback($vmid, $snapname);
> +
> +	    if ($start) {
> +		PVE::Cluster::log_msg('info', $authuser, "start CT $vmid");

why produce a cluster log here? The vm_start already does a syslog and if
we'd like to get a cluster log too (or instead of that) it would be an independent
patch and done in PVE::API2::LXC::Status's vm_start code (not that I see much need
for that)

> +		PVE::API2::LXC::Status->vm_start({ vmid => $vmid, node => $node })
> +	    }
>  	};
>  
>  	my $worker = sub {






More information about the pve-devel mailing list