fix merge problem
[sfa.git] / sfa / rspecs / elements / versions / sfav1Network.py
1
2
3 from lxml import etree
4 from sfa.util.plxrn import PlXrn
5 from sfa.util.xrn import Xrn
6 from sfa.rspecs.rspec_elements import RSpecElement, RSpecElements
7
8 class SFAv1Network:
9     elements = {
10         'network': RSpecElement(RSpecElements.NETWORK, '//network'),
11     }
12
13     @staticmethod
14     def add_network(xml, network):
15         found = False
16         network_objs = SFAv1Network.get_networks(xml)
17         for network_obj in network_objs:
18             if network_obj['name'] == network['name']:
19                 found = True
20                 network_elem = network_obj.element
21         if not found:
22             network_elem = etree.SubElement(xml, 'network', name = network['name'])
23         return network_elem  
24     
25     @staticmethod
26     def get_networks(xml):
27         networks = []
28         network_elems = xml.xpath(SFAv1Network.elements['network'].path)
29         for network_elem in network_elems:
30             network = Network({'name': network_elem.attrib.get('name', None)}, network_elem)
31             networks.append(network)
32         return networks