From 2e2e5d53215196309ff1f1395f4265cdbd61be7e Mon Sep 17 00:00:00 2001 From: James Cammarata Date: Thu, 8 May 2014 13:09:36 -0500 Subject: [PATCH] Use the existing module_vars during the templating of module_vars Since some of the vars contained in there may be used in the templating of other variables. This also reverts e83a494 which originally fixed issue #6979 but broke some other variable related things. Fixes #6979 Fixes #7321 Fixes #7332 --- lib/ansible/playbook/play.py | 1 - lib/ansible/runner/__init__.py | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/ansible/playbook/play.py b/lib/ansible/playbook/play.py index 639f4c065b..b41c676a7b 100644 --- a/lib/ansible/playbook/play.py +++ b/lib/ansible/playbook/play.py @@ -855,5 +855,4 @@ class Play(object): # finally, update the VARS_CACHE for the host, if it is set if host is not None: - self.playbook.VARS_CACHE[host].update(self.vars) self.playbook.VARS_CACHE[host].update(self.playbook.extra_vars) diff --git a/lib/ansible/runner/__init__.py b/lib/ansible/runner/__init__.py index feda312456..7b943003f2 100644 --- a/lib/ansible/runner/__init__.py +++ b/lib/ansible/runner/__init__.py @@ -570,7 +570,10 @@ class Runner(object): hostvars = HostVars(combined_cache, self.inventory, vault_password=self.vault_pass) # use combined_cache and host_variables to template the module_vars + # we update the inject variables with the data we're about to template + # since some of the variables we'll be replacing may be contained there too module_vars_inject = utils.combine_vars(combined_cache.get(host, {}), host_variables) + module_vars_inject.update(self.module_vars) module_vars = template.template(self.basedir, self.module_vars, module_vars_inject) inject = {}