summaryrefslogtreecommitdiff
path: root/lib/ansible/template/vars.py
diff options
context:
space:
mode:
authorJames Cammarata <jimi@sngx.net>2017-04-29 10:54:07 -0500
committerJames Cammarata <jimi@sngx.net>2017-05-01 09:28:42 -0500
commit1f3c51d62899bbfd7811a433d2bf2c77c8619857 (patch)
treefeaafb90f2d1df9228ae2d912de21e093b7af195 /lib/ansible/template/vars.py
parent1c11a35f70bc4aee40dfe1fdde7f151ea55eddc2 (diff)
downloadansible-variable_manager_redux.tar.gz
Create and use get_var() for fetching single varsvariable_manager_redux
This change turns VariableManager more into a dict-like interface, to remove the copying and merging of variables as get_vars() does.
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