From e59a724efa7bc495cc8f8f63513aa4f2206211b6 Mon Sep 17 00:00:00 2001 From: AlanCoding Date: Fri, 8 Dec 2017 13:17:22 -0500 Subject: [PATCH] fix bug that broke combining WFJT and node vars --- awx/main/models/workflow.py | 2 +- awx/main/tests/unit/models/test_workflow_unit.py | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/awx/main/models/workflow.py b/awx/main/models/workflow.py index 1a7f1b93eb..021a9672c6 100644 --- a/awx/main/models/workflow.py +++ b/awx/main/models/workflow.py @@ -219,7 +219,7 @@ class WorkflowJobNode(WorkflowNodeBase): if password_dict: data['survey_passwords'] = password_dict # process extra_vars - extra_vars = {} + extra_vars = data.get('extra_vars', {}) if aa_dict: functional_aa_dict = copy(aa_dict) functional_aa_dict.pop('_ansible_no_log', None) diff --git a/awx/main/tests/unit/models/test_workflow_unit.py b/awx/main/tests/unit/models/test_workflow_unit.py index af7be73f54..d3e0960507 100644 --- a/awx/main/tests/unit/models/test_workflow_unit.py +++ b/awx/main/tests/unit/models/test_workflow_unit.py @@ -112,6 +112,7 @@ def workflow_job_template_unit(): def jt_ask(job_template_factory): # note: factory sets ask_xxxx_on_launch to true for inventory & credential jt = job_template_factory(name='example-jt', persisted=False).job_template + jt.ask_variables_on_launch = True jt.ask_job_type_on_launch = True jt.ask_skip_tags_on_launch = True jt.ask_limit_on_launch = True @@ -203,11 +204,12 @@ class TestWorkflowJobNodeJobKWARGS: def test_null_kwargs(self, job_node_no_prompts): assert job_node_no_prompts.get_job_kwargs() == self.kwargs_base - def test_inherit_workflow_job_extra_vars(self, job_node_no_prompts): + def test_inherit_workflow_job_and_node_extra_vars(self, job_node_no_prompts): + job_node_no_prompts.extra_data = {"b": 98} workflow_job = job_node_no_prompts.workflow_job workflow_job.extra_vars = '{"a": 84}' assert job_node_no_prompts.get_job_kwargs() == dict( - extra_vars={'a': 84}, **self.kwargs_base) + extra_vars={'a': 84, 'b': 98}, **self.kwargs_base) def test_char_prompts_and_res_node_prompts(self, job_node_with_prompts): # TBD: properly handle multicred credential assignment