mirror of
https://github.com/ansible/awx.git
synced 2026-02-23 14:05:59 -03:30
defer loading Job.artifacts on host views to improve performance
see: https://github.com/ansible/awx/issues/8006 this data can be *really* large, and we don't actually need it for the summary fields on this API endpoint
This commit is contained in:
@@ -1702,7 +1702,10 @@ class HostSerializer(BaseSerializerWithVariables):
|
|||||||
'type': j.job.job_type_name,
|
'type': j.job.job_type_name,
|
||||||
'status': j.job.status,
|
'status': j.job.status,
|
||||||
'finished': j.job.finished,
|
'finished': j.job.finished,
|
||||||
} for j in obj.job_host_summaries.select_related('job__job_template').order_by('-created')[:5]])
|
} for j in obj.job_host_summaries.select_related('job__job_template').order_by('-created').defer(
|
||||||
|
'job__extra_vars',
|
||||||
|
'job__artifacts',
|
||||||
|
)[:5]])
|
||||||
return d
|
return d
|
||||||
|
|
||||||
def _get_host_port_from_name(self, name):
|
def _get_host_port_from_name(self, name):
|
||||||
|
|||||||
@@ -48,7 +48,13 @@ class HostManager(models.Manager):
|
|||||||
"""When the parent instance of the host query set has a `kind=smart` and a `host_filter`
|
"""When the parent instance of the host query set has a `kind=smart` and a `host_filter`
|
||||||
set. Use the `host_filter` to generate the queryset for the hosts.
|
set. Use the `host_filter` to generate the queryset for the hosts.
|
||||||
"""
|
"""
|
||||||
qs = super(HostManager, self).get_queryset()
|
qs = super(HostManager, self).get_queryset().defer(
|
||||||
|
'last_job__extra_vars',
|
||||||
|
'last_job_host_summary__job__extra_vars',
|
||||||
|
'last_job__artifacts',
|
||||||
|
'last_job_host_summary__job__artifacts',
|
||||||
|
)
|
||||||
|
|
||||||
if (hasattr(self, 'instance') and
|
if (hasattr(self, 'instance') and
|
||||||
hasattr(self.instance, 'host_filter') and
|
hasattr(self.instance, 'host_filter') and
|
||||||
hasattr(self.instance, 'kind')):
|
hasattr(self.instance, 'kind')):
|
||||||
|
|||||||
Reference in New Issue
Block a user