From 5aedc35a6550cd1bb31b99535746251bc05b9115 Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Wed, 30 Nov 2011 15:13:39 -0500 Subject: [PATCH] return the correct error codes --- sfa/client/sfi.py | 7 ++++--- sfa/managers/aggregate_manager.py | 2 +- sfa/methods/ListResources.py | 6 +++--- sfa/rspecs/version_manager.py | 4 ++-- sfa/util/faults.py | 8 ++++++++ 5 files changed, 18 insertions(+), 9 deletions(-) mode change 100644 => 100755 sfa/client/sfi.py diff --git a/sfa/client/sfi.py b/sfa/client/sfi.py old mode 100644 new mode 100755 index d1878b9a..132a84c0 --- a/sfa/client/sfi.py +++ b/sfa/client/sfi.py @@ -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) diff --git a/sfa/managers/aggregate_manager.py b/sfa/managers/aggregate_manager.py index e804ef80..2fbdf3d3 100644 --- a/sfa/managers/aggregate_manager.py +++ b/sfa/managers/aggregate_manager.py @@ -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) diff --git a/sfa/methods/ListResources.py b/sfa/methods/ListResources.py index c13baa73..328ddb2c 100644 --- a/sfa/methods/ListResources.py +++ b/sfa/methods/ListResources.py @@ -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', '') diff --git a/sfa/rspecs/version_manager.py b/sfa/rspecs/version_manager.py index 97f50f83..d59986f0 100644 --- a/sfa/rspecs/version_manager.py +++ b/sfa/rspecs/version_manager.py @@ -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): diff --git a/sfa/util/faults.py b/sfa/util/faults.py index 267932e3..ef277ffc 100644 --- a/sfa/util/faults.py +++ b/sfa/util/faults.py @@ -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 -- 2.43.0