Make call sites to the for_each_rule more readable and while at remove unnecessary variables in the helper body as well.
Suggested-by: Thomas Lamprecht <t.lampre...@proxmox.com> Signed-off-by: Daniel Kral <d.k...@proxmox.com> --- src/PVE/API2/HA/Rules.pm | 6 ++---- src/PVE/HA/Rules.pm | 16 +++++++--------- src/PVE/HA/Rules/NodeAffinity.pm | 14 +++++--------- src/PVE/HA/Rules/ResourceAffinity.pm | 22 ++++++++-------------- 4 files changed, 22 insertions(+), 36 deletions(-) diff --git a/src/PVE/API2/HA/Rules.pm b/src/PVE/API2/HA/Rules.pm index 1591df28..b180d2ed 100644 --- a/src/PVE/API2/HA/Rules.pm +++ b/src/PVE/API2/HA/Rules.pm @@ -192,10 +192,8 @@ __PACKAGE__->register_method({ push @$res, $cfg; }, - { - type => $type, - sid => $resource, - }, + type => $type, + sid => $resource, ); return $res; diff --git a/src/PVE/HA/Rules.pm b/src/PVE/HA/Rules.pm index e5d12571..e2b77215 100644 --- a/src/PVE/HA/Rules.pm +++ b/src/PVE/HA/Rules.pm @@ -419,13 +419,13 @@ sub canonicalize : prototype($$$) { =head3 foreach_rule(...) -=head3 foreach_rule($rules, $func [, $opts]) +=head3 foreach_rule($rules, $func [, %opts]) Filters the given C<$rules> according to the C<$opts> and loops over the resulting rules in the order as defined in the section config and executes C<$func> with the parameters C<L<< ($rule, $ruleid) >>>. -The filter properties for C<$opts> are: +The following key-value pairs for C<$opts> as filter properties are: =over @@ -439,12 +439,10 @@ The filter properties for C<$opts> are: =cut -sub foreach_rule : prototype($$;$) { - my ($rules, $func, $opts) = @_; +sub foreach_rule : prototype($$;%) { + my ($rules, $func, %opts) = @_; - my $sid = $opts->{sid}; - my $type = $opts->{type}; - my $exclude_disabled_rules = $opts->{exclude_disabled_rules}; + my $sid = $opts{sid}; my @ruleids = sort { $rules->{order}->{$a} <=> $rules->{order}->{$b} @@ -455,8 +453,8 @@ sub foreach_rule : prototype($$;$) { next if !$rule; # skip invalid rules next if defined($sid) && !defined($rule->{resources}->{$sid}); - next if defined($type) && $rule->{type} ne $type; - next if $exclude_disabled_rules && exists($rule->{disable}); + next if defined($opts{type}) && $rule->{type} ne $opts{type}; + next if $opts{exclude_disabled_rules} && exists($rule->{disable}); $func->($rule, $ruleid); } diff --git a/src/PVE/HA/Rules/NodeAffinity.pm b/src/PVE/HA/Rules/NodeAffinity.pm index ee3ef985..09a8e67c 100644 --- a/src/PVE/HA/Rules/NodeAffinity.pm +++ b/src/PVE/HA/Rules/NodeAffinity.pm @@ -148,10 +148,8 @@ sub get_plugin_check_arguments { $result->{node_affinity_rules}->{$ruleid} = $rule; }, - { - type => 'node-affinity', - exclude_disabled_rules => 1, - }, + type => 'node-affinity', + exclude_disabled_rules => 1, ); return $result; @@ -231,11 +229,9 @@ my $get_resource_node_affinity_rule = sub { $node_affinity_rule = dclone($rule) if !$node_affinity_rule; }, - { - sid => $sid, - type => 'node-affinity', - exclude_disabled_rules => 1, - }, + sid => $sid, + type => 'node-affinity', + exclude_disabled_rules => 1, ); return $node_affinity_rule; diff --git a/src/PVE/HA/Rules/ResourceAffinity.pm b/src/PVE/HA/Rules/ResourceAffinity.pm index 6b5670ac..1d2ed1ed 100644 --- a/src/PVE/HA/Rules/ResourceAffinity.pm +++ b/src/PVE/HA/Rules/ResourceAffinity.pm @@ -92,10 +92,8 @@ sub get_plugin_check_arguments { $result->{positive_rules}->{$ruleid} = $rule if $rule->{affinity} eq 'positive'; $result->{negative_rules}->{$ruleid} = $rule if $rule->{affinity} eq 'negative'; }, - { - type => 'resource-affinity', - exclude_disabled_rules => 1, - }, + type => 'resource-affinity', + exclude_disabled_rules => 1, ); return $result; @@ -490,11 +488,9 @@ sub get_affinitive_resources : prototype($$) { $affinity_set->{$csid} = 1 if $csid ne $sid; } }, - { - sid => $sid, - type => 'resource-affinity', - exclude_disabled_rules => 1, - }, + sid => $sid, + type => 'resource-affinity', + exclude_disabled_rules => 1, ); return ($together, $separate); @@ -560,11 +556,9 @@ sub get_resource_affinity : prototype($$$) { } } }, - { - sid => $sid, - type => 'resource-affinity', - exclude_disabled_rules => 1, - }, + sid => $sid, + type => 'resource-affinity', + exclude_disabled_rules => 1, ); return ($together, $separate); -- 2.47.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel