Skip to content
Snippets Groups Projects
Commit 8b22e8c4 authored by Jorrit Schaap's avatar Jorrit Schaap
Browse files

Task #9607: get tasks by mom_ids or by otdb_ids

parent 39043701
No related branches found
No related tags found
No related merge requests found
...@@ -155,7 +155,10 @@ class RADatabase: ...@@ -155,7 +155,10 @@ class RADatabase:
raise KeyError('No such status: %s. Valid values are: %s' % (status_name, ', '.join(self.getResourceClaimStatusNames()))) raise KeyError('No such status: %s. Valid values are: %s' % (status_name, ', '.join(self.getResourceClaimStatusNames())))
def getTasks(self, lower_bound=None, upper_bound=None, task_ids=None, task_status=None, task_type=None): def getTasks(self, lower_bound=None, upper_bound=None, task_ids=None, task_status=None, task_type=None, mom_ids=None, otdb_ids=None):
if len([x for x in [task_ids, mom_ids, otdb_ids] if x != None]) > 1:
raise KeyError("Provide either task_ids or mom_ids or otdb_ids, not multiple kinds.")
query = '''SELECT * from resource_allocation.task_view''' query = '''SELECT * from resource_allocation.task_view'''
conditions = [] conditions = []
...@@ -173,10 +176,26 @@ class RADatabase: ...@@ -173,10 +176,26 @@ class RADatabase:
if isinstance(task_ids, int): # just a single id if isinstance(task_ids, int): # just a single id
conditions.append('id = %s') conditions.append('id = %s')
qargs.append(task_ids) qargs.append(task_ids)
else: #assume a list/enumerable of id's elif task_ids: #assume a list/enumerable of id's
conditions.append('id in %s') conditions.append('id in %s')
qargs.append(tuple(task_ids)) qargs.append(tuple(task_ids))
if mom_ids is not None:
if isinstance(mom_ids, int): # just a single id
conditions.append('mom_id = %s')
qargs.append(mom_ids)
elif mom_ids: #assume a list/enumerable of id's
conditions.append('mom_id in %s')
qargs.append(tuple(mom_ids))
if otdb_ids is not None:
if isinstance(otdb_ids, int): # just a single id
conditions.append('otdb_id = %s')
qargs.append(otdb_ids)
elif otdb_ids: #assume a list/enumerable of id's
conditions.append('otdb_id in %s')
qargs.append(tuple(otdb_ids))
task_status, task_type = self._convertTaskTypeAndStatusToIds(task_status, task_type) task_status, task_type = self._convertTaskTypeAndStatusToIds(task_status, task_type)
if task_status is not None: if task_status is not None:
......
...@@ -178,8 +178,8 @@ class RARPC(RPCWrapper): ...@@ -178,8 +178,8 @@ class RARPC(RPCWrapper):
otdb_id=otdb_id, otdb_id=otdb_id,
status=status) status=status)
def getTasks(self, lower_bound=None, upper_bound=None, task_ids=None, task_status=None, task_type=None): def getTasks(self, lower_bound=None, upper_bound=None, task_ids=None, task_status=None, task_type=None, mom_ids=None, otdb_ids=None):
tasks = self.rpc('GetTasks', lower_bound=lower_bound, upper_bound=upper_bound, task_ids=task_ids, task_status=task_status, task_type=task_type) tasks = self.rpc('GetTasks', lower_bound=lower_bound, upper_bound=upper_bound, task_ids=task_ids, task_status=task_status, task_type=task_type, mom_ids=mom_ids, otdb_ids=otdb_ids)
for task in tasks: for task in tasks:
task['starttime'] = task['starttime'].datetime() task['starttime'] = task['starttime'].datetime()
task['endtime'] = task['endtime'].datetime() task['endtime'] = task['endtime'].datetime()
......
...@@ -215,7 +215,9 @@ class RADBHandler(MessageHandlerInterface): ...@@ -215,7 +215,9 @@ class RADBHandler(MessageHandlerInterface):
upper_bound=kwargs.get('upper_bound').datetime() if kwargs.get('upper_bound') else None, upper_bound=kwargs.get('upper_bound').datetime() if kwargs.get('upper_bound') else None,
task_ids=kwargs.get('task_ids'), task_ids=kwargs.get('task_ids'),
task_status=kwargs.get('task_status'), task_status=kwargs.get('task_status'),
task_type=kwargs.get('task_type')) task_type=kwargs.get('task_type'),
mom_ids=kwargs.get('mom_ids'),
otdb_ids=kwargs.get('otdb_ids'))
def _getTask(self, **kwargs): def _getTask(self, **kwargs):
logger.info('GetTask: %s' % dict({k:v for k,v in kwargs.items() if v != None})) logger.info('GetTask: %s' % dict({k:v for k,v in kwargs.items() if v != None}))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment