From 9ccab1d9285ffba1fe79a6c27efe56c823e945f6 Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Wed, 14 Mar 2012 16:36:36 -0400 Subject: [PATCH] initial checkin --- sfa/rspecs/elements/fw_rule.py | 10 +++++++++ sfa/rspecs/elements/versions/plosv1FWRule.py | 23 ++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 sfa/rspecs/elements/fw_rule.py create mode 100644 sfa/rspecs/elements/versions/plosv1FWRule.py diff --git a/sfa/rspecs/elements/fw_rule.py b/sfa/rspecs/elements/fw_rule.py new file mode 100644 index 00000000..9ae66ab9 --- /dev/null +++ b/sfa/rspecs/elements/fw_rule.py @@ -0,0 +1,10 @@ +from sfa.rspecs.elements.element import Element + +class FWRule(Element): + fields = [ + 'protocol', + 'cidr_ip', + 'port_range', + 'icmp_type_code', + ] + diff --git a/sfa/rspecs/elements/versions/plosv1FWRule.py b/sfa/rspecs/elements/versions/plosv1FWRule.py new file mode 100644 index 00000000..1fd017aa --- /dev/null +++ b/sfa/rspecs/elements/versions/plosv1FWRule.py @@ -0,0 +1,23 @@ +from sfa.rspecs.elements.element import Element +from sfa.rspecs.elements.fw_rule import FWRule + +class PLOSv1FWRule: + @staticmethod + def add_rules(xml, rules): + if not rules: + return + for rule in rules: + rule_elem = xml.add_element('plos:fw_rule') + rule_elem.set('protocol', rule.get('protocol')) + rule_elem.set('port_range', rule.get('port_range')) + rule_elem.set('cidr_ip', rule.get('cidr_ip')) + rule_elem.set('icmp_type_code', rule.get('icmp_type_code')) + + @staticmethod + def get_rules(xml): + rules = [] + for rule_elem in xml.xpath('./plos:fw_rule | ./fw_rule'): + rule = FWRule(rule_elem.attrib, rule_elem) + rules.append(rule) + return rules + -- 2.43.0