From: Tony Mack Date: Mon, 25 Apr 2011 17:01:16 +0000 (-0400) Subject: add network tag X-Git-Tag: sfa-1.0-21-ckp1~65 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=7322bf8fc1e36e8f0bc2b478322c38cac628db29;p=sfa.git add network tag --- diff --git a/sfa/rspecs/sfa_rspec.py b/sfa/rspecs/sfa_rspec.py index bc67489f..7f0c10e9 100755 --- a/sfa/rspecs/sfa_rspec.py +++ b/sfa/rspecs/sfa_rspec.py @@ -154,18 +154,30 @@ class SfaRSpec(RSpec): # Builder ################## + def add_network(self, network): + network_tag = etree.SubElement(self.xml, 'network', id=network) + def add_nodes(self, nodes, network = None, no_dupes=False): if not isinstance(nodes, list): nodes = [nodes] for node in nodes: - if check_for_dupes and \ + if no_dupes and \ self.get_node_element(node['hostname']): # node already exists continue - - node_tag = etree.SubElement(self.xml, 'node') - if network: - node_tag.set('component_manager_uuid', network) + + network_tag = self.xml + if 'network' in node: + network = node['network'] + network_tags = self.xml.xpath('//network[@name="%s"]' % network, self.namespaces) + if not network_tag: + network_tag = etree.SubElement(self.xml, 'network', name=network) + else: + network_tag = network_tags[0] + + node_tag = etree.SubElement(network_tag, 'node') + if 'network' in node: + node_tag.set('component_manager_uuid', network) if 'urn' in node: node_tag.set('compinent_uuid', node['urn']) if 'site_urn' in node: @@ -251,7 +263,8 @@ class SfaRSpec(RSpec): if __name__ == '__main__': rspec = SfaRSpec() nodes = [ - {'hostname': 'node1.planet-lab.org', + {'network': 'plc', + 'hostname': 'node1.planet-lab.org', 'site_urn': 'urn:publicid:IDN+plc+authority+cm', 'node_id': 1, }