X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Frspecs%2Fpg_rspec_converter.py;h=234465f16cd9ff40a8e8885e18db08b87dc68e06;hb=fad16c7d54b658b37a9b42fbee47b0d4f51cb8ec;hp=1c57d7da48af0b112d2f74160cb774ebe8ec74bd;hpb=70f4308757e799aeb96545f5e0a22c96dc8633c2;p=sfa.git diff --git a/sfa/rspecs/pg_rspec_converter.py b/sfa/rspecs/pg_rspec_converter.py index 1c57d7da..234465f1 100755 --- a/sfa/rspecs/pg_rspec_converter.py +++ b/sfa/rspecs/pg_rspec_converter.py @@ -1,4 +1,6 @@ #!/usr/bin/python +from __future__ import print_function + from lxml import etree from StringIO import StringIO from sfa.util.xrn import Xrn, urn_to_hrn @@ -44,34 +46,46 @@ class PGRSpecConverter: sfa_version = version_manager._get_version('sfa', '1') sfa_rspec = RSpec(version=sfa_version) + #nodes = pg_rspec.version.get_nodes() + #sfa_rspec.version.add_nodes(nodes()) + #sfa_rspec.version.add_links(pg_rspec.version.get_links()) + #return sfa_rspec.toxml() + # get network - network_urn = pg_rspec.version.get_network() - network, _ = urn_to_hrn(network_urn) - network_element = sfa_rspec.xml.add_element('network', {'name': network, 'id': network}) + networks = pg_rspec.version.get_networks() + network_hrn = networks[0]["name"] + network_element = sfa_rspec.xml.add_element('network', name=network_hrn, id=network_hrn) # get nodes - pg_nodes_elements = pg_rspec.version.get_node_elements() + pg_nodes_elements = pg_rspec.version.get_nodes() nodes_with_slivers = pg_rspec.version.get_nodes_with_slivers() i = 1 - for pg_node_element in pg_nodes_elements: - attribs = dict(pg_node_element.attrib.items()) + for pg_node in pg_nodes_elements: + attribs = dict(pg_node.items()) attribs['id'] = 'n'+str(i) - node_element = sfa_rspec.xml.add_element('node', attribs, parent=network_element) - urn = pg_node_element.xpath('@component_id', namespaces=pg_rspec.namespaces) + node_element = network_element.add_element('node') + for attrib in attribs: + if type(attribs[attrib]) == str: + node_element.set(attrib, attribs[attrib]) + urn = pg_node["component_id"] if urn: - urn = urn[0] + if type(urn)==list: + # legacy code, not sure if urn is ever a list... + urn = urn[0] hostname = Xrn.urn_split(urn)[-1] - hostname_element = sfa_rspec.xml.add_element('hostname', parent=node_element, text=hostname) + hostname_element = node_element.add_element('hostname') + hostname_element.set_text(hostname) if hostname in nodes_with_slivers: - sfa_rspec.xml.add_element('sliver', parent=node_element) - - urn_element = sfa_rspec.xml.add_element('urn', parent=node_element, text=urn) - + node_element.add_element('sliver') + for hardware_type in pg_node["hardware_types"]: + if "name" in hardware_type: + node_element.add_element("hardware_type", name=hardware_type["name"]) + # just copy over remaining child elements - for child in pg_node_element.getchildren(): - node_element.append(transform(child).getroot()) + #for child in pg_node_element.getchildren(): + # node_element.append(transform(child).getroot()) i = i+1 return sfa_rspec.toxml() @@ -79,4 +93,4 @@ class PGRSpecConverter: if __name__ == '__main__': import sys if len(sys.argv) > 1: - print PGRSpecConverter.to_sfa_rspec(sys.argv[1]) + print(PGRSpecConverter.to_sfa_rspec(sys.argv[1]))