diff options
Diffstat (limited to 'plugins')
4 files changed, 20 insertions, 93 deletions
diff --git a/plugins/module_utils/network/vyos/argspec/firewall_rules/firewall_rules.py b/plugins/module_utils/network/vyos/argspec/firewall_rules/firewall_rules.py index 74fa9c12..6ae17585 100644 --- a/plugins/module_utils/network/vyos/argspec/firewall_rules/firewall_rules.py +++ b/plugins/module_utils/network/vyos/argspec/firewall_rules/firewall_rules.py @@ -217,24 +217,6 @@ class Firewall_rulesArgs(object): # pylint: disable=R0903 }, "type": "dict", }, - "p2p": { - "elements": "dict", - "options": { - "application": { - "choices": [ - "all", - "applejuice", - "bittorrent", - "directconnect", - "edonkey", - "gnutella", - "kazaa", - ], - "type": "str", - }, - }, - "type": "list", - }, "packet_length": { "elements": "dict", "options": {"length": {"type": "str"}}, 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 68ceff80..2942b191 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 @@ -406,8 +406,6 @@ class Firewall_rules(ConfigBase): and not self._is_del(l_set, h) ): commands.append(self._add_r_base_attrib(rs_id, key, w, opr=opr)) - elif key == "p2p": - commands.extend(self._add_p2p(key, w, h, cmd, opr)) elif key == "tcp": commands.extend(self._add_tcp(key, w, h, cmd, opr)) elif key == "time": @@ -430,31 +428,6 @@ class Firewall_rules(ConfigBase): commands.extend(self._add_interface(key, w, h, cmd, opr)) return commands - def _add_p2p(self, attr, w, h, cmd, opr): - """ - This function forms the set/delete commands based on the 'opr' type - for p2p applications attributes. - :param want: desired config. - :param have: target config. - :return: generated commands list. - """ - commands = [] - have = [] - if w: - want = w.get(attr) or [] - if h: - have = h.get(attr) or [] - if want: - if opr: - applications = list_diff_want_only(want, have) - for app in applications: - commands.append(cmd + (" " + attr + " " + app["application"])) - elif not opr and have: - applications = list_diff_want_only(want, have) - for app in applications: - commands.append(cmd + (" " + attr + " " + app["application"])) - return commands - def _add_state(self, attr, w, h, cmd, opr): """ This function forms the command for 'state' attributes based on the 'opr'. @@ -805,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 3da70891..a6b56345 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 @@ -224,7 +224,6 @@ class Firewall_rulesFacts(object): ] rule = self.parse_attr(conf, a_lst) r_sub = { - "p2p": self.parse_p2p(conf), "tcp": self.parse_tcp(conf), "icmp": self.parse_icmp(conf, "icmp"), "time": self.parse_time(conf, "time"), @@ -269,23 +268,6 @@ class Firewall_rulesFacts(object): lengths.append(obj) return lengths - def parse_p2p(self, conf): - """ - This function forms the regex to fetch the 'p2p' with in - 'rules' - :param conf: configuration data. - :return: generated rule list configuration. - """ - a_lst = [] - applications = findall(r"p2p (?:\'*)(\d+)(?:\'*)", conf, M) - if applications: - app_lst = [] - for r in set(applications): - obj = {"application": r.strip("'")} - app_lst.append(obj) - a_lst = sorted(app_lst, key=lambda i: i["application"]) - return a_lst - def parse_src_or_dest(self, conf, attrib=None): """ This function triggers the parsing of 'source or @@ -447,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: @@ -490,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) @@ -537,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 diff --git a/plugins/modules/vyos_firewall_rules.py b/plugins/modules/vyos_firewall_rules.py index d8c7a1c9..850299ff 100644 --- a/plugins/modules/vyos_firewall_rules.py +++ b/plugins/modules/vyos_firewall_rules.py @@ -352,24 +352,6 @@ options: - Packet type match. type: str choices: ['broadcast', 'multicast', 'host', 'other'] - p2p: - description: - - P2P application packets. - type: list - elements: dict - suboptions: - application: - description: - - Name of the application. - type: str - choices: - - all - - applejuice - - bittorrent - - directconnect - - edonkey - - gnutella - - kazaa protocol: description: - Protocol to match (protocol name in /etc/protocols or protocol number |