Skip to content

Commit 8110a73

Browse files
committed
feat (diracx): start JobStateUpdateClient
1 parent f105245 commit 8110a73

File tree

3 files changed

+136
-0
lines changed

3 files changed

+136
-0
lines changed

src/DIRAC/WorkloadManagementSystem/Client/JobStateUpdateClient.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
""" Class that contains client access to the JobStateUpdate handler. """
22

33
from DIRAC.Core.Base.Client import Client, createClient
4+
from DIRAC.WorkloadManagementSystem.FutureClient.JobStateUpdateClient import (
5+
JobStateUpdateClient as futureJobStateUpdateClient,
6+
)
47

58

69
@createClient("WorkloadManagement/JobStateUpdate")
710
class JobStateUpdateClient(Client):
811
"""JobStateUpdateClient sets url for the JobStateUpdateHandler."""
912

13+
diracxClient = futureJobStateUpdateClient
14+
1015
def __init__(self, url=None, **kwargs):
1116
"""
1217
Sets URL for JobStateUpdate handler
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
from DIRAC.Core.Security.DiracX import DiracXClient
2+
from DIRAC.Core.Utilities.ReturnValues import convertToReturnValue
3+
4+
5+
class JobStateUpdateClient:
6+
def sendHeartBeat(self, jobID: str | int, dynamicData: dict, staticData: dict):
7+
raise NotImplementedError("TODO")
8+
9+
def setJobApplicationStatus(self, jobID: str | int, appStatus: str, source: str = "Unknown"):
10+
raise NotImplementedError("TODO")
11+
12+
def setJobAttribute(self, jobID: str | int, attribute: str, value: str):
13+
with DiracXClient() as api:
14+
api.jobs.set_single_job_properties(jobID, "need to [patch the client to have a nice summer body ?")
15+
raise NotImplementedError("TODO")
16+
17+
def setJobFlag(self, jobID: str | int, flag: str):
18+
raise NotImplementedError("TODO")
19+
20+
def setJobParameter(self, jobID: str | int, name: str, value: str):
21+
raise NotImplementedError("TODO")
22+
23+
def setJobParameters(self, jobID: str | int, parameters: list):
24+
raise NotImplementedError("TODO")
25+
26+
def setJobSite(self, jobID: str | int, site: str):
27+
raise NotImplementedError("TODO")
28+
29+
def setJobStatus(
30+
self,
31+
jobID: str | int,
32+
status: str = "",
33+
minorStatus: str = "",
34+
source: str = "Unknown",
35+
datetime=None,
36+
force=False,
37+
):
38+
raise NotImplementedError("TODO")
39+
40+
def setJobStatusBulk(self, jobID: str | int, statusDict: dict, force=False):
41+
raise NotImplementedError("TODO")
42+
43+
def setJobsParameter(self, jobsParameterDict: dict):
44+
raise NotImplementedError("TODO")
45+
46+
def unsetJobFlag(self, jobID: str | int, flag: str):
47+
raise NotImplementedError("TODO")
48+
49+
def updateJobFromStager(self, jobID: str | int, status: str):
50+
raise NotImplementedError("TODO")
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
from functools import partial
2+
3+
import pytest
4+
5+
import DIRAC
6+
7+
DIRAC.initialize()
8+
from DIRAC.WorkloadManagementSystem.Client.JobStateUpdateClient import JobStateUpdateClient
9+
from ..utils import compare_results
10+
11+
12+
def test_sendHeartBeat(monkeypatch):
13+
# JobStateUpdateClient().sendHeartBeat(jobID: str | int, dynamicData: dict, staticData: dict)
14+
method = JobStateUpdateClient().sendHeartBeat
15+
pytest.skip()
16+
17+
18+
def test_setJobApplicationStatus(monkeypatch):
19+
# JobStateUpdateClient().setJobApplicationStatus(jobID: str | int, appStatus: str, source: str = Unknown)
20+
method = JobStateUpdateClient().setJobApplicationStatus
21+
pytest.skip()
22+
23+
24+
def test_setJobAttribute(monkeypatch):
25+
# JobStateUpdateClient().setJobAttribute(jobID: str | int, attribute: str, value: str)
26+
method = JobStateUpdateClient().setJobAttribute
27+
pytest.skip()
28+
29+
30+
def test_setJobFlag(monkeypatch):
31+
# JobStateUpdateClient().setJobFlag(jobID: str | int, flag: str)
32+
method = JobStateUpdateClient().setJobFlag
33+
pytest.skip()
34+
35+
36+
def test_setJobParameter(monkeypatch):
37+
# JobStateUpdateClient().setJobParameter(jobID: str | int, name: str, value: str)
38+
method = JobStateUpdateClient().setJobParameter
39+
pytest.skip()
40+
41+
42+
def test_setJobParameters(monkeypatch):
43+
# JobStateUpdateClient().setJobParameters(jobID: str | int, parameters: list)
44+
method = JobStateUpdateClient().setJobParameters
45+
pytest.skip()
46+
47+
48+
def test_setJobSite(monkeypatch):
49+
# JobStateUpdateClient().setJobSite(jobID: str | int, site: str)
50+
method = JobStateUpdateClient().setJobSite
51+
pytest.skip()
52+
53+
54+
def test_setJobStatus(monkeypatch):
55+
# JobStateUpdateClient().setJobStatus(jobID: str | int, status: str = , minorStatus: str = , source: str = Unknown, datetime = None, force = False)
56+
method = JobStateUpdateClient().setJobStatus
57+
pytest.skip()
58+
59+
60+
def test_setJobStatusBulk(monkeypatch):
61+
# JobStateUpdateClient().setJobStatusBulk(jobID: str | int, statusDict: dict, force = False)
62+
method = JobStateUpdateClient().setJobStatusBulk
63+
pytest.skip()
64+
65+
66+
def test_setJobsParameter(monkeypatch):
67+
# JobStateUpdateClient().setJobsParameter(jobsParameterDict: dict)
68+
method = JobStateUpdateClient().setJobsParameter
69+
pytest.skip()
70+
71+
72+
def test_unsetJobFlag(monkeypatch):
73+
# JobStateUpdateClient().unsetJobFlag(jobID: str | int, flag: str)
74+
method = JobStateUpdateClient().unsetJobFlag
75+
pytest.skip()
76+
77+
78+
def test_updateJobFromStager(monkeypatch):
79+
# JobStateUpdateClient().updateJobFromStager(jobID: str | int, status: str)
80+
method = JobStateUpdateClient().updateJobFromStager
81+
pytest.skip()

0 commit comments

Comments
 (0)