diff options
author | Ruben van Dijk <15885455+RubenNL@users.noreply.github.com> | 2025-04-23 21:41:56 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-24 05:41:56 +1000 |
commit | b0b3adfb53e3089b087731986eb8ea8f89dcf17e (patch) | |
tree | 4b49c37cbd5e2f192e7a1da16a4d2d8df9e929e0 /plugins | |
parent | 46838054d25bb3e8fcc8210a6433ae788bfa3d12 (diff) | |
download | vyos.vyos-b0b3adfb53e3089b087731986eb8ea8f89dcf17e.tar.gz vyos.vyos-b0b3adfb53e3089b087731986eb8ea8f89dcf17e.zip |
T7236 firewall_rules Fix compare amount of firewall rulesets. (#401)
Co-authored-by: omnom62 <75066712+omnom62@users.noreply.github.com>
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/module_utils/network/vyos/config/firewall_rules/firewall_rules.py | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/plugins/module_utils/network/vyos/config/firewall_rules/firewall_rules.py b/plugins/module_utils/network/vyos/config/firewall_rules/firewall_rules.py index 5c2ef6ca..bb6055b7 100644 --- a/plugins/module_utils/network/vyos/config/firewall_rules/firewall_rules.py +++ b/plugins/module_utils/network/vyos/config/firewall_rules/firewall_rules.py @@ -1167,13 +1167,19 @@ class Firewall_rules(ConfigBase): return True elif isinstance(w, list) and isinstance(rs, list): try: - sorted_list1 = sorted(w, key=lambda x: str(x)) # pylint: disable=unnecessary-lambda - sorted_list2 = sorted( - rs, - key=lambda x: str(x), # pylint: disable=unnecessary-lambda - ) + def comparison(x): + if 'name' in x: + return x['name'] + if 'number' in x: + return x['number'] + return str(x) + + sorted_list1 = sorted(w, key=comparison) + sorted_list2 = sorted(rs, key=comparison) except TypeError: return False + if len(sorted_list1) != len(sorted_list2): + return False return all(self._is_same_rs(x, y) for x, y in zip(sorted_list1, sorted_list2)) else: return w == rs |