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)