mirror of
https://github.com/ansible/awx.git
synced 2026-05-16 05:47:38 -02:30
do not pass artifacts to non-job nodes
This commit is contained in:
@@ -264,12 +264,13 @@ class WorkflowJobNode(WorkflowNodeBase):
|
|||||||
data['survey_passwords'] = password_dict
|
data['survey_passwords'] = password_dict
|
||||||
# process extra_vars
|
# process extra_vars
|
||||||
extra_vars = data.get('extra_vars', {})
|
extra_vars = data.get('extra_vars', {})
|
||||||
if aa_dict:
|
if ujt_obj and isinstance(ujt_obj, (JobTemplate, WorkflowJobTemplate)):
|
||||||
functional_aa_dict = copy(aa_dict)
|
if aa_dict:
|
||||||
functional_aa_dict.pop('_ansible_no_log', None)
|
functional_aa_dict = copy(aa_dict)
|
||||||
extra_vars.update(functional_aa_dict)
|
functional_aa_dict.pop('_ansible_no_log', None)
|
||||||
# Workflow Job extra_vars higher precedence than ancestor artifacts
|
extra_vars.update(functional_aa_dict)
|
||||||
if ujt_obj and isinstance(ujt_obj, JobTemplate):
|
if ujt_obj and isinstance(ujt_obj, JobTemplate):
|
||||||
|
# Workflow Job extra_vars higher precedence than ancestor artifacts
|
||||||
if self.workflow_job and self.workflow_job.extra_vars:
|
if self.workflow_job and self.workflow_job.extra_vars:
|
||||||
extra_vars.update(self.workflow_job.extra_vars_dict)
|
extra_vars.update(self.workflow_job.extra_vars_dict)
|
||||||
if extra_vars:
|
if extra_vars:
|
||||||
|
|||||||
@@ -186,7 +186,7 @@ class TestWorkflowJob:
|
|||||||
assert nodes[0].failure_nodes.filter(id=nodes[3].id).exists()
|
assert nodes[0].failure_nodes.filter(id=nodes[3].id).exists()
|
||||||
assert nodes[3].failure_nodes.filter(id=nodes[4].id).exists()
|
assert nodes[3].failure_nodes.filter(id=nodes[4].id).exists()
|
||||||
|
|
||||||
def test_inherit_ancestor_artifacts_from_job(self, project, mocker):
|
def test_inherit_ancestor_artifacts_from_job(self, job_template, mocker):
|
||||||
"""
|
"""
|
||||||
Assure that nodes along the line of execution inherit artifacts
|
Assure that nodes along the line of execution inherit artifacts
|
||||||
from both jobs ran, and from the accumulation of old jobs
|
from both jobs ran, and from the accumulation of old jobs
|
||||||
@@ -197,13 +197,13 @@ class TestWorkflowJob:
|
|||||||
# Workflow job nodes
|
# Workflow job nodes
|
||||||
job_node = WorkflowJobNode.objects.create(workflow_job=wfj, job=job,
|
job_node = WorkflowJobNode.objects.create(workflow_job=wfj, job=job,
|
||||||
ancestor_artifacts={'a': 42})
|
ancestor_artifacts={'a': 42})
|
||||||
queued_node = WorkflowJobNode.objects.create(workflow_job=wfj)
|
queued_node = WorkflowJobNode.objects.create(workflow_job=wfj, unified_job_template=job_template)
|
||||||
# Connect old job -> new job
|
# Connect old job -> new job
|
||||||
mocker.patch.object(queued_node, 'get_parent_nodes', lambda: [job_node])
|
mocker.patch.object(queued_node, 'get_parent_nodes', lambda: [job_node])
|
||||||
assert queued_node.get_job_kwargs()['extra_vars'] == {'a': 42, 'b': 43}
|
assert queued_node.get_job_kwargs()['extra_vars'] == {'a': 42, 'b': 43}
|
||||||
assert queued_node.ancestor_artifacts == {'a': 42, 'b': 43}
|
assert queued_node.ancestor_artifacts == {'a': 42, 'b': 43}
|
||||||
|
|
||||||
def test_inherit_ancestor_artifacts_from_project_update(self, project, mocker):
|
def test_inherit_ancestor_artifacts_from_project_update(self, project, job_template, mocker):
|
||||||
"""
|
"""
|
||||||
Test that the existence of a project update (no artifacts) does
|
Test that the existence of a project update (no artifacts) does
|
||||||
not break the flow of ancestor_artifacts
|
not break the flow of ancestor_artifacts
|
||||||
@@ -214,7 +214,7 @@ class TestWorkflowJob:
|
|||||||
# Workflow job nodes
|
# Workflow job nodes
|
||||||
project_node = WorkflowJobNode.objects.create(workflow_job=wfj, job=update,
|
project_node = WorkflowJobNode.objects.create(workflow_job=wfj, job=update,
|
||||||
ancestor_artifacts={'a': 42, 'b': 43})
|
ancestor_artifacts={'a': 42, 'b': 43})
|
||||||
queued_node = WorkflowJobNode.objects.create(workflow_job=wfj)
|
queued_node = WorkflowJobNode.objects.create(workflow_job=wfj, unified_job_template=job_template)
|
||||||
# Connect project update -> new job
|
# Connect project update -> new job
|
||||||
mocker.patch.object(queued_node, 'get_parent_nodes', lambda: [project_node])
|
mocker.patch.object(queued_node, 'get_parent_nodes', lambda: [project_node])
|
||||||
assert queued_node.get_job_kwargs()['extra_vars'] == {'a': 42, 'b': 43}
|
assert queued_node.get_job_kwargs()['extra_vars'] == {'a': 42, 'b': 43}
|
||||||
|
|||||||
Reference in New Issue
Block a user