diff options
author | James Cammarata <jimi@sngx.net> | 2016-08-01 14:10:02 -0500 |
---|---|---|
committer | James Cammarata <jimi@sngx.net> | 2016-08-08 15:58:46 -0500 |
commit | 06d4f4ad0e8f62c6b02b01833b94a0e44be008d0 (patch) | |
tree | 07113056312a231afd52c72ea47d983a801c9f59 /lib/ansible/playbook/included_file.py | |
parent | d2b3b2c03e2934b126f5701e5f6e25821e2dbe35 (diff) | |
download | ansible-06d4f4ad0e8f62c6b02b01833b94a0e44be008d0.tar.gz |
Move tasks/blocks to a single parent model
Diffstat (limited to 'lib/ansible/playbook/included_file.py')
-rw-r--r-- | lib/ansible/playbook/included_file.py | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/lib/ansible/playbook/included_file.py b/lib/ansible/playbook/included_file.py index b6992d2738..8303537d82 100644 --- a/lib/ansible/playbook/included_file.py +++ b/lib/ansible/playbook/included_file.py @@ -22,6 +22,7 @@ __metaclass__ = type import os from ansible.errors import AnsibleError +from ansible.playbook.task_include import TaskInclude from ansible.template import Templar try: @@ -86,16 +87,20 @@ class IncludedFile: if loop_var in include_result: task_vars[loop_var] = include_variables[loop_var] = include_result[loop_var] + include_file = None if original_task: if original_task.static: continue - if original_task._task_include: + if original_task._parent: # handle relative includes by walking up the list of parent include # tasks and checking the relative result to see if it exists - parent_include = original_task._task_include + parent_include = original_task._parent cumulative_path = None while parent_include is not None: + if not isinstance(parent_include, TaskInclude): + parent_include = parent_include._parent + continue parent_include_dir = templar.template(os.path.dirname(parent_include.args.get('_raw_params'))) if cumulative_path is None: cumulative_path = parent_include_dir @@ -111,14 +116,14 @@ class IncludedFile: if os.path.exists(include_file): break else: - parent_include = parent_include._task_include - elif original_task._role: + parent_include = parent_include._parent + + if include_file is None: + if original_task._role: include_target = templar.template(include_result['include']) include_file = loader.path_dwim_relative(original_task._role._role_path, 'tasks', include_target) else: include_file = loader.path_dwim(include_result['include']) - else: - include_file = loader.path_dwim(include_result['include']) include_file = templar.template(include_file) inc_file = IncludedFile(include_file, include_variables, original_task) |