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