summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authoromnom62 <75066712+omnom62@users.noreply.github.com>2025-01-31 22:15:08 +1000
committerGitHub <noreply@github.com>2025-01-31 07:15:08 -0500
commit2a152f3c28ee5c5bac99489a8cd056457e4467a4 (patch)
treeae7c31cb2cb1f0223f22ec344115327fdbe25940 /plugins
parent7dded0a0a411c2df7a0bcbcdc24da3ffef353efd (diff)
downloadvyos.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.py2
-rw-r--r--plugins/module_utils/network/vyos/facts/firewall_rules/firewall_rules.py30
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