use composed vars in constructed groups (#53152)
* changelog * combine provided variables and host vars inside of constructing groups to take into account composed variables let composed variables "win" * fix whitespace * Allow user to control hash behavior
This commit is contained in:
parent
32c337ee39
commit
4172d68dc3
2 changed files with 5 additions and 0 deletions
|
@ -0,0 +1,2 @@
|
|||
bugfixes:
|
||||
- inventory plugins - Fix creating groups from composed variables by getting the latest host variables
|
|
@ -34,6 +34,7 @@ from ansible.module_utils.parsing.convert_bool import boolean
|
|||
from ansible.module_utils.six import string_types
|
||||
from ansible.template import Templar
|
||||
from ansible.utils.display import Display
|
||||
from ansible.utils.vars import combine_vars
|
||||
|
||||
display = Display()
|
||||
|
||||
|
@ -366,6 +367,7 @@ class Constructable(object):
|
|||
''' helper to create complex groups for plugins based on jinja2 conditionals, hosts that meet the conditional are added to group'''
|
||||
# process each 'group entry'
|
||||
if groups and isinstance(groups, dict):
|
||||
variables = combine_vars(variables, self.inventory.get_host(host).get_vars())
|
||||
self.templar.set_available_variables(variables)
|
||||
for group_name in groups:
|
||||
conditional = "{%% if %s %%} True {%% else %%} False {%% endif %%}" % groups[group_name]
|
||||
|
@ -389,6 +391,7 @@ class Constructable(object):
|
|||
for keyed in keys:
|
||||
if keyed and isinstance(keyed, dict):
|
||||
|
||||
variables = combine_vars(variables, self.inventory.get_host(host).get_vars())
|
||||
try:
|
||||
key = self._compose(keyed.get('key'), variables)
|
||||
except Exception as e:
|
||||
|
|
Loading…
Reference in a new issue