From: Tony Mack Date: Wed, 14 Mar 2012 20:36:36 +0000 (-0400) Subject: initial checkin X-Git-Tag: sfa-2.1-4~56 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=9ccab1d9285ffba1fe79a6c27efe56c823e945f6;p=sfa.git initial checkin --- 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 +