@@ -229,6 +229,7 @@ def _getDelegationID(self, arcJobID):
229
229
:param str jobID: ARC job ID
230
230
:return: delegation ID
231
231
"""
232
+ params = {"action" : "delegations" }
232
233
query = self ._urlJoin ("jobs" )
233
234
234
235
# Submit the POST request to get the delegation
@@ -237,6 +238,7 @@ def _getDelegationID(self, arcJobID):
237
238
query ,
238
239
data = json .dumps (jobsJson ),
239
240
headers = self .headers ,
241
+ params = params ,
240
242
timeout = self .arcRESTTimeout ,
241
243
)
242
244
@@ -247,8 +249,11 @@ def _getDelegationID(self, arcJobID):
247
249
if "delegation_id" not in responseDelegation ["job" ]:
248
250
return S_ERROR (f"Cannot find the Delegation ID for Job { arcJobID } " )
249
251
250
- delegationID = responseDelegation ["job" ]["delegation_id" ][0 ]
251
- return S_OK (delegationID )
252
+ delegationIDs = responseDelegation ["job" ]["delegation_id" ]
253
+ # Documentation says "Array", but a single string is returned if there is only one
254
+ if not isinstance (delegationIDs , list ):
255
+ delegationIDs = [delegationIDs ]
256
+ return S_OK (delegationIDs [0 ])
252
257
253
258
#############################################################################
254
259
@@ -531,7 +536,10 @@ def _renewJobs(self, arcJobList):
531
536
if not res ["OK" ]:
532
537
continue
533
538
534
- timeLeft = proxy .getRemainingSecs ()
539
+ timeLeftRes = proxy .getRemainingSecs ()
540
+ if not timeLeftRes ["OK" ]:
541
+ continue
542
+ timeLeft = timeLeftRes ["Value" ]
535
543
if timeLeft < self .proxyTimeLeftBeforeRenewal :
536
544
self .log .debug (
537
545
"Renewing proxy for job" ,
0 commit comments