JobSanity

The Job Sanity executor screens jobs for the following problems:

  • Output data already exists

  • Problematic JDL

  • Jobs with too much input data e.g. > 100 files

  • Jobs with input data incorrectly specified e.g. castor:/

  • Input sandbox not correctly uploaded.

class DIRAC.WorkloadManagementSystem.Executor.JobSanity.JobSanity

Bases: OptimizerExecutor

The specific Optimizer must provide the following methods:
  • optimizeJob() - the main method called for each job

and it can provide:
  • initializeOptimizer() before each execution cycle

checkInputData(jobState, jobType, voName)

This method checks both the amount of input datasets for the job and whether the LFN conventions are correct.

checkInputSandbox(jobState, manifest)

The number of input sandbox files, as specified in the job JDL are checked in the JobDB.

deserializeTask(taskStub)
disableFastTrackForTask()
classmethod ex_enabled()
classmethod ex_getExtraArguments()
classmethod ex_getMind()
classmethod ex_getOption(optName, defaultValue=None)
classmethod ex_getProperty(optName)
classmethod ex_optimizerName()
classmethod ex_setMind(mindName, **extraArgs)
classmethod ex_setOption(optName, value)
classmethod ex_setProperty(optName, value)
fastTrackDispatch(jid, jobState)
freezeTask(freezeTime)
classmethod initialize()
classmethod initializeOptimizer()

Initialize specific parameters for JobSanityAgent.

isTaskFrozen()
property jobLog
optimizeJob(jid, jobState)

This method controls the order and presence of each sanity check for submitted jobs. This should be easily extended in the future to accommodate any other potential checks.

processTask(jid, jobState)
retrieveOptimizerParam(name)
serializeTask(cjs)
setNextOptimizer(jobState=None)
storeOptimizerParam(name, value)