From 7590301ae74db5d37f1afc40ebe89f366af61a76 Mon Sep 17 00:00:00 2001 From: Lila Date: Mon, 7 Nov 2022 14:44:42 -0500 Subject: [PATCH 1/5] Fix for incorrect error messages on incomplete credentials. --- awx/main/models/unified_jobs.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/awx/main/models/unified_jobs.py b/awx/main/models/unified_jobs.py index bd254fc182..40132dc2ab 100644 --- a/awx/main/models/unified_jobs.py +++ b/awx/main/models/unified_jobs.py @@ -1345,15 +1345,17 @@ class UnifiedJob( # verify that any associated credentials aren't missing required field data missing_credential_inputs = [] + credential_name = "" for credential in self.credentials.all(): defined_fields = credential.credential_type.defined_fields for required in credential.credential_type.inputs.get('required', []): if required in defined_fields and not credential.has_input(required): missing_credential_inputs.append(required) + credential_name = credential.name if missing_credential_inputs: self.job_explanation = '{} cannot start because Credential {} does not provide one or more required fields ({}).'.format( - self._meta.verbose_name.title(), credential.name, ', '.join(sorted(missing_credential_inputs)) + self._meta.verbose_name.title(), credential_name, ', '.join(sorted(missing_credential_inputs)) ) self.save(update_fields=['job_explanation']) return (False, None) From 4b0e7a5cdec4023446013a656adfcbb30990dfdb Mon Sep 17 00:00:00 2001 From: Lila Date: Tue, 22 Nov 2022 11:40:56 -0500 Subject: [PATCH 2/5] Fixed indentation on messaging code block. --- awx/main/models/unified_jobs.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/awx/main/models/unified_jobs.py b/awx/main/models/unified_jobs.py index 40132dc2ab..a9ab3abe0c 100644 --- a/awx/main/models/unified_jobs.py +++ b/awx/main/models/unified_jobs.py @@ -1353,12 +1353,12 @@ class UnifiedJob( missing_credential_inputs.append(required) credential_name = credential.name - if missing_credential_inputs: - self.job_explanation = '{} cannot start because Credential {} does not provide one or more required fields ({}).'.format( - self._meta.verbose_name.title(), credential_name, ', '.join(sorted(missing_credential_inputs)) - ) - self.save(update_fields=['job_explanation']) - return (False, None) + if missing_credential_inputs: + self.job_explanation = '{} cannot start because Credential {} does not provide one or more required fields ({}).'.format( + self._meta.verbose_name.title(), credential_name, ', '.join(sorted(missing_credential_inputs)) + ) + self.save(update_fields=['job_explanation']) + return (False, None) needed = self.get_passwords_needed_to_start() try: From 7866135d6cf903ef5c89e2e851e4f12c357d3115 Mon Sep 17 00:00:00 2001 From: Lila Date: Mon, 28 Nov 2022 15:26:23 -0500 Subject: [PATCH 3/5] Indented block and removed credential_name. --- awx/main/models/unified_jobs.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/awx/main/models/unified_jobs.py b/awx/main/models/unified_jobs.py index a9ab3abe0c..01f8f084f1 100644 --- a/awx/main/models/unified_jobs.py +++ b/awx/main/models/unified_jobs.py @@ -1351,14 +1351,13 @@ class UnifiedJob( for required in credential.credential_type.inputs.get('required', []): if required in defined_fields and not credential.has_input(required): missing_credential_inputs.append(required) - credential_name = credential.name - if missing_credential_inputs: - self.job_explanation = '{} cannot start because Credential {} does not provide one or more required fields ({}).'.format( - self._meta.verbose_name.title(), credential_name, ', '.join(sorted(missing_credential_inputs)) - ) - self.save(update_fields=['job_explanation']) - return (False, None) + if missing_credential_inputs: + self.job_explanation = '{} cannot start because Credential {} does not provide one or more required fields ({}).'.format( + self._meta.verbose_name.title(), credential.name, ', '.join(sorted(missing_credential_inputs)) + ) + self.save(update_fields=['job_explanation']) + return (False, None) needed = self.get_passwords_needed_to_start() try: From ae79f94a48bc45990d3088bb1250b85c169746b3 Mon Sep 17 00:00:00 2001 From: Lila Date: Tue, 29 Nov 2022 15:38:06 -0500 Subject: [PATCH 4/5] Decreased indentation of messaging block and removed credential_name since we are no longer using that var. --- awx/main/models/unified_jobs.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/awx/main/models/unified_jobs.py b/awx/main/models/unified_jobs.py index 01f8f084f1..d0158e6035 100644 --- a/awx/main/models/unified_jobs.py +++ b/awx/main/models/unified_jobs.py @@ -1345,19 +1345,18 @@ class UnifiedJob( # verify that any associated credentials aren't missing required field data missing_credential_inputs = [] - credential_name = "" for credential in self.credentials.all(): defined_fields = credential.credential_type.defined_fields for required in credential.credential_type.inputs.get('required', []): if required in defined_fields and not credential.has_input(required): missing_credential_inputs.append(required) - if missing_credential_inputs: - self.job_explanation = '{} cannot start because Credential {} does not provide one or more required fields ({}).'.format( - self._meta.verbose_name.title(), credential.name, ', '.join(sorted(missing_credential_inputs)) - ) - self.save(update_fields=['job_explanation']) - return (False, None) + if missing_credential_inputs: + self.job_explanation = '{} cannot start because Credential {} does not provide one or more required fields ({}).'.format( + self._meta.verbose_name.title(), credential.name, ', '.join(sorted(missing_credential_inputs)) + ) + self.save(update_fields=['job_explanation']) + return (False, None) needed = self.get_passwords_needed_to_start() try: From a8fdb22ab37270d5122003b325dad9869ebe910e Mon Sep 17 00:00:00 2001 From: Lila Date: Tue, 29 Nov 2022 16:10:02 -0500 Subject: [PATCH 5/5] Fixed indentation of 1354-1357. --- awx/main/models/unified_jobs.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/awx/main/models/unified_jobs.py b/awx/main/models/unified_jobs.py index d0158e6035..6e99978198 100644 --- a/awx/main/models/unified_jobs.py +++ b/awx/main/models/unified_jobs.py @@ -1351,10 +1351,10 @@ class UnifiedJob( if required in defined_fields and not credential.has_input(required): missing_credential_inputs.append(required) - if missing_credential_inputs: - self.job_explanation = '{} cannot start because Credential {} does not provide one or more required fields ({}).'.format( - self._meta.verbose_name.title(), credential.name, ', '.join(sorted(missing_credential_inputs)) - ) + if missing_credential_inputs: + self.job_explanation = '{} cannot start because Credential {} does not provide one or more required fields ({}).'.format( + self._meta.verbose_name.title(), credential.name, ', '.join(sorted(missing_credential_inputs)) + ) self.save(update_fields=['job_explanation']) return (False, None)