fix 'ungrouped' issue with some inventory formats

This commit is contained in:
Brian Coca 2017-03-07 11:57:20 -05:00 committed by Brian Coca
parent 20bf02f6b9
commit c4cff44e77
3 changed files with 15 additions and 0 deletions

View file

@ -170,6 +170,11 @@ class Inventory(object):
host.vars = combine_vars(host.vars, self.get_host_variables(host.name))
self.get_host_vars(host)
# clear ungrouped of any incorrectly stored by parser
mygroups = host.get_groups()
if len(mygroups) > 2 and ungrouped in mygroups:
host.remove_group(ungrouped)
def _match(self, str, pattern_str):
try:
if pattern_str.startswith('~'):

View file

@ -114,6 +114,12 @@ class Group:
host.add_group(self)
self.clear_hosts_cache()
def remove_host(self, host):
self.hosts.remove(host)
host.remove_group(self)
self.clear_hosts_cache()
def set_variable(self, key, value):
self.vars[key] = value

View file

@ -110,6 +110,10 @@ class Host:
self.groups.append(group)
def remove_group(self, group):
self.groups.remove(group)
def set_variable(self, key, value):
self.vars[key]=value