119 |
|
#=================================================================================================== |
120 |
|
# Define string to explain usage of the script |
121 |
|
usage = \ |
122 |
< |
"\nUsage: jobSitter.py [ --pattern= --blacklist=" + \ |
123 |
< |
" --status --help --backward --clean --extend --one --exe ]\n" |
122 |
> |
"\nUsage: jobSitter.py [ --pattern= --apattern= --blacklist=" \ |
123 |
> |
+ " --status --kill --remove --help --backward --clean --extend --one" \ |
124 |
> |
+ " --exe ]\n" |
125 |
|
|
126 |
|
# Define the valid options which can be specified and check out the command line |
127 |
< |
valid = ['pattern=','blacklist=','catalog=','help','backward','kill','clean','exe','extend','one'] |
127 |
> |
valid = ['pattern=','apattern=','blacklist=','catalog=', |
128 |
> |
'help','backward','kill','remove','clean','exe','extend','one'] |
129 |
|
try: |
130 |
|
opts, args = getopt.getopt(sys.argv[1:], "", valid) |
131 |
|
except getopt.GetoptError, ex: |
138 |
|
# -------------------------------------------------------------------------------------------------- |
139 |
|
# Set defaults |
140 |
|
pattern = '' |
141 |
+ |
apattern = '' |
142 |
|
blacklist = '' |
143 |
|
catalog = 0 |
144 |
|
clean = 0 |
145 |
|
kill = 0 |
146 |
+ |
remove = 0 |
147 |
|
exe = 0 |
148 |
|
extend = 0 |
149 |
|
one = 0 |
156 |
|
sys.exit(0) |
157 |
|
if opt == "--pattern": |
158 |
|
pattern = arg |
159 |
+ |
if opt == "--apattern": |
160 |
+ |
apattern = arg |
161 |
|
if opt == "--blacklist": |
162 |
|
blacklist = arg |
163 |
|
if opt == "--catalog": |
174 |
|
backward = ' -r ' |
175 |
|
if opt == "--kill": |
176 |
|
kill = 1 |
177 |
+ |
if opt == "--remove": |
178 |
+ |
remove = 1 |
179 |
|
|
180 |
|
# -------------------------------------------------------------------------------------------------- |
181 |
|
# Here is where the real action starts ------------------------------------------------------------- |
196 |
|
crabTask = task.Task(tag) |
197 |
|
|
198 |
|
#print 'Pattern: ' + pattern + ' tag: ' + crabTask.mitDataset |
199 |
+ |
if apattern != '' and re.search(apattern,crabTask.mitDataset): |
200 |
+ |
print '\n Skipping: ' + crabTask.mitDataset + '\n\n' |
201 |
|
if re.search(pattern,crabTask.mitDataset): |
202 |
|
crabTasks.append(crabTask) |
203 |
|
crabTask.show() |
213 |
|
|
214 |
|
print '\n------------------------------------------------------------------------------' |
215 |
|
print ' --> PREPPING ' + crabTask.tag \ |
216 |
< |
+ '\n -> ' + crabTask.mitDataset |
216 |
> |
+ '\n -> ' + crabTask.cmsDataset + ' (' + crabTask.mitDataset + ')'\ |
217 |
> |
+ '\n -> ' + crabTask.storageEle \ |
218 |
> |
+ '\n -> ' + crabTask.storagePath |
219 |
|
print '------------------------------------------------------------------------------\n' |
220 |
|
|
221 |
|
dataset = crabTask.cmsDataset |
226 |
|
crabTask.killAndRemove(1) |
227 |
|
continue |
228 |
|
|
229 |
+ |
if remove == 1: |
230 |
+ |
crabTask.remove(1) |
231 |
+ |
continue |
232 |
+ |
|
233 |
|
crabTask.loadAllLfns(crabTask.mitCfg + '/' + crabTask.mitVersion + '/' + \ |
234 |
|
crabTask.mitDataset + '.lfns') |
235 |
|
#if crabTask.status == 'cataloged': |
258 |
|
cmd = 'catalog.sh -g -m ' + crabTask.mitCfg + ' ' + crabTask.mitVersion + \ |
259 |
|
' ' + crabTask.mitDataset + '/' + crabTask.tag + ' --compact' |
260 |
|
|
261 |
< |
|
262 |
< |
print '\n------------------------------------------------------------------------------' |
263 |
< |
print ' --> CATALOG ' + crabTask.tag \ |
248 |
< |
+ '\n -> ' + dataset + ' (' + crabTask.mitDataset + ')'\ |
249 |
< |
+ '\n -> ' + storageEle \ |
250 |
< |
+ '\n -> ' + storagePath |
251 |
< |
print '------------------------------------------------------------------------------\n' |
252 |
< |
#print ' --> ' + cmd |
253 |
< |
|
261 |
> |
#print '\n --> CATALOG ' |
262 |
> |
#print ' ' + cmd + '\n' |
263 |
> |
|
264 |
|
if catalog != 0: |
265 |
|
os.system(cmd) |
266 |
|
|
280 |
|
print ' --> ' + cmd |
281 |
|
os.system(cmd) |
282 |
|
|
283 |
< |
print '\n------------------------------------------------------------------------------' |
284 |
< |
print ' --> STATUS ' + crabTask.tag + ' -- ' \ |
285 |
< |
+ '\n -> ' + dataset + ' (' + crabTask.mitDataset + ')'\ |
286 |
< |
+ '\n -> ' + storageEle \ |
287 |
< |
+ '\n -> ' + storagePath |
288 |
< |
print '------------------------------------------------------------------------------\n' |
283 |
> |
#print '\n------------------------------------------------------------------------------' |
284 |
> |
#print ' --> STATUS ' + crabTask.tag + ' -- ' \ |
285 |
> |
# + '\n -> ' + dataset + ' (' + crabTask.mitDataset + ')'\ |
286 |
> |
# + '\n -> ' + storageEle \ |
287 |
> |
# + '\n -> ' + storagePath |
288 |
> |
#print '------------------------------------------------------------------------------\n' |
289 |
> |
print '\n --> STATUS ' + crabTask.tag + ' -- ' + crabTask.mitDataset |
290 |
|
|
291 |
|
# interact with crab to get the job status |
292 |
|
crabTask.getJobStati() |
357 |
|
|
358 |
|
|
359 |
|
cmd = 'crab -getoutput -continue ' + crabTask.tag |
360 |
< |
print '\n------------------------------------------------------------------------------' |
361 |
< |
print ' --> GETOUTPUT ' + crabTask.tag + ' -- ' \ |
362 |
< |
+ '\n -> ' + dataset \ |
363 |
< |
+ '\n -> ' + storageEle \ |
364 |
< |
+ '\n -> ' + storagePath |
365 |
< |
print '------------------------------------------------------------------------------\n' |
360 |
> |
#print '\n------------------------------------------------------------------------------' |
361 |
> |
#print ' --> GETOUTPUT ' + crabTask.tag + ' -- ' \ |
362 |
> |
# + '\n -> ' + dataset \ |
363 |
> |
# + '\n -> ' + storageEle \ |
364 |
> |
# + '\n -> ' + storagePath |
365 |
> |
#print '------------------------------------------------------------------------------\n' |
366 |
> |
print '\n --> GETOUTPUT ' + crabTask.tag + ' -- ' + crabTask.mitDataset |
367 |
|
print ' --> ' + cmd |
368 |
|
status = os.system(cmd) |
369 |
|
|