summaryrefslogtreecommitdiff
path: root/lib/ansible/template/vars.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ansible/template/vars.py')
-rw-r--r--lib/ansible/template/vars.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/ansible/template/vars.py b/lib/ansible/template/vars.py
index bc36046a10..bc7bc34c12 100644
--- a/lib/ansible/template/vars.py
+++ b/lib/ansible/template/vars.py
@@ -58,6 +58,11 @@ class AnsibleJ2Vars:
self._locals[key] = val
def __contains__(self, k):
+ try:
+ if self._templar._variable_manager and k in self._templar._variable_manager:
+ return True
+ except KeyError:
+ pass
if k in self._templar._available_variables:
return True
if k in self._locals:
@@ -70,7 +75,8 @@ class AnsibleJ2Vars:
return False
def __getitem__(self, varname):
- if varname not in self._templar._available_variables:
+ exists = (self._templar._variable_manager and varname in self._templar._variable_manager) or varname in self._templar._available_variables
+ if not exists:
if varname in self._locals:
return self._locals[varname]
for i in self._extras:
@@ -81,7 +87,10 @@ class AnsibleJ2Vars:
else:
raise KeyError("undefined variable: %s" % varname)
- variable = self._templar._available_variables[varname]
+ if self._templar._variable_manager:
+ variable = self._templar._variable_manager[varname]
+ else:
+ variable = self._templar._available_variables[varname]
# HostVars is special, return it as-is, as is the special variable
# 'vars', which contains the vars structure