def loadTask(self, taskId, jobRange='all', deep=True): """ retrieve task information from db using task id the jobs loading can be tuned using jobRange: - None : no jobs are loaded - 'all' : all jobs are loaded - list/range : only selected jobs are loaded """ # db connect if self.db is None: self.connect() # create template for task task = Task() task['id'] = int(taskId) task.load(self.db, False) # load jobs # # backward compatible 'deep' parameter handling if jobRange is not None and deep != False: self.load(task, jobRange) return task
def loadTask( self, taskId, jobRange='all', deep=True ) : """ retrieve task information from db using task id the jobs loading can be tuned using jobRange: - None : no jobs are loaded - 'all' : all jobs are loaded - list/range : only selected jobs are loaded """ # db connect if self.db is None : self.connect() # create template for task task = Task() task['id'] = int(taskId) task.load(self.db, False) # load jobs # # backward compatible 'deep' parameter handling if jobRange is not None and deep != False : self.load( task, jobRange ) return task
def loadTaskByName(self, name, jobRange='all', deep=True): """ retrieve task information from db for task 'name' """ # db connect if self.db is None: self.connect() # create template for task and load task = Task() task['name'] = name task.load(self.db, False) # load jobs # # backward compatible 'deep' parameter handling if jobRange is not None and deep != False: self.load(task, jobRange) return task
def loadTaskByName( self, name, jobRange='all', deep=True ) : """ retrieve task information from db for task 'name' """ # db connect if self.db is None : self.connect() # create template for task and load task = Task() task['name'] = name task.load(self.db, False) # load jobs # # backward compatible 'deep' parameter handling if jobRange is not None and deep != False : self.load( task, jobRange ) return task
def load(self, task, jobRange="all", jobAttributes=None, runningAttrs=None, strict=True, limit=None, offset=None): """ retrieve information from db for: - jobRange can be of the form: 'a,b:c,d,e' ['a',b','c'] 'all' None (no jobs to be loaded In some way these should be the option to build the query. Maybe, same options should be used also in loadSubmitted, loadCreated, loadEnded, loadFailed Takes the highest submission number for each job """ # db connect if self.db is None: self.connect() # already loaded task? if not isinstance(task, Task): task = Task({'id': task}) task.load(self.db, False) elif jobRange == 'all' and task.jobs != []: jobRange = None # simple case: no jobs loading request if jobRange is None: return task # defining default if jobAttributes is None: jobAttributes = {} # evaluate job list jobList = None if jobRange is not None and jobRange != 'all': # identify jobRange if type(jobRange) == list: jobList = jobRange else: jobList = parseRange(jobRange) # if there are loaded jobs, load just missing if task.jobs != []: s = [str(job['jobId']) for job in task.jobs] jobList = [str(x) for x in jobList if str(x) not in s] # no jobs to be loaded? if jobList == []: return task elif jobList is not None: jobList.sort() # load jobAttributes['taskId'] = int(task['id']) jobs = self.loadJobsByRunningAttr( runningAttrs, \ jobAttributes, \ strict=strict, \ limit=limit, offset=offset,\ jobList=jobList ) task.appendJobs(jobs) return task
def load( self, task, jobRange="all", jobAttributes=None, runningAttrs=None, strict=True, limit=None, offset=None ) : """ retrieve information from db for: - jobRange can be of the form: 'a,b:c,d,e' ['a',b','c'] 'all' None (no jobs to be loaded In some way these should be the option to build the query. Maybe, same options should be used also in loadSubmitted, loadCreated, loadEnded, loadFailed Takes the highest submission number for each job """ # db connect if self.db is None : self.connect() # already loaded task? if not isinstance( task, Task ) : task = Task({'id' : task}) task.load(self.db, False) elif jobRange == 'all' and task.jobs != []: jobRange = None # simple case: no jobs loading request if jobRange is None: return task # defining default if jobAttributes is None : jobAttributes = {} # evaluate job list jobList = None if jobRange is not None and jobRange != 'all': # identify jobRange if type( jobRange ) == list : jobList = jobRange else : jobList = parseRange( jobRange ) # if there are loaded jobs, load just missing if task.jobs != []: s = [ str(job['jobId']) for job in task.jobs ] jobList = [str(x) for x in jobList if str(x) not in s] # no jobs to be loaded? if jobList == [] : return task elif jobList is not None: jobList.sort() # load jobAttributes['taskId'] = int( task['id'] ) jobs = self.loadJobsByRunningAttr( runningAttrs, \ jobAttributes, \ strict=strict, \ limit=limit, offset=offset,\ jobList=jobList ) task.appendJobs( jobs ) return task