def get_jobs(not_yet_run=False, running=False, finished=False, **filter_data): """ Extra filter args for get_jobs: -not_yet_run: Include only jobs that have not yet started running. -running: Include only jobs that have start running but for which not all hosts have completed. -finished: Include only jobs for which all hosts have completed (or aborted). At most one of these three fields should be specified. """ filter_data['extra_args'] = rpc_utils.extra_job_filters( not_yet_run, running, finished) job_dicts = [] jobs = list(models.Job.query_objects(filter_data)) models.Job.objects.populate_relationships(jobs, models.Label, 'dependencies') models.Job.objects.populate_relationships(jobs, models.JobKeyval, 'keyvals') for job in jobs: job_dict = job.get_object_dict() job_dict['dependencies'] = ','.join(label.name for label in job.dependencies) job_dict['keyvals'] = dict( (keyval.key, keyval.value) for keyval in job.keyvals) job_dicts.append(job_dict) return rpc_utils.prepare_for_serialization(job_dicts)
def get_jobs(not_yet_run=False, running=False, finished=False, **filter_data): """ Extra filter args for get_jobs: -not_yet_run: Include only jobs that have not yet started running. -running: Include only jobs that have start running but for which not all hosts have completed. -finished: Include only jobs for which all hosts have completed (or aborted). At most one of these three fields should be specified. """ filter_data['extra_args'] = rpc_utils.extra_job_filters(not_yet_run, running, finished) job_dicts = [] jobs = list(models.Job.query_objects(filter_data)) models.Job.objects.populate_relationships(jobs, models.Label, 'dependencies') models.Job.objects.populate_relationships(jobs, models.JobKeyval, 'keyvals') for job in jobs: job_dict = job.get_object_dict() job_dict['dependencies'] = ','.join(label.name for label in job.dependencies) job_dict['keyvals'] = dict((keyval.key, keyval.value) for keyval in job.keyvals) job_dicts.append(job_dict) return rpc_utils.prepare_for_serialization(job_dicts)
def get_num_jobs(not_yet_run=False, running=False, finished=False, **filter_data): """ See get_jobs() for documentation of extra filter parameters. """ filter_data['extra_args'] = rpc_utils.extra_job_filters(not_yet_run, running, finished) return models.Job.query_count(filter_data)