diff --git a/ClusterController/JobsState.py b/ClusterController/JobsState.py index c096c51..76fb7c1 100644 --- a/ClusterController/JobsState.py +++ b/ClusterController/JobsState.py @@ -6,17 +6,29 @@ class JobsState: """ def __init__( self ): self.m_jobs = {} # list of jobs + self.m_jobArrayJobs = {} # a dictionary of jobs for each job array, indexed by job array id self.m_queueMachines = {} # list of queue machines such as allintel.q@simpatix10 self.m_stateTime = None # the time at which the state was snapshot def deleteAllJobs( self ): self.m_jobs = {} - + self.m_jobArrayJobs = {} + def addJob( self, job ): - self.m_jobs[ job.getId() ] = job + jobId = job.getId() + self.m_jobs[ jobId ] = job + if jobId.isJobArrayElement(): + tasks = self.m_jobArrayJobs.get(jobId.m_iJobId) + if tasks == None: + tasks = {} + self.m_jobArrayJobs[ jobId.m_iJobId ] = tasks + tasks[jobId] = job def getJob( self, jobId ): return self.m_jobs.get( jobId ) + + def getJobArrayJobs( self, iJobArrayId ): + return self.m_jobArrayJobs.get( iJobArrayId ) def setTime( self, stateTime ): self.m_stateTime = stateTime