return the correct error codes
authorTony Mack <tmack@paris.CS.Princeton.EDU>
Wed, 30 Nov 2011 20:13:39 +0000 (15:13 -0500)
committerTony Mack <tmack@paris.CS.Princeton.EDU>
Wed, 30 Nov 2011 20:13:39 +0000 (15:13 -0500)
sfa/client/sfi.py [changed mode: 0644->0755]
sfa/managers/aggregate_manager.py
sfa/methods/ListResources.py
sfa/rspecs/version_manager.py
sfa/util/faults.py

old mode 100644 (file)
new mode 100755 (executable)
index d1878b9..132a84c
@@ -973,12 +973,13 @@ class Sfi:
             server_version = self.get_cached_server_version(server)
             if 'sfa' in server_version:
                 # just request the version the client wants 
-                options['rspec_version'] = version_manager.get_version(opts.rspec_version).to_dict()
+                options['geni_rspec_version'] = version_manager.get_version(opts.rspec_version).to_dict()
             else:
                 # this must be a protogeni aggregate. We should request a v2 ad rspec
                 # regardless of what the client user requested 
-                options['rspec_version'] = version_manager.get_version('ProtoGENI 2').to_dict()     
-
+                options['geni_rspec_version'] = version_manager.get_version('ProtoGENI 2').to_dict()     
+        options['geni_rspec_version'] = {'type': 'geni', 'version': '3.0'}
         call_args = [creds, options]
         result = server.ListResources(*call_args)
         value = ReturnValue.get_value(result)
index e804ef8..2fbdf3d 100644 (file)
@@ -304,7 +304,7 @@ class AggregateManager:
     
         version_manager = VersionManager()
         # 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)
     
         #panos adding the info option to the caching key (can be improved)
index c13baa7..328ddb2 100644 (file)
@@ -3,7 +3,7 @@ import zlib
 from sfa.util.xrn import urn_to_hrn
 from sfa.util.method import Method
 from sfa.util.sfatablesRuntime import run_sfatables
-from sfa.util.faults import InvalidRSpecVersion
+from sfa.util.faults import SfaInvalidArgument
 from sfa.trust.credential import Credential
 
 from sfa.storage.parameter import Parameter, Mixed
@@ -27,8 +27,8 @@ class ListResources(Method):
         self.api.logger.info("interface: %s\tmethod-name: %s" % (self.api.interface, self.name))
        
         # client must specify a version
-        if not options.get('rspec_version'):
-            raise InvalidRSpecVersion('Must specify an rspec version option. rspec_version cannot be null')
+        if not options.get('geni_rspec_version'):
+            raise SfaInvalidArgument('Must specify an rspec version option. geni_rspec_version cannot be null')
  
         # get slice's hrn from options    
         xrn = options.get('geni_slice_urn', '')
index 97f50f8..d59986f 100644 (file)
@@ -1,5 +1,5 @@
 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    
 
@@ -33,7 +33,7 @@ class VersionManager:
                       or version.content_type == '*':
                         retval = version
         if not retval:
-            raise InvalidRSpecVersion("No such version: %s %s %s "% (type, version_num, content_type))
+            raise UnvalidRSpecVersion("%s %s is not suported here"% (type, version_num, content_type))
         return retval
 
     def get_version(self, version=None):
index 267932e..ef277ff 100644 (file)
@@ -263,6 +263,14 @@ class InvalidRSpecVersion(SfaFault):
     def __str__(self):
         return repr(self.value)
 
+class UnsupportedRSpecVersion(SfaFault):
+    def __init__(self, value, extra = None):
+        self.value = value
+        faultString = "Unsupported RSpec version: %(value)s" % locals()
+        SfaFault.__init__(self, GENICODE.UNSUPPORTED, faultString, extra)
+    def __str__(self):
+        return repr(self.value)
+
 class InvalidRSpecElement(SfaFault):
     def __init__(self, value, extra = None):
         self.value = value