From 6570a6c6de8734dafd0d14895d4808ec05c6a4ee Mon Sep 17 00:00:00 2001 From: James Cammarata Date: Mon, 1 Dec 2014 14:59:25 -0600 Subject: [PATCH] Use additional vars when templating included file names Fixes #9669 --- lib/ansible/playbook/play.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/ansible/playbook/play.py b/lib/ansible/playbook/play.py index a9700b705be..882d174c0a5 100644 --- a/lib/ansible/playbook/play.py +++ b/lib/ansible/playbook/play.py @@ -619,8 +619,14 @@ class Play(object): dirname = self.basedir if original_file: dirname = os.path.dirname(original_file) - include_file = template(dirname, tokens[0], mv) + + # temp vars are used here to avoid trampling on the existing vars structures + temp_vars = utils.merge_hash(self.vars, self.vars_file_vars) + temp_vars = utils.merge_hash(temp_vars, mv) + temp_vars = utils.merge_hash(temp_vars, self.playbook.extra_vars) + include_file = template(dirname, tokens[0], temp_vars) include_filename = utils.path_dwim(dirname, include_file) + data = utils.parse_yaml_from_file(include_filename, vault_password=self.vault_password) if 'role_name' in x and data is not None: for y in data: