diff options
author | Brian Coca <brian.coca+git@gmail.com> | 2018-06-21 17:15:42 -0400 |
---|---|---|
committer | Matt Clay <matt@mystile.com> | 2018-06-25 11:23:52 -0700 |
commit | 8fafecc97934356cf221944b90fce80dc87280b6 (patch) | |
tree | 0e9228098e1c3d78863a867dbc0c6024440a5d87 | |
parent | 1fe98e3066620506ae2fa9a1f540ca88c2957659 (diff) | |
download | ansible-8fafecc97934356cf221944b90fce80dc87280b6.tar.gz |
fix vars hostname fallback
also made it optimistic, rely on exceptions instead of copmlex if chains
(cherry picked from commit 11dbed1350b81e7959beb5c55118d3bcce793cd5)
-rw-r--r-- | changelogs/fragments/vars_lk.yml | 2 | ||||
-rw-r--r-- | lib/ansible/plugins/lookup/vars.py | 14 |
2 files changed, 9 insertions, 7 deletions
diff --git a/changelogs/fragments/vars_lk.yml b/changelogs/fragments/vars_lk.yml new file mode 100644 index 0000000000..56f38a3510 --- /dev/null +++ b/changelogs/fragments/vars_lk.yml @@ -0,0 +1,2 @@ +bugfixes: + - correctly check hostvars for vars term https://github.com/ansible/ansible/pull/41819 diff --git a/lib/ansible/plugins/lookup/vars.py b/lib/ansible/plugins/lookup/vars.py index fd6d23b5b6..1b1ca60464 100644 --- a/lib/ansible/plugins/lookup/vars.py +++ b/lib/ansible/plugins/lookup/vars.py @@ -78,15 +78,15 @@ class LookupModule(LookupBase): raise AnsibleError('Invalid setting identifier, "%s" is not a string, its a %s' % (term, type(term))) try: - if term in myvars: + try: value = myvars[term] - elif 'hostvars' in myvars and term in myvars['hostvars']: - # maybe it is a host var? - value = myvars['hostvars'][term] - else: - raise AnsibleUndefinedVariable('No variable found with this name: %s' % term) - ret.append(self._templar.template(value, fail_on_undefined=True)) + except KeyError: + try: + value = myvars['hostvars'][myvars['inventory_hostname']][term] + except KeyError: + raise AnsibleUndefinedVariable('No variable found with this name: %s' % term) + ret.append(self._templar.template(value, fail_on_undefined=True)) except AnsibleUndefinedVariable: if default is not None: ret.append(default) |