X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fmanagers%2Fslice_manager.py;h=02729b004f2213ea6dcf3f39f765e87068c97dee;hb=4ba188d2e00ad2ecb5d642c6c442fef500539752;hp=b261fe28ea0fc936deba40f21008affc4125ff42;hpb=bb074571303838f8c9fc6122db6c50ec429da262;p=sfa.git diff --git a/sfa/managers/slice_manager.py b/sfa/managers/slice_manager.py index b261fe28..02729b00 100644 --- a/sfa/managers/slice_manager.py +++ b/sfa/managers/slice_manager.py @@ -265,12 +265,14 @@ class SliceManager: try: result=server.RenewSliver(xrn, creds, expiration_time, options) if type(result)!=dict: - result = {"code": {"geni_code": 0}, value: result} - result["aggregate"] = aggregate + result = {'code': {'geni_code': 0}, 'value': result} + result['aggregate'] = aggregate return result except: logger.log_exc('Something wrong in _RenewSliver with URL %s'%server.url) - return {"aggregate": aggregate, "exc_info": traceback.format_exc(), "code": {"geni_code": -1}, "value": False, "output": ""} + return {'aggregate': aggregate, 'exc_info': traceback.format_exc(), + 'code': {'geni_code': -1}, + 'value': False, 'output': ""} (hrn, urn_type) = urn_to_hrn(xrn) # get the callers hrn @@ -294,14 +296,14 @@ class SliceManager: results = threads.get_results() geni_code = 0 - geni_output = ",".join([x.get("output","") for x in results]) - geni_value = reduce (lambda x,y: x and y, [result.get("value",False) for result in results], True) + geni_output = ",".join([x.get('output',"") for x in results]) + geni_value = reduce (lambda x,y: x and y, [result.get('value',False) for result in results], True) for agg_result in results: - agg_geni_code = agg_result["code"].get("geni_code",0) + agg_geni_code = agg_result['code'].get('geni_code',0) if agg_geni_code: geni_code = agg_geni_code - results = {"aggregates": results, "code": {"geni_code": geni_code}, "value": geni_value, "output": geni_output} + results = {'aggregates': results, 'code': {'geni_code': geni_code}, 'value': geni_value, 'output': geni_output} return results @@ -363,7 +365,14 @@ class SliceManager: # mmh, it is expected that all results carry the same urn overall['geni_urn'] = results[0]['geni_urn'] - overall['pl_login'] = results[0]['pl_login'] + overall['pl_login'] = None + for result in results: + 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] , [])