RSpecVersion.todict() needs to turn values() into a list()
[sfa.git] / sfa / rspecs / version_manager.py
index 55e29d7..e0a604e 100644 (file)
@@ -1,7 +1,10 @@
+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):
@@ -47,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]
@@ -76,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')