diff --git a/MAC/Services/src/PipelineStarter.py b/MAC/Services/src/PipelineStarter.py index f780c3088a9e533766c103d0e67c48fc5474d3d4..bf43b3af8e06ae466b22656b414cce1bdaa0fe43 100755 --- a/MAC/Services/src/PipelineStarter.py +++ b/MAC/Services/src/PipelineStarter.py @@ -21,8 +21,8 @@ # # $Id$ """ -Daemon that listens to OTDB status changes to SCHEDULED, requests -the parset of such jobs, and starts them using SLURM and Docker. +Daemon that listens to OTDB status changes to SCHEDULED, starts them +using SLURM and Docker, and puts the jobs to QUEUED. The execution chain is as follows: @@ -229,7 +229,9 @@ class PipelineStarter(OTDBBusListener): # Cancel corresponding SLURM job, causing any successors # to be cancelled as well. - self.slurm.cancel(parset.slurmJobName()) + jobName = parset.slurmJobName() + logger.info("Cancelling job %s", jobName) + self.slurm.cancel(jobName) """ More statusses we want to abort on. @@ -266,12 +268,22 @@ class PipelineStarter(OTDBBusListener): """ # Collect the parsets of predecessors + logger.info("Obtaining predecessor parsets") preparsets = self._getPredecessorParsets(parset) # Collect SLURM job information logger.info("Obtaining SLURM job list") slurm_jobs = self.slurm.jobs() + """ + Update OTDB before scheduling the SLURM jobs, + as the SLURM jobs will set the status too. + """ + + # Set OTDB status to QUEUED + logger.info("Setting status to QUEUED") + self._setStatus(treeId, "queued") + """ Schedule "docker-runPipeline.sh", which will fetch the parset and run the pipeline within a SLURM job. @@ -350,9 +362,5 @@ class PipelineStarter(OTDBBusListener): ) logger.info("Scheduled SLURM job %s" % (slurm_cancel_job_id,)) - # Set OTDB status to QUEUED - logger.info("Setting status to QUEUED") - self._setStatus(treeId, "queued") - logger.info("Pipeline processed.")