From 7cbe5c3bd5bbeed308cbdc31d07f8972b509190d Mon Sep 17 00:00:00 2001 From: aldbr Date: Thu, 21 Dec 2023 09:52:03 +0100 Subject: [PATCH] fix: JobAgent check JobMonitoring --- .../WorkloadManagementSystem/Agent/JobAgent.py | 2 +- .../Agent/test/Test_Agent_JobAgent.py | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/DIRAC/WorkloadManagementSystem/Agent/JobAgent.py b/src/DIRAC/WorkloadManagementSystem/Agent/JobAgent.py index 0022c36fc25..d88fe0ef78a 100755 --- a/src/DIRAC/WorkloadManagementSystem/Agent/JobAgent.py +++ b/src/DIRAC/WorkloadManagementSystem/Agent/JobAgent.py @@ -722,7 +722,7 @@ def _checkSubmittedJobs(self): res = JobMonitoringClient().getJobsStatus(jobID) if not res["OK"]: return res - if res["Value"][jobID]["Status"] == JobStatus.RUNNING: + if res["Value"][int(jobID)]["Status"] == JobStatus.RUNNING: self.jobReport.setJobStatus(status=JobStatus.FAILED, minorStatus="Payload failed") # Do not keep running and do not overwrite the Payload error diff --git a/src/DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_JobAgent.py b/src/DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_JobAgent.py index 00eac21a7ec..11172103d04 100644 --- a/src/DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_JobAgent.py +++ b/src/DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_JobAgent.py @@ -11,6 +11,7 @@ from DIRAC.Resources.Computing.ComputingElementFactory import ComputingElementFactory from DIRAC.Resources.Computing.test.Test_PoolComputingElement import badJobScript, jobScript from DIRAC.WorkloadManagementSystem.Agent.JobAgent import JobAgent +from DIRAC.WorkloadManagementSystem.Client import JobStatus from DIRAC.WorkloadManagementSystem.Client.JobReport import JobReport gLogger.setLevel("DEBUG") @@ -497,13 +498,20 @@ def test_submitAndCheckJob(mocker, localCE, job, expectedResult1, expectedResult execFile.write(job) os.chmod(jobName, 0o755) + jobID = "123" + mocker.patch("DIRAC.WorkloadManagementSystem.Agent.JobAgent.AgentModule.__init__") mocker.patch("DIRAC.WorkloadManagementSystem.Agent.JobAgent.JobAgent.am_stopExecution") - mocker.patch("DIRAC.WorkloadManagementSystem.Agent.JobAgent.JobMonitoringClient", return_value=MagicMock()) + mocker.patch( + "DIRAC.WorkloadManagementSystem.Agent.JobAgent.JobMonitoringClient.getJobsStatus", + return_value=S_OK({int(jobID): {"Status": JobStatus.RUNNING}}), + ) mocker.patch("DIRAC.WorkloadManagementSystem.Agent.JobAgent.createJobWrapper", return_value=S_OK([jobName])) mocker.patch("DIRAC.Core.Security.X509Chain.X509Chain.dumpAllToString", return_value=S_OK()) - - jobID = 123 + mocker.patch( + "DIRAC.Resources.Computing.SingularityComputingElement.SingularityComputingElement._SingularityComputingElement__hasSingularity", + return_value=False, + ) jobAgent = JobAgent("JobAgent", "Test") jobAgent.log = gLogger.getSubLogger("JobAgent")