X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Frspecs%2Fsfa_rspec_converter.py;h=77bdc3cbda020791b235a4a244bbceebb8b436ea;hb=2516940970996337dcd10110b64f3ec572301f1e;hp=29d14e4f8f37b279795854ed32b4be84152c5cd0;hpb=290a22d8a07882292ea1c3b9ca4f1ded2439c985;p=sfa.git diff --git a/sfa/rspecs/sfa_rspec_converter.py b/sfa/rspecs/sfa_rspec_converter.py index 29d14e4f..77bdc3cb 100755 --- a/sfa/rspecs/sfa_rspec_converter.py +++ b/sfa/rspecs/sfa_rspec_converter.py @@ -9,12 +9,17 @@ from sfa.rspecs.version_manager import VersionManager class SfaRSpecConverter: @staticmethod - def to_pg_rspec(rspec): + def to_pg_rspec(rspec, content_type = None): if not isinstance(rspec, RSpec): sfa_rspec = RSpec(rspec) else: sfa_rspec = rspec - + + if not content_type or content_type not in \ + ['ad', 'request', 'manifest']: + content_type = sfa_rspec.version.content_type + + version_manager = VersionManager() pg_version = version_manager._get_version('protogeni', '2', 'request') pg_rspec = RSpec(version=pg_version) @@ -55,6 +60,11 @@ class SfaRSpecConverter: sliver_element = sfa_node_element.find('sliver') if sliver_element != None: + if content_type == 'request': + # remove all child elements + for child in sfa_node_element.iterchildren(): + sfa_node_element.remove(child) + # add the sliver pg_rspec.xml.add_element('sliver_type', {'name': 'planetlab-vnode'}, parent=node_element) return pg_rspec.toxml()