From 7ea9575e788ebad72fbfd4718818f91f1f7ad1bb Mon Sep 17 00:00:00 2001 From: AlanCoding Date: Fri, 23 Mar 2018 12:27:16 -0400 Subject: [PATCH] ignore workflow survey passwords when not applicable --- awx/main/models/unified_jobs.py | 3 +++ awx/main/tests/functional/models/test_job_launch_config.py | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/awx/main/models/unified_jobs.py b/awx/main/models/unified_jobs.py index 1ea372088c..08e5cecb1c 100644 --- a/awx/main/models/unified_jobs.py +++ b/awx/main/models/unified_jobs.py @@ -873,8 +873,11 @@ class UnifiedJob(PolymorphicModel, PasswordFieldsModel, CommonModelNameNotUnique JobLaunchConfig = self._meta.get_field('launch_config').related_model config = JobLaunchConfig(job=self) valid_fields = self.unified_job_template.get_ask_mapping().keys() + # Special cases allowed for workflows if hasattr(self, 'extra_vars'): valid_fields.extend(['survey_passwords', 'extra_vars']) + else: + kwargs.pop('survey_passwords', None) for field_name, value in kwargs.items(): if field_name not in valid_fields: raise Exception('Unrecognized launch config field {}.'.format(field_name)) diff --git a/awx/main/tests/functional/models/test_job_launch_config.py b/awx/main/tests/functional/models/test_job_launch_config.py index 1776bc0d09..9b7d75d7f9 100644 --- a/awx/main/tests/functional/models/test_job_launch_config.py +++ b/awx/main/tests/functional/models/test_job_launch_config.py @@ -48,6 +48,12 @@ class TestConfigCreation: config = job.launch_config assert set(config.credentials.all()) == set([credential]) + def test_survey_passwords_ignored(self, inventory_source): + iu = inventory_source.create_unified_job( + survey_passwords={'foo': '$encrypted$'} + ) + assert iu.launch_config.prompts_dict() == {} + @pytest.mark.django_db class TestConfigReversibility: