From: Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Date: Thu, 1 Dec 2011 09:30:28 +0000 (+0100)
Subject: incoming version is tagged geni_rspec_version, not rspec_version
X-Git-Tag: sfa-2.1-24~28^2
X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=7f61a7924523a8bedfa7d09068191b075d0f962a;p=sfa.git

incoming version is tagged geni_rspec_version, not rspec_version
---

diff --git a/sfa/client/sfi.py b/sfa/client/sfi.py
index 132a84c0..845b2b13 100755
--- a/sfa/client/sfi.py
+++ b/sfa/client/sfi.py
@@ -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)
diff --git a/sfa/managers/slice_manager.py b/sfa/managers/slice_manager.py
index 2fce1399..76ea6d27 100644
--- a/sfa/managers/slice_manager.py
+++ b/sfa/managers/slice_manager.py
@@ -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: 
diff --git a/sfa/rspecs/version_manager.py b/sfa/rspecs/version_manager.py
index 666da7a1..2eabaa49 100644
--- a/sfa/rspecs/version_manager.py
+++ b/sfa/rspecs/version_manager.py
@@ -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