avoid hosts 'pre templated warnings' (#23878)
* avoid hosts 'pre templated warnings' fixed is_template failing on undefined fixes #23057 * py3 compat
This commit is contained in:
parent
74e385e43a
commit
a108f0fcd3
2 changed files with 8 additions and 3 deletions
|
@ -503,8 +503,8 @@ class Templar:
|
|||
''' lets us know if data has a template'''
|
||||
if isinstance(data, string_types):
|
||||
try:
|
||||
new = self.do_template(data)
|
||||
except UndefinedError:
|
||||
new = self.do_template(data, fail_on_undefined=True)
|
||||
except (AnsibleUndefinedVariable, UndefinedError):
|
||||
return True
|
||||
except:
|
||||
return False
|
||||
|
|
|
@ -429,8 +429,13 @@ class VariableManager:
|
|||
variables['inventory_dir'] = self._inventory.basedir()
|
||||
variables['inventory_file'] = self._inventory.src()
|
||||
if play:
|
||||
templar = Templar(loader=loader)
|
||||
if templar.is_template(play.hosts):
|
||||
pattern = 'all'
|
||||
else:
|
||||
pattern = play.hosts or 'all'
|
||||
# add the list of hosts in the play, as adjusted for limit/filters
|
||||
variables['ansible_play_hosts_all'] = [x.name for x in self._inventory.get_hosts(pattern=play.hosts or 'all', ignore_restrictions=True)]
|
||||
variables['ansible_play_hosts_all'] = [x.name for x in self._inventory.get_hosts(pattern=pattern, ignore_restrictions=True)]
|
||||
variables['ansible_play_hosts'] = [x for x in variables['ansible_play_hosts_all'] if x not in play._removed_hosts]
|
||||
variables['ansible_play_batch'] = [x.name for x in self._inventory.get_hosts() if x.name not in play._removed_hosts]
|
||||
|
||||
|
|
Loading…
Reference in a new issue