324 |
|
for job in task.jobs: |
325 |
|
if not job.runningJob: |
326 |
|
raise CrabException( "Missing running object for job %s"%str(job['jobId']) ) |
327 |
+ |
|
328 |
|
id = str(job.runningJob['jobId']) |
329 |
|
rForJ = None |
330 |
|
nj_list= [] |
346 |
|
for r in reportList: |
347 |
|
if r.getAttribute('id') in [ id, 'all']: |
348 |
|
rForJ = r |
349 |
< |
break |
349 |
> |
break |
350 |
> |
|
351 |
|
# Data alignment |
352 |
< |
jobStatus = str(job.runningJob['statusScheduler']) |
353 |
< |
if str(job.runningJob['status']) != 'EE': |
354 |
< |
if rForJ.getAttribute('status') not in ['Created', 'Submitting', 'Unknown'] and \ |
355 |
< |
job.runningJob['statusScheduler'] != 'Cleared': |
356 |
< |
common.logger.debug(3,"Updating DB status for job: " + str(id) + " @: " \ |
357 |
< |
+ str(rForJ.getAttribute('status')) ) |
358 |
< |
job.runningJob['statusScheduler'] = str( rForJ.getAttribute('status') ) |
359 |
< |
jobStatus = str(job.runningJob['statusScheduler']) |
358 |
< |
job.runningJob['status'] = str( rForJ.getAttribute('sched_status') ) |
352 |
> |
if rForJ.getAttribute('status') not in ['Created', 'Unknown'] and not\ |
353 |
> |
(job.runningJob['statusScheduler'] == 'Killing' and rForJ.getAttribute('status')!='Killed') \ |
354 |
> |
and not (job.runningJob['statusScheduler'] in 'Submitting' and rForJ.getAttribute('status') in ['Killed','Aborted','Cleared']) : |
355 |
> |
# update the status |
356 |
> |
common.logger.debug(3,"Updating DB status for job: " + str(id) + " @: " \ |
357 |
> |
+ str(rForJ.getAttribute('status')) ) |
358 |
> |
job.runningJob['statusScheduler'] = str( rForJ.getAttribute('status') ) |
359 |
> |
job.runningJob['status'] = str( rForJ.getAttribute('sched_status') ) |
360 |
|
|
361 |
|
job.runningJob['destination'] = str( rForJ.getAttribute('site') ) |
362 |
|
dest = str(job.runningJob['destination']).split(':')[0] |
363 |
< |
|
363 |
> |
|
364 |
|
job.runningJob['applicationReturnCode'] = str( rForJ.getAttribute('exe_exit') ) |
365 |
|
exe_exit_code = str(job.runningJob['applicationReturnCode']) |
366 |
< |
|
366 |
> |
|
367 |
|
job.runningJob['wrapperReturnCode'] = str( rForJ.getAttribute('job_exit') ) |
368 |
|
job_exit_code = str(job.runningJob['wrapperReturnCode']) |
369 |
|
|
370 |
< |
#if str( rForJ.getAttribute('resubmit') ).isdigit(): |
371 |
< |
# job['submissionNumber'] = int(rForJ.getAttribute('resubmit')) |
372 |
< |
# job.runningJob['submission'] = int(rForJ.getAttribute('resubmit')) |
370 |
> |
#if str( rForJ.getAttribute('resubmit') ).isdigit(): |
371 |
> |
# job['submissionNumber'] = int(rForJ.getAttribute('resubmit')) |
372 |
> |
# job.runningJob['submission'] = int(rForJ.getAttribute('resubmit')) |
373 |
|
|
374 |
< |
# TODO cleared='0' field, how should it be handled/mapped in BL? #Fabio |
374 |
> |
# TODO cleared='0' field, how should it be handled/mapped in BL? #Fabio |
375 |
|
|
376 |
|
common.bossSession.updateDB( task_new ) |
377 |
|
return |