Skip to content

Commit

Permalink
feat (diracx): start JobStateUpdateClient
Browse files Browse the repository at this point in the history
  • Loading branch information
chaen committed Nov 28, 2023
1 parent f105245 commit 8110a73
Show file tree
Hide file tree
Showing 3 changed files with 136 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
""" Class that contains client access to the JobStateUpdate handler. """

from DIRAC.Core.Base.Client import Client, createClient
from DIRAC.WorkloadManagementSystem.FutureClient.JobStateUpdateClient import (
JobStateUpdateClient as futureJobStateUpdateClient,
)


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

diracxClient = futureJobStateUpdateClient

def __init__(self, url=None, **kwargs):
"""
Sets URL for JobStateUpdate handler
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
from DIRAC.Core.Security.DiracX import DiracXClient
from DIRAC.Core.Utilities.ReturnValues import convertToReturnValue


class JobStateUpdateClient:
def sendHeartBeat(self, jobID: str | int, dynamicData: dict, staticData: dict):
raise NotImplementedError("TODO")

def setJobApplicationStatus(self, jobID: str | int, appStatus: str, source: str = "Unknown"):
raise NotImplementedError("TODO")

def setJobAttribute(self, jobID: str | int, attribute: str, value: str):
with DiracXClient() as api:
api.jobs.set_single_job_properties(jobID, "need to [patch the client to have a nice summer body ?")
raise NotImplementedError("TODO")

def setJobFlag(self, jobID: str | int, flag: str):
raise NotImplementedError("TODO")

def setJobParameter(self, jobID: str | int, name: str, value: str):
raise NotImplementedError("TODO")

def setJobParameters(self, jobID: str | int, parameters: list):
raise NotImplementedError("TODO")

def setJobSite(self, jobID: str | int, site: str):
raise NotImplementedError("TODO")

def setJobStatus(
self,
jobID: str | int,
status: str = "",
minorStatus: str = "",
source: str = "Unknown",
datetime=None,
force=False,
):
raise NotImplementedError("TODO")

def setJobStatusBulk(self, jobID: str | int, statusDict: dict, force=False):
raise NotImplementedError("TODO")

def setJobsParameter(self, jobsParameterDict: dict):
raise NotImplementedError("TODO")

def unsetJobFlag(self, jobID: str | int, flag: str):
raise NotImplementedError("TODO")

def updateJobFromStager(self, jobID: str | int, status: str):
raise NotImplementedError("TODO")
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
from functools import partial

import pytest

import DIRAC

DIRAC.initialize()
from DIRAC.WorkloadManagementSystem.Client.JobStateUpdateClient import JobStateUpdateClient
from ..utils import compare_results


def test_sendHeartBeat(monkeypatch):
# JobStateUpdateClient().sendHeartBeat(jobID: str | int, dynamicData: dict, staticData: dict)
method = JobStateUpdateClient().sendHeartBeat
pytest.skip()


def test_setJobApplicationStatus(monkeypatch):
# JobStateUpdateClient().setJobApplicationStatus(jobID: str | int, appStatus: str, source: str = Unknown)
method = JobStateUpdateClient().setJobApplicationStatus
pytest.skip()


def test_setJobAttribute(monkeypatch):
# JobStateUpdateClient().setJobAttribute(jobID: str | int, attribute: str, value: str)
method = JobStateUpdateClient().setJobAttribute
pytest.skip()


def test_setJobFlag(monkeypatch):
# JobStateUpdateClient().setJobFlag(jobID: str | int, flag: str)
method = JobStateUpdateClient().setJobFlag
pytest.skip()


def test_setJobParameter(monkeypatch):
# JobStateUpdateClient().setJobParameter(jobID: str | int, name: str, value: str)
method = JobStateUpdateClient().setJobParameter
pytest.skip()


def test_setJobParameters(monkeypatch):
# JobStateUpdateClient().setJobParameters(jobID: str | int, parameters: list)
method = JobStateUpdateClient().setJobParameters
pytest.skip()


def test_setJobSite(monkeypatch):
# JobStateUpdateClient().setJobSite(jobID: str | int, site: str)
method = JobStateUpdateClient().setJobSite
pytest.skip()


def test_setJobStatus(monkeypatch):
# JobStateUpdateClient().setJobStatus(jobID: str | int, status: str = , minorStatus: str = , source: str = Unknown, datetime = None, force = False)
method = JobStateUpdateClient().setJobStatus
pytest.skip()


def test_setJobStatusBulk(monkeypatch):
# JobStateUpdateClient().setJobStatusBulk(jobID: str | int, statusDict: dict, force = False)
method = JobStateUpdateClient().setJobStatusBulk
pytest.skip()


def test_setJobsParameter(monkeypatch):
# JobStateUpdateClient().setJobsParameter(jobsParameterDict: dict)
method = JobStateUpdateClient().setJobsParameter
pytest.skip()


def test_unsetJobFlag(monkeypatch):
# JobStateUpdateClient().unsetJobFlag(jobID: str | int, flag: str)
method = JobStateUpdateClient().unsetJobFlag
pytest.skip()


def test_updateJobFromStager(monkeypatch):
# JobStateUpdateClient().updateJobFromStager(jobID: str | int, status: str)
method = JobStateUpdateClient().updateJobFromStager
pytest.skip()

0 comments on commit 8110a73

Please sign in to comment.