Am 07.03.22 um 07:43 schrieb Hannes Laimer: > Signed-off-by: Hannes Laimer <h.lai...@proxmox.com> > --- > changed back to v1, but without the unnecessary stuff. Thanks for the > feedback @Fabian Ebner > > PVE/Jobs.pm | 17 ++++++++++++++++- > 1 file changed, 16 insertions(+), 1 deletion(-) > > diff --git a/PVE/Jobs.pm b/PVE/Jobs.pm > index ba3685ec..db6fa97d 100644 > --- a/PVE/Jobs.pm > +++ b/PVE/Jobs.pm > @@ -4,7 +4,7 @@ use strict; > use warnings; > use JSON; > > -use PVE::Cluster qw(cfs_read_file cfs_lock_file); > +use PVE::Cluster qw(cfs_read_file cfs_lock_file cfs_write_file); > use PVE::Jobs::Plugin; > use PVE::Jobs::VZDump; > use PVE::Tools; > @@ -274,6 +274,21 @@ sub synchronize_job_states_with_config { > die $@ if $@; > } > > +sub remove_vmid_from_jobs { > + my ($vmid) = @_; > + > + cfs_lock_file('jobs.cfg', undef, sub { > + my $jobs_data = cfs_read_file('jobs.cfg'); > + for my $id (keys %{$jobs_data->{ids}}) { > + my $job = $jobs_data->{ids}->{$id}; > + next if !defined($job->{vmid}); > + $job->{vmid} = join(',', grep { $_ ne $vmid } > PVE::Tools::split_list($job->{vmid})); > + delete $jobs_data->{ids}->{$id} if $job->{vmid} eq '';
There is a remove_job() function that's supposed to be called when a job is removed. It'll be called by synchronize_job_states_with_config too, but it'd be cleaner to call it directly. Also, the old behavior is to remove a VM ID upon purge from 'exclude' too. For consistency, we need do that here too. See remove_vmid_from_jobs in guest-common's PVE/VZDump/Plugin.pm for comparison. 'exclude' is specific to backups, so there should be a plugin method for removing a VMID from a job, which the VZDump plugin overrides, and the iterator here should just call the method from the job's plugin. Well, technically, 'vmid' is also specific to backups, because it's not part of the defaultData properties of the generic plugin. > + } > + cfs_write_file('jobs.cfg', $jobs_data); > + }); > +} > + > sub setup_dirs { > mkdir $state_dir; > mkdir $lock_dir; _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel