From 2516940970996337dcd10110b64f3ec572301f1e Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Wed, 5 Oct 2011 21:21:28 -0400 Subject: [PATCH] add content_type argument --- sfa/rspecs/pg_rspec_converter.py | 2 +- sfa/rspecs/rspec_converter.py | 8 ++++---- sfa/rspecs/sfa_rspec_converter.py | 14 ++++++++++++-- 3 files changed, 17 insertions(+), 7 deletions(-) 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() -- 2.47.0