diff --git a/awx/main/scheduler/__init__.py b/awx/main/scheduler/__init__.py index f99e7247cb..b02aa56e0a 100644 --- a/awx/main/scheduler/__init__.py +++ b/awx/main/scheduler/__init__.py @@ -46,11 +46,12 @@ class TaskManager(): return False def get_tasks(self, status_list=('pending', 'waiting', 'running')): - jobs = [j for j in Job.objects.filter(status__in=status_list)] - inventory_updates = [i for i in InventoryUpdate.objects.filter(status__in=status_list)] - project_updates = [p for p in ProjectUpdate.objects.filter(status__in=status_list)] - system_jobs = [s for s in SystemJob.objects.filter(status__in=status_list)] - ad_hoc_commands = [a for a in AdHocCommand.objects.filter(status__in=status_list)] + jobs = [j for j in Job.objects.filter(status__in=status_list).prefetch_related('instance_group')] + inventory_updates_qs = InventoryUpdate.objects.filter(status__in=status_list).prefetch_related('inventory_source', 'instance_group') + inventory_updates = [i for i in inventory_updates_qs] + project_updates = [p for p in ProjectUpdate.objects.filter(status__in=status_list).prefetch_related('instance_group')] + system_jobs = [s for s in SystemJob.objects.filter(status__in=status_list).prefetch_related('instance_group')] + ad_hoc_commands = [a for a in AdHocCommand.objects.filter(status__in=status_list).prefetch_related('instance_group')] workflow_jobs = [w for w in WorkflowJob.objects.filter(status__in=status_list)] all_tasks = sorted(jobs + project_updates + inventory_updates + system_jobs + ad_hoc_commands + workflow_jobs, key=lambda task: task.created)