import os
-from sfa.util.faults import InvalidRSpec, InvalidRSpecVersion
+from sfa.util.faults import InvalidRSpec, UnsupportedRSpecVersion
from sfa.rspecs.baseversion import BaseVersion
from sfa.util.sfalogging import logger
if content_type is None or content_type.lower() == version.content_type.lower() \
or version.content_type == '*':
retval = version
+ ### sounds like we should be glad with the first match, not the last one
+ break
if not retval:
- raise InvalidRSpecVersion("No such version: %s %s %s "% (type, version_num, content_type))
+ raise UnsupportedRSpecVersion("[%s %s %s] is not suported here"% (type, version_num, content_type))
return retval
def get_version(self, version=None):
elif isinstance(version, BaseVersion):
retval = version
else:
- raise InvalidRSpecVersion("No such version: %s "% str(version))
+ raise UnsupportedRSpecVersion("No such version: %s "% str(version))
return retval
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')