1 |
slacapra |
1.1 |
import os, common, string
|
2 |
|
|
from Actor import *
|
3 |
|
|
from crab_util import *
|
4 |
|
|
|
5 |
|
|
class Killer(Actor):
|
6 |
|
|
def __init__(self, cfg_params, range):
|
7 |
|
|
self.cfg_params = cfg_params
|
8 |
|
|
self.range = range
|
9 |
|
|
return
|
10 |
|
|
|
11 |
|
|
def run(self):
|
12 |
|
|
"""
|
13 |
|
|
The main method of the class: kill a complete task
|
14 |
|
|
"""
|
15 |
spiga |
1.14 |
common.logger.debug( "Killer::run() called")
|
16 |
spiga |
1.7 |
task = common._db.getTask(self.range)
|
17 |
slacapra |
1.1 |
toBeKilled = []
|
18 |
spiga |
1.7 |
for job in task.jobs:
|
19 |
spiga |
1.13 |
if ( job.runningJob['status'] in ['SU','SS','R','S','SR','SW']):
|
20 |
spiga |
1.7 |
toBeKilled.append(job['jobId'])
|
21 |
|
|
else:
|
22 |
spiga |
1.14 |
common.logger.info("Not possible to kill Job #"+str(job['jobId'])+" : Status is "+str(job.runningJob['statusScheduler']))
|
23 |
spiga |
1.7 |
pass
|
24 |
slacapra |
1.1 |
|
25 |
spiga |
1.4 |
if len(toBeKilled)>0:
|
26 |
|
|
common.scheduler.cancel(toBeKilled)
|
27 |
spiga |
1.14 |
common.logger.info("Jobs killed "+str(toBeKilled))
|