incoming version is tagged geni_rspec_version, not rspec_version
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Thu, 1 Dec 2011 09:30:28 +0000 (10:30 +0100)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Thu, 1 Dec 2011 09:30:28 +0000 (10:30 +0100)
sfa/client/sfi.py
sfa/managers/slice_manager.py
sfa/rspecs/version_manager.py

index 132a84c..845b2b1 100755 (executable)
@@ -978,7 +978,8 @@ class Sfi:
                 # this must be a protogeni aggregate. We should request a v2 ad rspec
                 # regardless of what the client user requested 
                 options['geni_rspec_version'] = version_manager.get_version('ProtoGENI 2').to_dict()     
-        options['geni_rspec_version'] = {'type': 'geni', 'version': '3.0'}
+        else:
+            options['geni_rspec_version'] = {'type': 'geni', 'version': '3.0'}
  
         call_args = [creds, options]
         result = server.ListResources(*call_args)
index 2fce139..76ea6d2 100644 (file)
@@ -141,7 +141,7 @@ class SliceManager:
             del(options['geni_compressed'])
     
         # get the rspec's return format from options
-        rspec_version = version_manager.get_version(options.get('rspec_version'))
+        rspec_version = version_manager.get_version(options.get('geni_rspec_version'))
         version_string = "rspec_%s" % (rspec_version)
     
         # look in cache first
@@ -172,7 +172,7 @@ class SliceManager:
     
     
         results = threads.get_results()
-        rspec_version = version_manager.get_version(options.get('rspec_version'))
+        rspec_version = version_manager.get_version(options.get('geni_rspec_version'))
         if xrn:    
             result_version = version_manager._get_version(rspec_version.type, rspec_version.version, 'manifest')
         else: 
index 666da7a..2eabaa4 100644 (file)
@@ -32,6 +32,8 @@ class VersionManager:
                     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 UnvalidRSpecVersion("%s %s is not suported here"% (type, version_num, content_type))
         return retval
@@ -54,7 +56,7 @@ class VersionManager:
         elif isinstance(version, BaseVersion):
             retval = version
         else:
-            raise InvalidRSpec("No such version: %s "% str(version))
+            raise UnsupportedRSpecVersion("No such version: %s "% str(version))
  
         return retval