From: Thierry Parmentelat Date: Wed, 23 Nov 2011 17:54:00 +0000 (+0100) Subject: Merge branch 'master' of ssh://git.onelab.eu/git/sfa X-Git-Tag: sfa-2.0-0~5 X-Git-Url: http://git.onelab.eu/?p=sfa.git;a=commitdiff_plain;h=a665d295716a0f85228d4990ac05397d1b4ffffe;hp=c0627fead40cd7ae78f22c8878dd8a017d07879c Merge branch 'master' of ssh://git.onelab.eu/git/sfa --- diff --git a/config/default_config.xml b/config/default_config.xml index 5993d1f5..c515a57e 100644 --- a/config/default_config.xml +++ b/config/default_config.xml @@ -18,12 +18,27 @@ Thierry Parmentelat Basic system variables. + + Generic Flavour + pl + This string refers to a class located in sfa.generic that describes + which specific implementation needs to be used for api, manager and driver objects. + PlanetLab users do not need to change this setting. + + + Human readable name plc The human readable name for this interface. + + Aggregate Manager API Version + 1 + The Aggregate API version + + Credential Schema /etc/sfa/credential.xsd @@ -53,15 +68,6 @@ Thierry Parmentelat - - Generic Flavour - pl - This string refers to a class located in sfa.generic that describes - which specific implementation needs to be used for api, manager and driver objects. - PlanetLab users do not need to change this setting. - - - diff --git a/sfa/client/sfi.py b/sfa/client/sfi.py index b937febb..9ed3c848 100755 --- a/sfa/client/sfi.py +++ b/sfa/client/sfi.py @@ -942,14 +942,18 @@ class Sfi: user_cred = self.get_user_cred().save_to_string(save_parents=True) server = self.slicemgr server = self.server_proxy_from_opts(opts) + + options = {'call_id': unique_call_id()} + #panos add info options + if opts.info: + options['info'] = opts.info if args: cred = self.get_slice_cred(args[0]).save_to_string(save_parents=True) hrn = args[0] - options = {'geni_slice_urn': hrn_to_urn(hrn, 'slice')} + options['geni_slice_urn'] = hrn_to_urn(hrn, 'slice') else: cred = user_cred - hrn = None creds = [cred] if opts.delegate: @@ -965,14 +969,8 @@ class Sfi: # 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() - #panos add info options - if opts.info: - options['info'] = opts.info - call_args = [creds] - if self.server_supports_options_arg(server): - options = {'call_id': unique_call_id()} - call_args.append(options) + call_args = [creds, options] result = server.ListResources(*call_args) if opts.file is None: display_rspec(result, opts.format) diff --git a/sfa/managers/aggregate_manager.py b/sfa/managers/aggregate_manager.py index a31efc6a..56d60086 100644 --- a/sfa/managers/aggregate_manager.py +++ b/sfa/managers/aggregate_manager.py @@ -38,14 +38,14 @@ class AggregateManager: ad_rspec_versions.append(rspec_version.to_dict()) if rspec_version.content_type in ['*', 'request']: request_rspec_versions.append(rspec_version.to_dict()) - default_rspec_version = version_manager.get_version("sfa 1").to_dict() xrn=Xrn(api.hrn) version_more = {'interface':'aggregate', + 'sfa': 1, + 'geni_api': api.config.SFA_AGGREGATE_API_VERSION, 'testbed':'myplc', 'hrn':xrn.get_hrn(), - 'request_rspec_versions': request_rspec_versions, - 'ad_rspec_versions': ad_rspec_versions, - 'default_ad_rspec': default_rspec_version + 'geni_request_rspec_versions': request_rspec_versions, + 'geni_ad_rspec_versions': ad_rspec_versions, } return version_core(version_more) @@ -254,7 +254,7 @@ class AggregateManager: return 1 def DeleteSliver(self, api, xrn, creds, options={}): - call_id = option.get('call_id') + call_id = options.get('call_id') if Callids().already_handled(call_id): return "" (hrn, _) = urn_to_hrn(xrn) slicename = hrn_to_pl_slicename(hrn) @@ -275,7 +275,7 @@ class AggregateManager: return 1 def ListSlices(self, api, creds, options={}): - call_id = option.get('call_id') + call_id = options.get('call_id') if Callids().already_handled(call_id): return [] # look in cache first if self.caching and api.cache: @@ -295,10 +295,11 @@ class AggregateManager: return slice_urns def ListResources(self, api, creds, options={}): - call_id = option.get('call_id') + call_id = options.get('call_id') if Callids().already_handled(call_id): return "" # get slice's hrn from options xrn = options.get('geni_slice_urn', None) + cached = options.get('cached', True) (hrn, _) = urn_to_hrn(xrn) version_manager = VersionManager() @@ -311,7 +312,7 @@ class AggregateManager: version_string = version_string + "_"+options.get('info', 'default') # look in cache first - if self.caching and api.cache and not xrn: + if self.caching and api.cache and not xrn and cached: rspec = api.cache.get(version_string) if rspec: api.logger.info("aggregate.ListResources: returning cached value for hrn %s"%hrn) @@ -319,8 +320,8 @@ class AggregateManager: #panos: passing user-defined options #print "manager options = ",options - aggregate = Aggregate(api, options) - rspec = aggregate.get_rspec(slice_xrn=xrn, version=rspec_version) + aggregate = Aggregate(api) + rspec = aggregate.get_rspec(slice_xrn=xrn, version=rspec_version, options=options) # cache the result if self.caching and api.cache and not xrn: diff --git a/sfa/managers/aggregate_manager_eucalyptus.py b/sfa/managers/aggregate_manager_eucalyptus.py index ff2428c5..55e14ce6 100644 --- a/sfa/managers/aggregate_manager_eucalyptus.py +++ b/sfa/managers/aggregate_manager_eucalyptus.py @@ -689,13 +689,13 @@ class AggregateManagerEucalyptus: ad_rspec_versions.append(rspec_version.to_dict()) if rspec_version.content_type in ['*', 'request']: request_rspec_versions.append(rspec_version.to_dict()) - default_rspec_version = version_manager.get_version("sfa 1").to_dict() xrn=Xrn(api.hrn) version_more = {'interface':'aggregate', + 'sfa': 1, + 'geni_api': api.config.SFA_AGGREGATE_API_VERSION, 'testbed':'myplc', 'hrn':xrn.get_hrn(), - 'request_rspec_versions': request_rspec_versions, - 'ad_rspec_versions': ad_rspec_versions, - 'default_ad_rspec': default_rspec_version + 'geni_request_rspec_versions': request_rspec_versions, + 'geni_ad_rspec_versions': ad_rspec_versions, } return version_core(version_more) diff --git a/sfa/managers/slice_manager.py b/sfa/managers/slice_manager.py index 6f012e7c..7c58a688 100644 --- a/sfa/managers/slice_manager.py +++ b/sfa/managers/slice_manager.py @@ -65,15 +65,15 @@ class SliceManager: ad_rspec_versions.append(rspec_version.to_dict()) if rspec_version.content_type in ['*', 'request']: request_rspec_versions.append(rspec_version.to_dict()) - default_rspec_version = version_manager.get_version("sfa 1").to_dict() xrn=Xrn(api.hrn, 'authority+sa') version_more = {'interface':'slicemgr', + 'sfa': 1, + 'geni_api': api.config.SFA_AGGREGATE_API_VERSION, 'hrn' : xrn.get_hrn(), 'urn' : xrn.get_urn(), 'peers': peers, - 'request_rspec_versions': request_rspec_versions, - 'ad_rspec_versions': ad_rspec_versions, - 'default_ad_rspec': default_rspec_version + 'geni_request_rspec_versions': request_rspec_versions, + 'geni_ad_rspec_versions': ad_rspec_versions, } sm_version=version_core(version_more) # local aggregate if present needs to have localhost resolved @@ -168,7 +168,7 @@ class SliceManager: # get the rspec from the aggregate interface = api.aggregates[aggregate] server = api.server_proxy(interface, cred) - threads.run(_ListResources, aggregate, server, [cred], options, call_id) + threads.run(_ListResources, aggregate, server, [cred], options) results = threads.get_results() @@ -220,7 +220,7 @@ class SliceManager: logger.log_exc('Something wrong in _CreateSliver with URL %s'%server.url) return {"aggregate": aggregate, "elapsed": time.time()-tStart, "status": "exception", "exc_info": sys.exc_info()} - call_id = option.get('call_id') + call_id = options.get('call_id') if Callids().already_handled(call_id): return "" # Validate the RSpec against PlanetLab's schema --disabled for now # The schema used here needs to aggregate the PL and VINI schemas @@ -274,7 +274,7 @@ class SliceManager: args.append(options) return server.RenewSliver(*args) - call_id = option.get('call_id') + call_id = options.get('call_id') if Callids().already_handled(call_id): return True (hrn, type) = urn_to_hrn(xrn) @@ -306,7 +306,7 @@ class SliceManager: args.append(options) return server.DeleteSliver(*args) - call_id = option.get('call_id') + call_id = options.get('call_id') if Callids().already_handled(call_id): return "" (hrn, type) = urn_to_hrn(xrn) # get the callers hrn @@ -407,7 +407,7 @@ class SliceManager: continue interface = api.aggregates[aggregate] server = api.server_proxy(interface, cred) - threads.run(_ListSlices, server, [cred], call_id, options) + threads.run(_ListSlices, server, [cred], options) # combime results results = threads.get_results() diff --git a/sfa/methods/ListResources.py b/sfa/methods/ListResources.py index 38634de9..6b1e7850 100644 --- a/sfa/methods/ListResources.py +++ b/sfa/methods/ListResources.py @@ -35,7 +35,7 @@ class ListResources(Method): origin_hrn = options.get('origin_hrn', None) if not origin_hrn: origin_hrn = Credential(string=valid_creds[0]).get_gid_caller().get_hrn() - rspec = self.api.manager.ListResources(self.api, creds, options, options) + rspec = self.api.manager.ListResources(self.api, creds, options) # filter rspec through sfatables if self.api.interface in ['aggregate']: diff --git a/sfa/plc/aggregate.py b/sfa/plc/aggregate.py index afd72352..0eff6cca 100644 --- a/sfa/plc/aggregate.py +++ b/sfa/plc/aggregate.py @@ -23,10 +23,9 @@ class Aggregate: #panos new user options variable user_options = {} - def __init__(self, api, user_options={}): + def __init__(self, api): self.api = api - self.user_options = user_options - + def get_sites(self, filter={}): sites = {} for site in self.api.driver.GetSites(filter): @@ -136,12 +135,16 @@ class Aggregate: return (slice, slivers) - def get_nodes_and_links(self, slice=None,slivers=[]): + def get_nodes_and_links(self, slice=None,slivers=[], options={}): filter = {} tags_filter = {} if slice and 'node_ids' in slice and slice['node_ids']: filter['node_id'] = slice['node_ids'] tags_filter=filter.copy() + + geni_available = options.get('geni_available') + if geni_available: + filter['boot_state'] = 'boot' filter.update({'peer_id': None}) nodes = self.api.driver.GetNodes(filter) @@ -220,7 +223,7 @@ class Aggregate: return (rspec_nodes, links) - def get_rspec(self, slice_xrn=None, version = None): + def get_rspec(self, slice_xrn=None, version = None, options={}): version_manager = VersionManager() version = version_manager.get_version(version) @@ -230,7 +233,7 @@ class Aggregate: rspec_version = version_manager._get_version(version.type, version.version, 'manifest') slice, slivers = self.get_slice_and_slivers(slice_xrn) - rspec = RSpec(version=rspec_version, user_options=self.user_options) + rspec = RSpec(version=rspec_version, user_options=options) if slice and 'expires' in slice: rspec.xml.set('expires', epochparse(slice['expires'])) diff --git a/sfa/server/sfaapi.py b/sfa/server/sfaapi.py index 70850379..845ccffe 100644 --- a/sfa/server/sfaapi.py +++ b/sfa/server/sfaapi.py @@ -8,8 +8,8 @@ from sfa.trust.auth import Auth from sfa.trust.certificate import Keypair, Certificate from sfa.trust.credential import Credential from sfa.trust.rights import determine_rights - from sfa.server.xmlrpcapi import XmlrpcApi +from sfa.util.genicode import GENICODE # thgen xxx fixme this is wrong all right, but temporary, will use generic from sfa.util.table import SfaTable @@ -205,3 +205,48 @@ class SfaApi (XmlrpcApi): # cache version for 24 hours self.cache.add(cache_key, server_version, ttl= 60*60*24) return server_version + + + def get_geni_code(self, result): + code = { + 'geni_code': GENICODE.SUCCESS, + 'am_type': 'sfa', + 'am_code': None, + } + if isinstnace(result, SfaFault): + code['geni_code'] = result.faultCode + code['am_code'] = result.faultCode + + return code + + def get_geni_value(self, result): + value = result + if isinstance(result, SfaFault): + value = "" + return value + + def get_geni_output(self, result): + output = "" + if isinstance(result, SFaFault): + output = result.faultString + return output + + def prepare_response_v2_am(self, result): + response = { + 'code': self.get_geni_code(result), + 'value': self.get_geni_value(result), + 'output': self.get_geni_output(result), + } + return response + + def prepare_response(self, result, method=""): + """ + Converts the specified result into a standard GENI compliant + response + """ + if self.interface.lower() == 'aggregate': + if hasattr(self.config, 'SFA_AGGREGATE_API_VERSION') and \ + self.config.SFA_AGGREGATE_API_VERSION == "2": + result = self.prepare_response_v2_am(result) + return XmlrpcApi.prepare_response(self, result, method) + diff --git a/sfa/util/faults.py b/sfa/util/faults.py index 91e5300b..4a1a5e46 100644 --- a/sfa/util/faults.py +++ b/sfa/util/faults.py @@ -3,6 +3,7 @@ # import xmlrpclib +from sfa.util.genicode import GENICODE class SfaFault(xmlrpclib.Fault): def __init__(self, faultCode, faultString, extra = None): @@ -15,7 +16,7 @@ class SfaInvalidAPIMethod(SfaFault): faultString = "Invalid method " + method if interface: faultString += " for interface " + interface - SfaFault.__init__(self, 100, faultString, extra) + SfaFault.__init__(self, GENICODE.UNSUPPORTED, faultString, extra) class SfaInvalidArgumentCount(SfaFault): def __init__(self, got, min, max = min, extra = None): @@ -25,7 +26,7 @@ class SfaInvalidArgumentCount(SfaFault): expected = "%d" % min faultString = "Expected %s arguments, got %d" % \ (expected, got) - SfaFault.__init__(self, 101, faultString, extra) + SfaFault.__init__(self, GENICODE.BADARGS, faultString, extra) class SfaInvalidArgument(SfaFault): def __init__(self, extra = None, name = None): @@ -33,40 +34,40 @@ class SfaInvalidArgument(SfaFault): faultString = "Invalid %s value" % name else: faultString = "Invalid argument" - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.BADARGS, faultString, extra) class SfaAuthenticationFailure(SfaFault): def __init__(self, extra = None): faultString = "Failed to authenticate call" - SfaFault.__init__(self, 103, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) class SfaDBError(SfaFault): def __init__(self, extra = None): faultString = "Database error" - SfaFault.__init__(self, 106, faultString, extra) + SfaFault.__init__(self, GENICODE.DBERROR, faultString, extra) class SfaPermissionDenied(SfaFault): def __init__(self, extra = None): faultString = "Permission denied" - SfaFault.__init__(self, 108, faultString, extra) + SfaFault.__init__(self, GENICODE.FORBIDDEN, faultString, extra) class SfaNotImplemented(SfaFault): def __init__(self, interface=None, extra = None): faultString = "Not implemented" if interface: faultString += " at interface " + interface - SfaFault.__init__(self, 109, faultString, extra) + SfaFault.__init__(self, GENICODE.UNSUPPORTED, faultString, extra) class SfaAPIError(SfaFault): def __init__(self, extra = None): faultString = "Internal API error" - SfaFault.__init__(self, 111, faultString, extra) + SfaFault.__init__(self, GENICODE.SERVERERROR, faultString, extra) class MalformedHrnException(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Malformed HRN: %(value)s" % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, extra) def __str__(self): return repr(self.value) @@ -74,7 +75,7 @@ class TreeException(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Tree Exception: %(value)s, " % locals() - SfaFault.__init__(self, 111, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -82,7 +83,7 @@ class NonExistingRecord(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Non exsiting record %(value)s, " % locals() - SfaFault.__init__(self, 111, faultString, extra) + SfaFault.__init__(self, GENICODE.SEARCHFAILED, faultString, extra) def __str__(self): return repr(self.value) @@ -90,32 +91,16 @@ class ExistingRecord(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Existing record: %(value)s, " % locals() - SfaFault.__init__(self, 111, faultString, extra) + SfaFault.__init__(self, GENICODE.REFUSED, faultString, extra) def __str__(self): return repr(self.value) -class NonexistingCredType(SfaFault): - def __init__(self, value, extra = None): - self.value = value - faultString = "Non existing record: %(value)s, " % locals() - SfaFault.__init__(self, 111, faultString, extra) - def __str__(self): - return repr(self.value) - -class NonexistingFile(SfaFault): - def __init__(self, value, extra = None): - self.value = value - faultString = "Non existing file: %(value)s, " % locals() - SfaFault.__init__(self, 111, faultString, extra) - def __str__(self): - return repr(self.value) - class InvalidRPCParams(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Invalid RPC Params: %(value)s, " % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.RPCERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -125,7 +110,7 @@ class ConnectionKeyGIDMismatch(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Connection Key GID mismatch: %(value)s" % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -133,7 +118,7 @@ class MissingCallerGID(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Missing Caller GID: %(value)s" % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -141,7 +126,7 @@ class RecordNotFound(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Record not found: %(value)s" % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -149,7 +134,7 @@ class UnknownSfaType(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Unknown SFA Type: %(value)s" % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -157,7 +142,7 @@ class MissingAuthority(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Missing authority: %(value)s" % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -165,7 +150,7 @@ class PlanetLabRecordDoesNotExist(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "PlanetLab record does not exist : %(value)s" % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -173,7 +158,7 @@ class PermissionError(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Permission error: %(value)s" % locals() - SfaFault.__init__(self, 108, faultString, extra) + SfaFault.__init__(self, GENICODE.FORBIDDEN, faultString, extra) def __str__(self): return repr(self.value) @@ -181,7 +166,7 @@ class InsufficientRights(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Insufficient rights: %(value)s" % locals() - SfaFault.__init__(self, 108, faultString, extra) + SfaFault.__init__(self, GENICODE.FORBIDDEN, faultString, extra) def __str__(self): return repr(self.value) @@ -189,7 +174,7 @@ class MissingDelegateBit(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Missing delegate bit: %(value)s" % locals() - SfaFault.__init__(self, 108, faultString, extra) + SfaFault.__init__(self, GENICODE.FORBIDDEN, faultString, extra) def __str__(self): return repr(self.value) @@ -197,7 +182,7 @@ class ChildRightsNotSubsetOfParent(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Child rights not subset of parent: %(value)s" % locals() - SfaFault.__init__(self, 103, faultString, extra) + SfaFault.__init__(self, GENICODE.FORBIDDEN, faultString, extra) def __str__(self): return repr(self.value) @@ -205,7 +190,7 @@ class CertMissingParent(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Cert missing parent: %(value)s" % locals() - SfaFault.__init__(self, 103, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -213,7 +198,7 @@ class CertNotSignedByParent(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Cert not signed by parent: %(value)s" % locals() - SfaFault.__init__(self, 103, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -221,7 +206,7 @@ class GidParentHrn(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Cert URN is not an extension of its parent: %(value)s" % locals() - SfaFault.__init__(self, 103, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -229,7 +214,7 @@ class GidInvalidParentHrn(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "GID invalid parent hrn: %(value)s" % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -237,20 +222,20 @@ class SliverDoesNotExist(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Sliver does not exist : %(value)s" % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) class BadRequestHash(xmlrpclib.Fault): def __init__(self, hash = None, extra = None): faultString = "bad request hash: " + str(hash) - xmlrpclib.Fault.__init__(self, 902, faultString) + xmlrpclib.Fault.__init__(self, GENICODE.ERROR, faultString) class MissingTrustedRoots(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Trusted root directory does not exist: %(value)s" % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.SERVERERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -258,7 +243,7 @@ class MissingSfaInfo(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Missing information: %(value)s" % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -266,7 +251,7 @@ class InvalidRSpec(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Invalid RSpec: %(value)s" % locals() - SfaFault.__init__(self, 108, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -274,7 +259,7 @@ class InvalidRSpecElement(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Invalid RSpec Element: %(value)s" % locals() - SfaFault.__init__(self, 108, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -282,22 +267,14 @@ class InvalidXML(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Invalid XML Document: %(value)s" % locals() - SfaFault.__init__(self, 108, faultString, extra) - def __str__(self): - return repr(self.value) - -class InvalidXMLElement(SfaFault): - def __init__(self, value, extra = None): - self.value = value - faultString = "Invalid XML Element: %(value)s" % locals() - SfaFault.__init__(self, 108, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) class AccountNotEnabled(SfaFault): def __init__(self, extra = None): faultString = "Account Disabled" - SfaFault.__init__(self, 108, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -305,7 +282,7 @@ class CredentialNotVerifiable(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Unable to verify credential: %(value)s, " %locals() - SfaFault.__init__(self, 115, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -313,5 +290,5 @@ class CertExpired(SfaFault): def __init__(self, value, extra=None): self.value = value faultString = "%s cert is expired" % value - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) diff --git a/sfa/util/genicode.py b/sfa/util/genicode.py index b6b3353f..855d440a 100644 --- a/sfa/util/genicode.py +++ b/sfa/util/genicode.py @@ -20,4 +20,3 @@ GENICODE = Enum( INPORGRESS=16, ALREADYEXISTS=17 ) - diff --git a/sfa/util/version.py.in b/sfa/util/version.py.in index 52913281..46b31d39 100644 --- a/sfa/util/version.py.in +++ b/sfa/util/version.py.in @@ -4,9 +4,7 @@ scm_url="@SCMURL@" import socket def version_core (more={}): - core = { 'geni_api':1, - 'sfa' : 1, - 'code_tag' : version_tag, + core = { 'code_tag' : version_tag, 'code_url' : scm_url, 'hostname' : socket.gethostname(), }