diff --git a/src/DIRAC/WorkloadManagementSystem/Agent/SiteDirector.py b/src/DIRAC/WorkloadManagementSystem/Agent/SiteDirector.py index 28dff17ed46..8855d17017b 100644 --- a/src/DIRAC/WorkloadManagementSystem/Agent/SiteDirector.py +++ b/src/DIRAC/WorkloadManagementSystem/Agent/SiteDirector.py @@ -315,8 +315,7 @@ def _submitPilotsPerQueue(self, queueName: str): ce = self.queueDict[queueName]["CE"] # Set credentials - cpuTime = queueCPUTime + 86400 - result = self._setCredentials(ce, cpuTime) + result = self._setCredentials(ce, queueCPUTime) if not result["OK"]: self.log.error("Failed to set credentials:", result["Message"]) return result @@ -924,11 +923,19 @@ def _setCredentials(self, ce: ComputingElement, proxyMinimumRequiredValidity: in # Generate a new proxy if needed if getNewProxy: + proxyMinimumRequiredValidity = proxyMinimumRequiredValidity + 86400 self.log.verbose("Getting pilot proxy", f"for {self.pilotDN}/{self.vo} {proxyMinimumRequiredValidity} long") pilotGroup = Operations(vo=self.vo).getValue("Pilot/GenericPilotGroup") result = gProxyManager.getPilotProxyFromDIRACGroup(self.pilotDN, pilotGroup, proxyMinimumRequiredValidity) if not result["OK"]: return result + result_validity = result["Value"].getRemainingSecs() + if not result_validity["OK"]: + return result_validity + if result_validity["Value"] < proxyMinimumRequiredValidity: + self.log.warn( + f"The validity of the generated proxy ({result_validity['Value']} seconds) is less than the requested {proxyMinimumRequiredValidity} seconds" + ) ce.setProxy(result["Value"]) # Get valid token if needed