ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CRAB/python/DBinterface.py
(Generate patch)

Comparing COMP/CRAB/python/DBinterface.py (file contents):
Revision 1.65 by riahi, Fri Nov 6 14:25:09 2009 UTC vs.
Revision 1.71 by farinafa, Thu Apr 29 12:44:20 2010 UTC

# Line 350 | Line 350 | class DBinterface:
350                  if r.getAttribute('id') in [ id, 'all']:
351                      rForJ = r
352                      break
353 +
354 +            # check if rForJ is None
355 +            if rForJ is None:
356 +                common.logger.debug( "Missing XML element for job %s, skip update status"%str(id) )
357 +                continue
358 +            
359              ## Check the submission number and create new running jobs on the client side
360              if rForJ.getAttribute('resubmit') != 'None' and (rForJ.getAttribute('status') not in ['Cleared','Killed','Done','Done (Failed)','Not Submitted', 'Cancelled by user']) :
361                  if int(job.runningJob['submission']) < int(rForJ.getAttribute('resubmit')) + 1:
# Line 394 | Line 400 | class DBinterface:
400  
401                  job.runningJob['state'] = str( rForJ.getAttribute('action') )
402            
403 <            #if str( rForJ.getAttribute('resubmit') ).isdigit():
404 <            #    job['submissionNumber'] = int(rForJ.getAttribute('resubmit'))
399 <            #    job.runningJob['submission'] =  int(rForJ.getAttribute('resubmit'))
403 >                # Needed for unique naming of the output.
404 >                job['arguments'] = "%d %s"%(job.runningJob['jobId'], str(rForJ.getAttribute('submission')).strip() )
405            
401            # TODO cleared='0' field, how should it be handled/mapped in BL? #Fabio
402
406          common.bossSession.updateDB( task_new )
407          return
408  
# Line 410 | Line 413 | class DBinterface:
413                  return False
414          return True
415  
416 +    # Method to update arguments w.r.t. resubmission number in order to grant unique output
417 +    def updateResubAttribs(self, jobsL):
418 +        task = self.getTask(jobsL)
419 +        for j in task.jobs:
420 +            common.bossSession.getRunningInstance(j)
421 +            try:
422 +                resubNum = int(str(j['arguments']).split(' ')[1]) + 1
423 +            except Exception, e:
424 +                resubNum = j.runningJob['submission']
425 +            newArgs = "%d %d"%(j.runningJob['jobId'], resubNum)
426 +            j['arguments'] = newArgs
427 +
428 +        common.bossSession.updateDB(task)
429 +        return
430  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines