From 8cb5ce8307627ea94b20e147c3d6ec7abe515441 Mon Sep 17 00:00:00 2001 From: AlanCoding Date: Wed, 15 Nov 2017 22:32:29 -0500 Subject: [PATCH] prefetch UnifiedJob related credentials --- awx/main/access.py | 2 ++ awx/main/models/jobs.py | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/awx/main/access.py b/awx/main/access.py index afe461b397..1f92fd892f 100644 --- a/awx/main/access.py +++ b/awx/main/access.py @@ -1939,6 +1939,7 @@ class UnifiedJobTemplateAccess(BaseAccess): prefetch_related = ( 'last_job', 'current_job', + 'credentials__credential_type', Prefetch('labels', queryset=Label.objects.all().order_by('name')), ) @@ -1982,6 +1983,7 @@ class UnifiedJobAccess(BaseAccess): 'unified_job_node__workflow_job', 'unified_job_template', 'instance_group', + 'credentials__credential_type', Prefetch('labels', queryset=Label.objects.all().order_by('name')), ) diff --git a/awx/main/models/jobs.py b/awx/main/models/jobs.py index cc438bd013..67476d148c 100644 --- a/awx/main/models/jobs.py +++ b/awx/main/models/jobs.py @@ -185,9 +185,10 @@ class JobOptions(BaseModel): return cred.pk def get_deprecated_credential(self, kind): - try: - return self.credentials.filter(credential_type__kind=kind).first() - except IndexError: + for cred in self.credentials.all(): + if cred.credential_type.kind == kind: + return cred + else: return None # TODO: remove when API v1 is removed