744a36f35fb6ca0c9d78b57ef8cdcced079f5bf0
[sfa.git] / sfa / rspecs / elements / versions / plosv1FWRule.py
1 from sfa.rspecs.elements.element import Element  
2 from sfa.rspecs.elements.fw_rule import FWRule
3
4 class PLOSv1FWRule:
5     @staticmethod
6     def add_rules(xml, rules):
7         if not rules:
8             return 
9         for rule in rules:
10             rule_elem = xml.add_element('{%s}fw_rule' % xml.namespaces['plos'])
11             rule_elem.set('protocol', rule.get('protocol'))
12             rule_elem.set('port_range', rule.get('port_range'))
13             rule_elem.set('cidr_ip', rule.get('cidr_ip'))
14             if rule.get('icmp_type_code'):
15                 rule_elem.set('icmp_type_code', rule.get('icmp_type_code'))
16               
17     @staticmethod
18     def get_rules(xml):
19         rules = []
20         if 'plos' in xml.namespaces: 
21             for rule_elem in xml.xpath('./plos:fw_rule | ./fw_rule'):
22                 rule = FWRule(rule_elem.attrib, rule_elem)
23                 rules.append(rule)  
24         return rules
25