From: Tony Mack Date: Thu, 6 Oct 2011 01:21:28 +0000 (-0400) Subject: add content_type argument X-Git-Tag: sfa-1.1-1~139 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=2516940970996337dcd10110b64f3ec572301f1e;p=sfa.git add content_type argument --- diff --git a/sfa/rspecs/pg_rspec_converter.py b/sfa/rspecs/pg_rspec_converter.py index 3e3729cf..42e7ccdf 100755 --- a/sfa/rspecs/pg_rspec_converter.py +++ b/sfa/rspecs/pg_rspec_converter.py @@ -34,7 +34,7 @@ transform=etree.XSLT(xslt_doc) class PGRSpecConverter: @staticmethod - def to_sfa_rspec(rspec): + def to_sfa_rspec(rspec, content_type = None): if not isinstance(rspec, RSpec): pg_rspec = RSpec(rspec) else: diff --git a/sfa/rspecs/rspec_converter.py b/sfa/rspecs/rspec_converter.py index e29afeae..7dff2f0b 100755 --- a/sfa/rspecs/rspec_converter.py +++ b/sfa/rspecs/rspec_converter.py @@ -8,7 +8,7 @@ from sfa.rspecs.version_manager import VersionManager class RSpecConverter: @staticmethod - def to_sfa_rspec(in_rspec): + def to_sfa_rspec(in_rspec, content_type=None): rspec = RSpec(in_rspec) version_manager = VersionManager() sfa_version = version_manager._get_version('sfa', '1') @@ -16,12 +16,12 @@ class RSpecConverter: if rspec.version.type.lower() == sfa_version.type.lower(): return in_rspec elif rspec.version.type.lower() == pg_version.type.lower(): - return PGRSpecConverter.to_sfa_rspec(in_rspec) + return PGRSpecConverter.to_sfa_rspec(in_rspec, content_type) else: return in_rspec @staticmethod - def to_pg_rspec(in_rspec): + def to_pg_rspec(in_rspec, content_type=None): rspec = RSpec(in_rspec) version_manager = VersionManager() sfa_version = version_manager._get_version('sfa', '1') @@ -30,7 +30,7 @@ class RSpecConverter: if rspec.version.type.lower() == pg_version.type.lower(): return in_rspec elif rspec.version.type.lower() == sfa_version.type.lower(): - return SfaRSpecConverter.to_pg_rspec(in_rspec) + return SfaRSpecConverter.to_pg_rspec(in_rspec, content_type) else: return in_rspec 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()