From 2c529f50af20c45dacc48ac2cb02cb28972977af Mon Sep 17 00:00:00 2001 From: Jim Ladd Date: Wed, 24 Feb 2021 10:57:34 -0800 Subject: [PATCH] Update querysets for remaining job event views - search should use job creation date so that only the table partition with the relevant job events is searched --- awx/api/views/__init__.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/awx/api/views/__init__.py b/awx/api/views/__init__.py index a94e98ea39..44baa1020a 100644 --- a/awx/api/views/__init__.py +++ b/awx/api/views/__init__.py @@ -883,6 +883,11 @@ class ProjectUpdateEventsList(SubListAPIView): response['X-UI-Max-Events'] = settings.MAX_UI_JOB_EVENTS return super(ProjectUpdateEventsList, self).finalize_response(request, response, *args, **kwargs) + def get_queryset(self): + job = self.get_parent_object() + self.check_parent_access(job) + qs = job.job_events.select_related('host').filter(job_created=job.created).order_by('start_line') + return qs.all() class SystemJobEventsList(SubListAPIView): @@ -897,6 +902,11 @@ class SystemJobEventsList(SubListAPIView): response['X-UI-Max-Events'] = settings.MAX_UI_JOB_EVENTS return super(SystemJobEventsList, self).finalize_response(request, response, *args, **kwargs) + def get_queryset(self): + job = self.get_parent_object() + self.check_parent_access(job) + qs = job.job_events.select_related('host').filter(job_created=job.created).order_by('start_line') + return qs.all() class ProjectUpdateCancel(RetrieveAPIView): @@ -3799,7 +3809,7 @@ class HostJobEventsList(BaseJobEventsList): def get_queryset(self): parent_obj = self.get_parent_object() self.check_parent_access(parent_obj) - qs = self.request.user.get_queryset(self.model).filter(host=parent_obj) + qs = self.request.user.get_queryset(self.model).filter(host=parent_obj, job_created=parent_obj.created) return qs @@ -3995,6 +4005,12 @@ class BaseAdHocCommandEventsList(NoTruncateMixin, SubListAPIView): name = _('Ad Hoc Command Events List') search_fields = ('stdout',) + def get_queryset(self): + job = self.get_parent_object() + self.check_parent_access(job) + qs = job.job_events.select_related('host').filter(job_created=job.created).order_by('start_line') + return qs.all() + class HostAdHocCommandEventsList(BaseAdHocCommandEventsList):