Skip to content

Commit 078603d

Browse files
authored
Merge pull request #6831 from DIRACGridBot/cherry-pick-2-759da9bba-rel-v8r0
[sweep:v8r0] Update AREX delegation renewal
2 parents 79fe484 + 95f0cea commit 078603d

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

src/DIRAC/Resources/Computing/AREXComputingElement.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ def _getDelegationID(self, arcJobID):
229229
:param str jobID: ARC job ID
230230
:return: delegation ID
231231
"""
232+
params = {"action": "delegations"}
232233
query = self._urlJoin("jobs")
233234

234235
# Submit the POST request to get the delegation
@@ -237,6 +238,7 @@ def _getDelegationID(self, arcJobID):
237238
query,
238239
data=json.dumps(jobsJson),
239240
headers=self.headers,
241+
params=params,
240242
timeout=self.arcRESTTimeout,
241243
)
242244

@@ -247,8 +249,11 @@ def _getDelegationID(self, arcJobID):
247249
if "delegation_id" not in responseDelegation["job"]:
248250
return S_ERROR(f"Cannot find the Delegation ID for Job {arcJobID}")
249251

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])
252257

253258
#############################################################################
254259

@@ -531,7 +536,10 @@ def _renewJobs(self, arcJobList):
531536
if not res["OK"]:
532537
continue
533538

534-
timeLeft = proxy.getRemainingSecs()
539+
timeLeftRes = proxy.getRemainingSecs()
540+
if not timeLeftRes["OK"]:
541+
continue
542+
timeLeft = timeLeftRes["Value"]
535543
if timeLeft < self.proxyTimeLeftBeforeRenewal:
536544
self.log.debug(
537545
"Renewing proxy for job",

0 commit comments

Comments
 (0)