TaskManager

TaskManager contains WorkflowTasks and RequestTasks modules, for managing jobs and requests tasks

class DIRAC.TransformationSystem.Client.TaskManager.RequestTasks(transClient=None, logger=None, requestClient=None, requestClass=None, requestValidator=None, ownerDN=None, ownerGroup=None)

Bases: TaskBase

Class for handling tasks for the RMS

__init__(transClient=None, logger=None, requestClient=None, requestClass=None, requestValidator=None, ownerDN=None, ownerGroup=None)

c’tor

the requestClass is by default Request. If extensions want to use an extended type, they can pass it as a parameter. This is the same behavior as WorfkloTasks and jobClass

getSubmittedFileStatus(fileDicts)

Check if transformation files changed status, and return a list of taskIDs per new status

getSubmittedTaskStatus(taskDicts)

Check if tasks changed status, and return a list of tasks per new status

prepareTransformationTasks(transBody, taskDict, owner='', ownerGroup='', ownerDN='', bulkSubmissionFlag=False)

Prepare tasks, given a taskDict, that is created (with some manipulation) by the DB

submitTaskToExternal(oRequest)

Submits a request to RMS

submitTasksToExternal(_task)

To make sure the method is implemented in the derived class

submitTransformationTasks(taskDict)

Submit requests one by one

updateDBAfterTaskSubmission(taskDict)

Sets tasks status after the submission to “Submitted”, in case of success

updateTransformationReservedTasks(taskDicts)

To make sure the method is implemented in the derived class

class DIRAC.TransformationSystem.Client.TaskManager.TaskBase(transClient=None, logger=None)

Bases: TransformationAgentsUtilities

The other classes inside here inherits from this one.

__init__(transClient=None, logger=None)

c’tor

getSubmittedFileStatus(_fileDicts)

To make sure the method is implemented in the derived class

getSubmittedTaskStatus(_taskDicts)

To make sure the method is implemented in the derived class

prepareTransformationTasks(_transBody, _taskDict, owner='', ownerGroup='', ownerDN='', bulkSubmissionFlag=False)

To make sure the method is implemented in the derived class

submitTasksToExternal(_task)

To make sure the method is implemented in the derived class

submitTransformationTasks(_taskDict)

To make sure the method is implemented in the derived class

updateDBAfterTaskSubmission(taskDict)

Sets tasks status after the submission to “Submitted”, in case of success

updateTransformationReservedTasks(_taskDicts)

To make sure the method is implemented in the derived class

class DIRAC.TransformationSystem.Client.TaskManager.WorkflowTasks(transClient=None, logger=None, submissionClient=None, jobMonitoringClient=None, outputDataModule=None, jobClass=None, opsH=None, destinationPlugin=None, ownerDN=None, ownerGroup=None)

Bases: TaskBase

Handles jobs

__init__(transClient=None, logger=None, submissionClient=None, jobMonitoringClient=None, outputDataModule=None, jobClass=None, opsH=None, destinationPlugin=None, ownerDN=None, ownerGroup=None)

Generates some default objects. jobClass is by default “DIRAC.Interfaces.API.Job.Job”. An extension of it also works: VOs can pass in their job class extension, if present

getOutputData(paramDict)

Get the list of job output LFNs from the provided plugin

getSubmittedFileStatus(fileDicts)

Check the status of a list of files and return the new status of each LFN

getSubmittedTaskStatus(taskDicts)

Check the status of a list of tasks and return lists of taskIDs for each new status

prepareTransformationTasks(transBody, taskDict, owner='', ownerGroup='', ownerDN='', bulkSubmissionFlag=False)
Prepare tasks, given a taskDict, that is created (with some manipulation) by the DB

jobClass is by default “DIRAC.Interfaces.API.Job.Job”. An extension of it also works.

Parameters
  • transBody (str) – transformation job template

  • taskDict (dict) – dictionary of per task parameters

  • owner (str) – owner of the transformation

  • ownerGroup (str) – group of the owner of the transformation

  • ownerDN (str) – DN of the owner of the transformation

  • bulkSubmissionFlag (bool) – flag for using bulk submission or not

Returns

S_OK/S_ERROR with updated taskDict

submitTaskToExternal(job)

Submits a single job (which can be a bulk one) to the WMS.

submitTasksToExternal(_task)

To make sure the method is implemented in the derived class

submitTransformationTasks(taskDict)

Submit the tasks

updateDBAfterTaskSubmission(taskDict)

Sets tasks status after the submission to “Submitted”, in case of success

updateTransformationReservedTasks(taskDicts)

To make sure the method is implemented in the derived class