1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

Template parent include path before finding its dirname (#23202)

Given parent include path "{{ var | default('path/file.yml') }}"
os.path.dirname(parent_include_path) yields {{ var | default('path/
which is incorrect in itself but also causes templating errors
due to unbalanced quotes. Fix both problems by templating
parent include path before finding its dirname.
This commit is contained in:
Phil Nelson 2017-06-08 22:47:21 -06:00 committed by James Cammarata
parent 64a9794997
commit eb349cb201
2 changed files with 2 additions and 2 deletions

View file

@ -169,7 +169,7 @@ def load_list_of_tasks(ds, play, block=None, role=None, task_include=None, use_h
if not isinstance(parent_include, TaskInclude): if not isinstance(parent_include, TaskInclude):
parent_include = parent_include._parent parent_include = parent_include._parent
continue continue
parent_include_dir = templar.template(os.path.dirname(parent_include.args.get('_raw_params'))) parent_include_dir = os.path.dirname(templar.template(parent_include.args.get('_raw_params')))
if cumulative_path is None: if cumulative_path is None:
cumulative_path = parent_include_dir cumulative_path = parent_include_dir
elif not os.path.isabs(cumulative_path): elif not os.path.isabs(cumulative_path):

View file

@ -101,7 +101,7 @@ class IncludedFile:
if not isinstance(parent_include, TaskInclude): if not isinstance(parent_include, TaskInclude):
parent_include = parent_include._parent parent_include = parent_include._parent
continue continue
parent_include_dir = templar.template(os.path.dirname(parent_include.args.get('_raw_params'))) parent_include_dir = os.path.dirname(templar.template(parent_include.args.get('_raw_params')))
if cumulative_path is None: if cumulative_path is None:
cumulative_path = parent_include_dir cumulative_path = parent_include_dir
elif not os.path.isabs(cumulative_path): elif not os.path.isabs(cumulative_path):