From 0c8d7468153299cb8fe06d33cb8e7b76b87f0374 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Mon, 13 Jun 2022 15:24:09 +0200 Subject: [PATCH] fix #4053: don't run vzdump jobs when they change from disabled->enabled by updating the timestamp in the job state when enabled is changing from 0 -> 1. We do it this way too in PBS for example, and is the more sensible behaviour. Signed-off-by: Dominik Csapak Reviewed-by: Fabian Ebner --- PVE/API2/Backup.pm | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/PVE/API2/Backup.pm b/PVE/API2/Backup.pm index 9043c71ac..0041d4fb5 100644 --- a/PVE/API2/Backup.pm +++ b/PVE/API2/Backup.pm @@ -454,6 +454,8 @@ __PACKAGE__->register_method({ die "no such vzdump job\n" if !$job || $job->{type} ne 'vzdump'; } + my $old_enabled = $job->{enabled} // 1; + my $deletable = { comment => 1, 'repeat-missed' => 1, @@ -467,15 +469,21 @@ __PACKAGE__->register_method({ delete $job->{$k}; } - my $schedule_updated = 0; + my $need_run_time_update = 0; if (defined($param->{schedule}) && $param->{schedule} ne $job->{schedule}) { - $schedule_updated = 1; + $need_run_time_update = 1; } foreach my $k (keys %$param) { $job->{$k} = $param->{$k}; } + my $new_enabled = $job->{enabled} // 1; + + if ($new_enabled && !$old_enabled) { + $need_run_time_update = 1; + } + $job->{all} = 1 if (defined($job->{exclude}) && !defined($job->{pool})); if (defined($param->{vmid})) { @@ -493,7 +501,7 @@ __PACKAGE__->register_method({ PVE::VZDump::verify_vzdump_parameters($job, 1); - if ($schedule_updated) { + if ($need_run_time_update) { PVE::Jobs::update_last_runtime($id, 'vzdump'); }