From 11dbed1350b81e7959beb5c55118d3bcce793cd5 Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Thu, 21 Jun 2018 17:15:42 -0400 Subject: [PATCH] fix vars hostname fallback also made it optimistic, rely on exceptions instead of copmlex if chains --- lib/ansible/plugins/lookup/vars.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/ansible/plugins/lookup/vars.py b/lib/ansible/plugins/lookup/vars.py index 9ce5d30467..a9dad34f24 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)