X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Frspecs%2Fpg_rspec_converter.py;h=1c57d7da48af0b112d2f74160cb774ebe8ec74bd;hb=14ca7e52f6af8accc0ba6e362e2a674ea4579e7f;hp=4686e4c4943f95e3c5d1ed474d4cf9efbeccd0bb;hpb=611231965294fc94ac465d6efbab5e3a929aa546;p=sfa.git diff --git a/sfa/rspecs/pg_rspec_converter.py b/sfa/rspecs/pg_rspec_converter.py index 4686e4c4..1c57d7da 100755 --- a/sfa/rspecs/pg_rspec_converter.py +++ b/sfa/rspecs/pg_rspec_converter.py @@ -1,9 +1,9 @@ #!/usr/bin/python from lxml import etree from StringIO import StringIO -from sfa.util.xrn import * -from sfa.rspecs.pg_rspec import PGRSpec -from sfa.rspecs.sfa_rspec import SfaRSpec +from sfa.util.xrn import Xrn, urn_to_hrn +from sfa.rspecs.rspec import RSpec +from sfa.rspecs.version_manager import VersionManager xslt=''' @@ -34,36 +34,39 @@ transform=etree.XSLT(xslt_doc) class PGRSpecConverter: @staticmethod - def to_sfa_rspec(rspec): - if isinstance(rspec, PGRSpec): + def to_sfa_rspec(rspec, content_type = None): + if not isinstance(rspec, RSpec): + pg_rspec = RSpec(rspec) + else: pg_rspec = rspec - else: - pg_rspec = PGRSpec(rspec=rspec) - sfa_rspec = SfaRSpec() + + version_manager = VersionManager() + sfa_version = version_manager._get_version('sfa', '1') + sfa_rspec = RSpec(version=sfa_version) # get network - network_urn = pg_rspec.get_network() + network_urn = pg_rspec.version.get_network() network, _ = urn_to_hrn(network_urn) - network_element = sfa_rspec.add_element('network', {'name': network, 'id': network}) + network_element = sfa_rspec.xml.add_element('network', {'name': network, 'id': network}) # get nodes - pg_nodes_elements = pg_rspec.get_node_elements() - nodes_with_slivers = pg_rspec.get_nodes_with_slivers() + pg_nodes_elements = pg_rspec.version.get_node_elements() + 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()) attribs['id'] = 'n'+str(i) - node_element = sfa_rspec.add_element('node', attribs, parent=network_element) + node_element = sfa_rspec.xml.add_element('node', attribs, parent=network_element) urn = pg_node_element.xpath('@component_id', namespaces=pg_rspec.namespaces) if urn: urn = urn[0] hostname = Xrn.urn_split(urn)[-1] - hostname_element = sfa_rspec.add_element('hostname', parent=node_element, text=hostname) + hostname_element = sfa_rspec.xml.add_element('hostname', parent=node_element, text=hostname) if hostname in nodes_with_slivers: - sfa_rspec.add_element('sliver', parent=node_element) + sfa_rspec.xml.add_element('sliver', parent=node_element) - urn_element = sfa_rspec.add_element('urn', parent=node_element, text=urn) + urn_element = sfa_rspec.xml.add_element('urn', parent=node_element, text=urn) # just copy over remaining child elements