Am 03.03.22 um 18:10 schrieb Hannes Laimer: > Signed-off-by: Hannes Laimer <h.lai...@proxmox.com> > --- > FIXUP: sort was not needed and should not have been there > > PVE/Jobs.pm | 18 +++++++++++++++++- > 1 file changed, 17 insertions(+), 1 deletion(-) > > diff --git a/PVE/Jobs.pm b/PVE/Jobs.pm > index ba3685ec..ea41523b 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,22 @@ 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 $vmids = \$jobs_data->{ids}->{$id}->{vmid};
This style with manipulating a scalar hash value via reference is not commonly used in our code base. Usually, a helper variable for the hash reference is created and then that one is manipulated. You had that in v1. My comment there was just about the last assignment in my $job = $jobs_data->{ids}->{$id}; # was part of each in v1 ... # The hash that $job references is manipulated, but not the reference # itself ... $jobs_data->{ids}->{$id} = $job; being unnecessary. > + next if !defined($$vmids); > + > + $$vmids = join(',', grep { $_ ne $vmid } > PVE::Tools::split_list($$vmids)); > + delete $jobs_data->{ids}->{$id} if $$vmids eq ''; > + } > + 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