mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
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.module_utils.six import string_types
|
||||||
from ansible.template import Templar
|
from ansible.template import Templar
|
||||||
from ansible.utils.display import Display
|
from ansible.utils.display import Display
|
||||||
|
from ansible.utils.vars import combine_vars
|
||||||
|
|
||||||
display = Display()
|
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'''
|
''' helper to create complex groups for plugins based on jinja2 conditionals, hosts that meet the conditional are added to group'''
|
||||||
# process each 'group entry'
|
# process each 'group entry'
|
||||||
if groups and isinstance(groups, dict):
|
if groups and isinstance(groups, dict):
|
||||||
|
variables = combine_vars(variables, self.inventory.get_host(host).get_vars())
|
||||||
self.templar.set_available_variables(variables)
|
self.templar.set_available_variables(variables)
|
||||||
for group_name in groups:
|
for group_name in groups:
|
||||||
conditional = "{%% if %s %%} True {%% else %%} False {%% endif %%}" % groups[group_name]
|
conditional = "{%% if %s %%} True {%% else %%} False {%% endif %%}" % groups[group_name]
|
||||||
|
@ -389,6 +391,7 @@ class Constructable(object):
|
||||||
for keyed in keys:
|
for keyed in keys:
|
||||||
if keyed and isinstance(keyed, dict):
|
if keyed and isinstance(keyed, dict):
|
||||||
|
|
||||||
|
variables = combine_vars(variables, self.inventory.get_host(host).get_vars())
|
||||||
try:
|
try:
|
||||||
key = self._compose(keyed.get('key'), variables)
|
key = self._compose(keyed.get('key'), variables)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
Loading…
Reference in a new issue