X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fmanagers%2Fslice_manager.py;h=98dee64983a3a3802904e37dd5358297d2d986a6;hb=8f367b9457f47ba1e3b8a56eea8ed5c9b1e52eed;hp=445dbebd488184a5aff6b5395d0c575c74f372c3;hpb=749f786e7f33f0fc7315bb1e83578366e0aedf8f;p=sfa.git diff --git a/sfa/managers/slice_manager.py b/sfa/managers/slice_manager.py index 445dbebd..98dee649 100644 --- a/sfa/managers/slice_manager.py +++ b/sfa/managers/slice_manager.py @@ -143,7 +143,7 @@ class SliceManager: # get the callers hrn valid_cred = api.auth.checkCredentials(creds, 'listnodes', hrn)[0] - caller_hrn = Credential(string=valid_cred).get_gid_caller().get_hrn() + caller_hrn = Credential(cred=valid_cred).get_gid_caller().get_hrn() # attempt to use delegated credential first cred = api.getDelegatedCredential(creds) @@ -232,7 +232,7 @@ class SliceManager: # get the callers hrn hrn, type = urn_to_hrn(xrn) valid_cred = api.auth.checkCredentials(creds, 'createsliver', hrn)[0] - caller_hrn = Credential(string=valid_cred).get_gid_caller().get_hrn() + caller_hrn = Credential(cred=valid_cred).get_gid_caller().get_hrn() threads = ThreadManager() for aggregate in api.aggregates: # prevent infinite loop. Dont send request back to caller @@ -277,7 +277,7 @@ class SliceManager: (hrn, urn_type) = urn_to_hrn(xrn) # get the callers hrn valid_cred = api.auth.checkCredentials(creds, 'renewsliver', hrn)[0] - caller_hrn = Credential(string=valid_cred).get_gid_caller().get_hrn() + caller_hrn = Credential(cred=valid_cred).get_gid_caller().get_hrn() # attempt to use delegated credential first cred = api.getDelegatedCredential(creds) @@ -317,7 +317,7 @@ class SliceManager: (hrn, type) = urn_to_hrn(xrn) # get the callers hrn valid_cred = api.auth.checkCredentials(creds, 'deletesliver', hrn)[0] - caller_hrn = Credential(string=valid_cred).get_gid_caller().get_hrn() + caller_hrn = Credential(cred=valid_cred).get_gid_caller().get_hrn() # attempt to use delegated credential first cred = api.getDelegatedCredential(creds) @@ -337,9 +337,9 @@ class SliceManager: # first draft at a merging SliverStatus - def SliverStatus(self, api, slice_xrn, creds, options): - def _SliverStatus(server, xrn, creds, options): - return server.SliverStatus(xrn, creds, options) + def Status(self, api, slice_xrn, creds, options): + def _Status(server, xrn, creds, options): + return server.Status(xrn, creds, options) call_id = options.get('call_id') if Callids().already_handled(call_id): return {} @@ -351,7 +351,7 @@ class SliceManager: for aggregate in api.aggregates: interface = api.aggregates[aggregate] server = api.server_proxy(interface, cred) - threads.run (_SliverStatus, server, slice_xrn, [cred], options) + threads.run (_Status, server, slice_xrn, [cred], options) results = [ReturnValue.get_value(result) for result in threads.get_results()] # get rid of any void result - e.g. when call_id was hit, where by convention we return {} @@ -370,6 +370,9 @@ class SliceManager: if result.get('pl_login'): overall['pl_login'] = result['pl_login'] break + elif isinstance(result.get('value'), dict) and result['value'].get('pl_login'): + overall['pl_login'] = result['value']['pl_login'] + break # append all geni_resources overall['geni_resources'] = \ reduce (lambda x,y: x+y, [ result['geni_resources'] for result in results] , []) @@ -396,7 +399,7 @@ class SliceManager: # get the callers hrn valid_cred = api.auth.checkCredentials(creds, 'listslices', None)[0] - caller_hrn = Credential(string=valid_cred).get_gid_caller().get_hrn() + caller_hrn = Credential(cred=valid_cred).get_gid_caller().get_hrn() # attempt to use delegated credential first cred= api.getDelegatedCredential(creds) @@ -439,7 +442,7 @@ class SliceManager: # get the callers hrn valid_cred = api.auth.checkCredentials(creds, 'getticket', slice_hrn)[0] - caller_hrn = Credential(string=valid_cred).get_gid_caller().get_hrn() + caller_hrn = Credential(cred=valid_cred).get_gid_caller().get_hrn() # attempt to use delegated credential first cred = api.getDelegatedCredential(creds) @@ -498,7 +501,7 @@ class SliceManager: # get the callers hrn valid_cred = api.auth.checkCredentials(creds, 'startslice', hrn)[0] - caller_hrn = Credential(string=valid_cred).get_gid_caller().get_hrn() + caller_hrn = Credential(cred=valid_cred).get_gid_caller().get_hrn() # attempt to use delegated credential first cred = api.getDelegatedCredential(creds) @@ -516,12 +519,11 @@ class SliceManager: threads.get_results() return 1 - def stop_slice(self, api, xrn, creds): - hrn, type = urn_to_hrn(xrn) - + def Shutdown(self, api, xrn, creds, options={}): + xrn = Xrn(xrn) # get the callers hrn - valid_cred = api.auth.checkCredentials(creds, 'stopslice', hrn)[0] - caller_hrn = Credential(string=valid_cred).get_gid_caller().get_hrn() + valid_cred = api.auth.checkCredentials(creds, 'stopslice', xrn.hrn)[0] + caller_hrn = Credential(cred=valid_cred).get_gid_caller().get_hrn() # attempt to use delegated credential first cred = api.getDelegatedCredential(creds) @@ -535,25 +537,7 @@ class SliceManager: continue interface = api.aggregates[aggregate] server = api.server_proxy(interface, cred) - threads.run(server.Stop, xrn, cred) + threads.run(server.Shutdown, xrn.urn, cred) threads.get_results() return 1 - def reset_slice(self, api, xrn): - """ - Not implemented - """ - return 1 - - def shutdown(self, api, xrn, creds): - """ - Not implemented - """ - return 1 - - def status(self, api, xrn, creds): - """ - Not implemented - """ - return 1 -