X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Frspecs%2Fsfa_rspec.py;h=ae8332821031703b7d65b4e7f7ab171306cfbd54;hb=ed9a188808d5d293ca0b1297fe43a5ffbe3cc4ee;hp=50d42bd8ecc39d56bb8bebc5099dcc0be4e1addc;hpb=743c2f9b4ee2296431731ece0205c14fbf5e35ef;p=sfa.git diff --git a/sfa/rspecs/sfa_rspec.py b/sfa/rspecs/sfa_rspec.py index 50d42bd8..ae833282 100755 --- a/sfa/rspecs/sfa_rspec.py +++ b/sfa/rspecs/sfa_rspec.py @@ -12,6 +12,7 @@ class SfaRSpec(RSpec): header = '\n' namespaces = {} format = 'sfa' + type = 'sfa' ################### # Parser ################### @@ -31,8 +32,11 @@ class SfaRSpec(RSpec): return name.getparent() return None - def get_node_elements(self): - return self.xml.xpath('//node') + def get_node_elements(self, network=None): + if network: + return self.xml.xpath('//network[@name="%s"]//node' % network) + else: + return self.xml.xpath('//node') def get_nodes(self, network=None): if network == None: @@ -194,7 +198,13 @@ class SfaRSpec(RSpec): for tag in node['tags']: # expose this hard wired list of tags, plus the ones that are marked 'sfa' in their category if tag['tagname'] in ['fcdistro', 'arch'] or 'sfa' in tag['category'].split('/'): - tag_element = etree.SubElement(node_tag, tag['tagname'], value=tag['value']) + tag_element = etree.SubElement(node_tag, tag['tagname'], value=tag['value']) + + if 'site' in node: + longitude = str(node['site']['longitude']) + latitude = str(node['site']['latitude']) + location = etree.SubElement(node_tag, 'location', country='unknown', \ + longitude=longitude, latitude=latitude) def add_interfaces(self, interfaces): pass @@ -214,7 +224,7 @@ class SfaRSpec(RSpec): sliver_elem = etree.SubElement(node_elem, 'sliver') if 'tags' in sliver: for tag in sliver['tags']: - etree.SubElement(sliver_elem, tag['name'], value=tag['value']) + etree.SubElement(sliver_elem, tag['tagname'], value=tag['value']) def remove_slivers(self, slivers, network=None, no_dupes=False): if not isinstance(slivers, list):