diff options
author | omnom62 <75066712+omnom62@users.noreply.github.com> | 2025-01-31 22:15:08 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-31 07:15:08 -0500 |
commit | 2a152f3c28ee5c5bac99489a8cd056457e4467a4 (patch) | |
tree | ae7c31cb2cb1f0223f22ec344115327fdbe25940 /plugins | |
parent | 7dded0a0a411c2df7a0bcbcdc24da3ffef353efd (diff) | |
download | vyos.vyos-2a152f3c28ee5c5bac99489a8cd056457e4467a4.tar.gz vyos.vyos-2a152f3c28ee5c5bac99489a8cd056457e4467a4.zip |
T6833 firewall_rules limit processing fixed (#382)
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/module_utils/network/vyos/config/firewall_rules/firewall_rules.py | 2 | ||||
-rw-r--r-- | plugins/module_utils/network/vyos/facts/firewall_rules/firewall_rules.py | 30 |
2 files changed, 20 insertions, 12 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 bacc450..2942b19 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 @@ -778,7 +778,7 @@ class Firewall_rules(ConfigBase): if opr and not ( h_limit and self._is_w_same(rate, h_limit, "unit") - and self.is_w_same(rate, h_limit, "number") + and self._is_w_same(rate, h_limit, "number") ): commands.append( cmd diff --git a/plugins/module_utils/network/vyos/facts/firewall_rules/firewall_rules.py b/plugins/module_utils/network/vyos/facts/firewall_rules/firewall_rules.py index c760e4d..a6b5634 100644 --- a/plugins/module_utils/network/vyos/facts/firewall_rules/firewall_rules.py +++ b/plugins/module_utils/network/vyos/facts/firewall_rules/firewall_rules.py @@ -429,17 +429,6 @@ class Firewall_rulesFacts(object): cfg_dict["rate"] = self.parse_rate(conf, "rate") return cfg_dict - def parse_rate(self, conf, attrib=None): - """ - This function triggers the parsing of 'rate' attributes. - :param conf: configuration. - :param attrib: 'rate' - :return: generated config dictionary. - """ - a_lst = ["unit", "number"] - cfg_dict = self.parse_attr(conf, a_lst, match=attrib) - return cfg_dict - def parse_attr(self, conf, attr_list, match=None): """ This function peforms the following: @@ -472,6 +461,7 @@ class Firewall_rulesFacts(object): if attrib == 'log': out = search(r"^.*\d+" + " (log$)", conf, M) if out: + val = out.group(1).strip("'") if self.is_num(attrib): val = int(val) @@ -519,3 +509,21 @@ class Firewall_rulesFacts(object): """ num_set = ("time", "code", "type", "count", "burst", "number") return True if attrib in num_set else False + + def parse_rate(self, conf, match): + """ + This function triggers the parsing of 'rate' attributes. + :param conf: configuration. + :param attrib: 'rate' + :return: generated config dictionary. + """ + config = {} + + out = search(r"^.*" + match + " (.+)", conf, M) + if out: + val = out.group(1).strip("'") + if "/" in val: # number/unit + (number, unit) = val.split("/") + config['number'] = number + config['unit'] = unit + return config |