X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Frspecs%2Fversion_manager.py;h=e0a604e4e35c75669d6b7992e164075e0b1362bc;hb=031774db6b99361059196ae9b63ecd1f0be9e19a;hp=4e60bacb6bdc9fb17487c2d0bd92f499d840f8dd;hpb=67865400bbf280490aad49a3173a861d3fa91d67;p=sfa.git diff --git a/sfa/rspecs/version_manager.py b/sfa/rspecs/version_manager.py index 4e60bacb..e0a604e4 100644 --- a/sfa/rspecs/version_manager.py +++ b/sfa/rspecs/version_manager.py @@ -1,13 +1,21 @@ +from __future__ import print_function + import os from sfa.util.faults import InvalidRSpec, UnsupportedRSpecVersion from sfa.rspecs.version import RSpecVersion from sfa.util.sfalogging import logger +from sfa.util.py23 import StringType class VersionManager: def __init__(self): self.versions = [] self.load_versions() + def __repr__(self): + return ""\ + .format(len(self.versions), + ", ".join( [ str(x) for x in self.versions ])) + def load_versions(self): path = os.path.dirname(os.path.abspath( __file__ )) versions_path = path + os.sep + 'versions' @@ -42,7 +50,7 @@ class VersionManager: retval = None if isinstance(version, dict): retval = self._get_version(version.get('type'), version.get('version'), version.get('content_type')) - elif isinstance(version, basestring): + elif isinstance(version, StringType): version_parts = version.split(' ') num_parts = len(version_parts) type = version_parts[0] @@ -71,23 +79,24 @@ class VersionManager: raise InvalidRSpec("Unkwnown RSpec schema: %s" % schema) return retval -def show_by_string(string): - try: - print v.get_version(string) - except Exception,e: - print e -def show_by_schema(string): - try: - print v.get_version_by_schema(string) - except Exception,e: - print e + def show_by_string(self, string): + try: + print(self.get_version(string)) + except Exception as e: + print(e) + + def show_by_schema(self, string): + try: + print(self.get_version_by_schema(string)) + except Exception as e: + print(e) if __name__ == '__main__': - v = VersionManager() - print v.versions - show_by_string('sfa 1') - show_by_string('protogeni 2') - show_by_string('protogeni 2 advertisement') - show_by_schema('http://www.protogeni.net/resources/rspec/2/ad.xsd') - show_by_schema('http://sorch.netmode.ntua.gr/ws/RSpec/ad.xsd') + manager = VersionManager() + print(manager) + manager.show_by_string('sfa 1') + manager.show_by_string('protogeni 2') + manager.show_by_string('protogeni 2 advertisement') + manager.show_by_schema('http://www.protogeni.net/resources/rspec/2/ad.xsd') + manager.show_by_schema('http://sorch.netmode.ntua.gr/ws/RSpec/ad.xsd')