add support of nested groups in group_by

This commit is contained in:
mesk41in 2017-07-04 17:51:05 +03:00 committed by Brian Coca
parent 7351ee9a76
commit 0fb64214a4
4 changed files with 46 additions and 6 deletions

View file

@ -632,12 +632,17 @@ class StrategyBase:
# host object from the master inventory
real_host = self._inventory.hosts[host.name]
group_name = result_item.get('add_group')
parent_group_names = result_item.get('parent_groups', [])
if group_name not in self._inventory.groups:
# create the new group and add it to inventory
self._inventory.add_group(group_name)
changed = True
for name in [group_name] + parent_group_names:
if name not in self._inventory.groups:
# create the new group and add it to inventory
self._inventory.add_group(name)
changed = True
group = self._inventory.groups[group_name]
for parent_group_name in parent_group_names:
parent_group = self._inventory.groups[parent_group_name]
parent_group.add_child_group(group)
if real_host.name not in group.get_hosts():
group.add_host(real_host)