import os
from sfa.util.faults import InvalidRSpec, UnsupportedRSpecVersion
-from sfa.rspecs.baseversion import BaseVersion
+from sfa.rspecs.version import RSpecVersion
from sfa.util.sfalogging import logger
class VersionManager:
versions_path = path + os.sep + 'versions'
versions_module_path = 'sfa.rspecs.versions'
valid_module = lambda x: os.path.isfile(os.sep.join([versions_path, x])) \
- and not x.endswith('.pyc') and x not in ['__init__.py']
+ and x.endswith('.py') and x != '__init__.py'
files = [f for f in os.listdir(versions_path) if valid_module(f)]
for filename in files:
basename = filename.split('.')[0]
if num_parts > 2:
content_type = version_parts[2]
retval = self._get_version(type, version_num, content_type)
- elif isinstance(version, BaseVersion):
+ elif isinstance(version, RSpecVersion):
retval = version
else:
raise UnsupportedRSpecVersion("No such version: %s "% str(version))
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
+
if __name__ == '__main__':
v = VersionManager()
print v.versions
- print v.get_version('sfa 1')
- print v.get_version('protogeni 2')
- print v.get_version('protogeni 2 advertisement')
- print v.get_version_by_schema('http://www.protogeni.net/resources/rspec/2/ad.xsd')
+ 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')