Skip to content

Commit f3380df

Browse files
committed
fix: allow WAITING -> KILLED
1 parent 6d71e45 commit f3380df

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

src/DIRAC/WorkloadManagementSystem/Client/JobStatus.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def __init__(self, state):
8888
RUNNING: State(8, [STALLED, DONE, FAILED, RESCHEDULED, COMPLETING, KILLED, RECEIVED], defState=RUNNING),
8989
RESCHEDULED: State(7, [WAITING, RECEIVED, DELETED, FAILED], defState=RESCHEDULED),
9090
MATCHED: State(6, [RUNNING, FAILED, RESCHEDULED, KILLED], defState=MATCHED),
91-
WAITING: State(5, [MATCHED, RESCHEDULED, DELETED], defState=WAITING),
91+
WAITING: State(5, [MATCHED, RESCHEDULED, DELETED, KILLED], defState=WAITING),
9292
STAGING: State(4, [CHECKING, WAITING, FAILED, KILLED], defState=STAGING),
9393
SCOUTING: State(3, [CHECKING, FAILED, STALLED, KILLED], defState=SCOUTING),
9494
CHECKING: State(2, [SCOUTING, STAGING, WAITING, RESCHEDULED, FAILED, DELETED], defState=CHECKING),

tests/Integration/WorkloadManagementSystem/Test_JobDB.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,14 @@
88

99
from datetime import datetime, timedelta
1010
from unittest.mock import MagicMock, patch
11-
import pytest
1211

1312
import DIRAC
13+
import pytest
1414

1515
DIRAC.initialize() # Initialize configuration
1616

17-
from DIRAC import gLogger, S_OK
18-
from DIRAC.WorkloadManagementSystem.Client import JobStatus
19-
from DIRAC.WorkloadManagementSystem.Client import JobMinorStatus
17+
from DIRAC import S_OK, gLogger
18+
from DIRAC.WorkloadManagementSystem.Client import JobMinorStatus, JobStatus
2019

2120
# sut
2221
from DIRAC.WorkloadManagementSystem.DB.JobDB import JobDB
@@ -317,14 +316,20 @@ def test_setJobsMajorStatus(jobDB):
317316
assert res["OK"] is True, res["Message"]
318317
res = jobDB.getJobsAttributes([jobID_1, jobID_2], ["Status"])
319318
assert res["OK"] is True, res["Message"]
320-
assert res["Value"] == {jobID_1: {"Status": JobStatus.WAITING}, jobID_2: {"Status": JobStatus.CHECKING}}
319+
assert res["Value"] == {jobID_1: {"Status": JobStatus.KILLED}, jobID_2: {"Status": JobStatus.CHECKING}}
321320

322-
res = jobDB.setJobsMajorStatus([jobID_1], JobStatus.KILLED, force=True)
321+
res = jobDB.setJobsMajorStatus([jobID_1], JobStatus.RUNNING)
323322
assert res["OK"] is True, res["Message"]
324323
res = jobDB.getJobsAttributes([jobID_1, jobID_2], ["Status"])
325324
assert res["OK"] is True, res["Message"]
326325
assert res["Value"] == {jobID_1: {"Status": JobStatus.KILLED}, jobID_2: {"Status": JobStatus.CHECKING}}
327326

327+
res = jobDB.setJobsMajorStatus([jobID_1], JobStatus.RUNNING, force=True)
328+
assert res["OK"] is True, res["Message"]
329+
res = jobDB.getJobsAttributes([jobID_1, jobID_2], ["Status"])
330+
assert res["OK"] is True, res["Message"]
331+
assert res["Value"] == {jobID_1: {"Status": JobStatus.RUNNING}, jobID_2: {"Status": JobStatus.CHECKING}}
332+
328333

329334
def test_attributes(jobDB):
330335
res = jobDB.insertNewJobIntoDB(jdl, "owner_1", "/DN/OF/owner", "ownerGroup", "someSetup")

0 commit comments

Comments
 (0)