@@ -302,6 +302,15 @@ def _submitPilotsPerQueue(self, queueName: str):
302302 self .failedQueues [queueName ] += 1
303303 return S_OK (0 )
304304
305+ # Get CE instance
306+ ce = self .queueDict [queueName ]["CE" ]
307+
308+ # Set credentials: needed for authenticated CE operations (e.g. ce.available() on AREX)
309+ result = self ._setCredentials (ce , 3600 )
310+ if not result ["OK" ]:
311+ self .log .error ("Failed to set credentials:" , result ["Message" ])
312+ return result
313+
305314 # Get the number of available slots on the target site/queue
306315 totalSlots , waitingPilots = self ._getQueueSlots (queueName )
307316 if totalSlots <= 0 :
@@ -322,7 +331,6 @@ def _submitPilotsPerQueue(self, queueName: str):
322331 )
323332
324333 # Now really submitting
325- ce = self .queueDict [queueName ]["CE" ]
326334 result = self ._submitPilotsToQueue (pilotsToSubmit , ce , queueName )
327335 if not result ["OK" ]:
328336 self .log .info ("Failed pilot submission" , f"Queue: { queueName } " )
@@ -439,12 +447,6 @@ def _submitPilotsToQueue(self, pilotsToSubmit: int, ce: ComputingElement, queue:
439447 jobProxy = result ["Value" ]
440448 executable = self ._getExecutable (queue , proxy = jobProxy , jobExecDir = jobExecDir , envVariables = envVariables )
441449
442- # Add the credentials to the CE
443- result = self ._setCredentials (ce , 3600 )
444- if not result ["OK" ]:
445- self .log .error ("Failed to set credentials:" , result ["Message" ])
446- return result
447-
448450 # Submit the job
449451 submitResult = ce .submitJob (executable , "" , pilotsToSubmit )
450452 # In case the CE does not need the executable after the submission, we delete it
0 commit comments