コード例 #1
0
ファイル: TaskQueueKiller.py プロジェクト: zhiwenuil/WMCore
    def eraseWorkflow(self, workflowSpecId):
        """
        Arguments:
          workflowSpecId -- the workflow id.

        Return:
          none
        """

        logging.info("TaskQueueKiller.eraseWorkflow(%s)" % workflowSpecId)
        
        # get job ids for workflows workflowSpecId
        jobs = JobState.retrieveJobIDs([workflowSpecId])
        jobs = map(lambda x: x[0], jobs)
        logging.debug("TaskQueueKiller-> jobs: %s" % str(jobs))

        totalJobs = len(jobs)
        if totalJobs == 0:
            logging.info("No jobs associated to the workflow %s" % \
                         workflowSpecId)
            return

        # Kill all jobs (those not in the queue will be ignored)
        self.tqApi.killTasks(jobs)

        # Avoid resubmission
        for job in jobs:
            self.__avoidResubmission(job)

        return
コード例 #2
0
ファイル: JobState_t.py プロジェクト: giffels/PRODAGENT
 def testK(self):
     jobIDs=[]
     for i in xrange(0,20):
         JobState.register("jobClassID_0."+str(i),"Processing",30,1)
         JobState.register("jobClassID_1."+str(i),"Processing",30,1,"myWorkflowID1")
         JobState.register("jobClassID_2."+str(i),"Processing",30,1,"myWorkflowID2")
         JobState.register("jobClassID_3."+str(i),"Processing",30,1,"myWorkflowID3")
         jobIDs.append("jobClassID_1."+str(i))
         jobIDs.append("jobClassID_2."+str(i))
         jobIDs.append("jobClassID_3."+str(i))
     JobState.setMaxRetries(jobIDs,2)
     self.assertEqual(JobState.general("jobClassID_1.1")['MaxRetries'],2)
     JobState.setMaxRetries("jobClassID_1.1",3)
     self.assertEqual(JobState.general("jobClassID_1.1")['MaxRetries'],3)
     jobIDs=JobState.retrieveJobIDs("myWorkflowID1")
     self.assertEqual(len(jobIDs),20)
     jobIDs=JobState.retrieveJobIDs(["myWorkflowID1","myWorkflowID2","myWorkflowID3"])
     self.assertEqual(len(jobIDs),60)
     jobs=JobState.rangeGeneral(0,10)
     print(str(jobs))
コード例 #3
0
ファイル: BossLiteKiller.py プロジェクト: giffels/PRODAGENT
    def killWorkflow(self, workflowSpecId):
        """

        Arguments:

          workflowSpecId -- the workflow id.

        Return:

          none

        """

        logging.info("BossLiteKiller.killWorkflow(%s)" % workflowSpecId)

        # get job ids for workflows workflowSpecId
        jobs = JobState.retrieveJobIDs([workflowSpecId])

        totalJobs = len(jobs)
        if totalJobs == 0:
            logging.info("No jobs associated to the workflow %s" % \
                         workflowSpecId)
            return

        skippedJobs = 0

        # kill all jobs
        for job in jobs:

            jobName = job[0]

            # kill each one independently
            try:
                self.killJob(jobName)

            # if job is not found (may be finished right now), killJob()
            # has printed the error message. Try the next one
            except InvalidJobException, msg:
                logging.debug("job %s not yet created, no need to kill it" % \
                             jobName)
                skippedJobs += 1

            # not yet submitted, no need to kill it
            except JobNotSubmittedException, msg:
                logging.debug(
                   "job %s not yet submitted or finished, no need to kill it" \
                   % jobName)