fix vars hostname fallback

also made it optimistic, rely on exceptions instead of copmlex if chains
This commit is contained in:
Brian Coca 2018-06-21 17:15:42 -04:00 committed by Brian Coca
parent 9a18385fab
commit 11dbed1350

View file

@ -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)