12 |
|
""" |
13 |
|
The main method of the class: kill a complete task |
14 |
|
""" |
15 |
< |
common.logger.debug(5, "Killer::run() called") |
16 |
< |
|
17 |
< |
jStatus=common._db.queryRunJob('status','all') |
18 |
< |
|
15 |
> |
common.logger.debug( "Killer::run() called") |
16 |
> |
task = common._db.getTask(self.range) |
17 |
|
toBeKilled = [] |
18 |
< |
for id in self.range: |
19 |
< |
if id not in common._db.nJobs("list"): |
20 |
< |
common.logger.message("Warning: job # "+str(id)+" doesn't exists! Not possible to kill it.") |
21 |
< |
else: |
22 |
< |
if ( jStatus[id-1] in ['SS','R']): |
23 |
< |
toBeKilled.append(id) |
24 |
< |
else: |
25 |
< |
common.logger.message("Not possible to kill Job #"+str(id)+" : Status is "+jStatus[id-1]) |
28 |
< |
pass |
29 |
< |
pass |
18 |
> |
for job in task.jobs: |
19 |
> |
if job.runningJob['state'] in ['SubSuccess','SubRequested']: |
20 |
> |
toBeKilled.append(job['jobId']) |
21 |
> |
else: |
22 |
> |
common.logger.info("Not possible to kill Job #"+str(job['jobId'])+\ |
23 |
> |
" : Last action was: "+str(job.runningJob['state'])+\ |
24 |
> |
" Status is "+str(job.runningJob['statusScheduler'])) |
25 |
> |
pass |
26 |
|
|
27 |
< |
common.scheduler.cancel(toBeKilled) |
28 |
< |
common.logger.message("Jobs killed "+str(toBeKilled)) |
27 |
> |
if len(toBeKilled)>0: |
28 |
> |
common.scheduler.cancel(toBeKilled) |
29 |
> |
common._db.updateRunJob_(toBeKilled, [{'state':'KillSuccess'}]*len(toBeKilled)) |
30 |
> |
common._db.updateJob_(toBeKilled, [{'closed':'Y'}]*len(toBeKilled)) |
31 |
> |
common.logger.info("Jobs killed "+str(toBeKilled)) |
32 |
> |
|