diff options
author | James Cammarata <jimi@sngx.net> | 2017-04-29 10:54:07 -0500 |
---|---|---|
committer | James Cammarata <jimi@sngx.net> | 2017-05-01 09:28:42 -0500 |
commit | 1f3c51d62899bbfd7811a433d2bf2c77c8619857 (patch) | |
tree | feaafb90f2d1df9228ae2d912de21e093b7af195 /lib/ansible/template/vars.py | |
parent | 1c11a35f70bc4aee40dfe1fdde7f151ea55eddc2 (diff) | |
download | ansible-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.py | 13 |
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 |