Error on empty group/host name (#42584)
* error on false host/group name
(cherry picked from commit 12a8363fae
)
This commit is contained in:
parent
0aa5d8ed45
commit
460183ce47
2 changed files with 44 additions and 36 deletions
2
changelogs/fragments/empty_gh_error.yaml
Normal file
2
changelogs/fragments/empty_gh_error.yaml
Normal file
|
@ -0,0 +1,2 @@
|
|||
bugfixes:
|
||||
- emtpy host/group name is an error https://github.com/ansible/ansible/issues/42044
|
|
@ -161,13 +161,16 @@ class InventoryData(object):
|
|||
def add_group(self, group):
|
||||
''' adds a group to inventory if not there already '''
|
||||
|
||||
if group not in self.groups:
|
||||
g = Group(group)
|
||||
self.groups[group] = g
|
||||
self._groups_dict_cache = {}
|
||||
display.debug("Added group %s to inventory" % group)
|
||||
if group:
|
||||
if group not in self.groups:
|
||||
g = Group(group)
|
||||
self.groups[group] = g
|
||||
self._groups_dict_cache = {}
|
||||
display.debug("Added group %s to inventory" % group)
|
||||
else:
|
||||
display.debug("group %s already in inventory" % group)
|
||||
else:
|
||||
display.debug("group %s already in inventory" % group)
|
||||
raise AnsibleError("Invalid empty/false group name provided: %s" % group)
|
||||
|
||||
def remove_group(self, group):
|
||||
|
||||
|
@ -183,38 +186,41 @@ class InventoryData(object):
|
|||
def add_host(self, host, group=None, port=None):
|
||||
''' adds a host to inventory and possibly a group if not there already '''
|
||||
|
||||
g = None
|
||||
if group:
|
||||
if group in self.groups:
|
||||
g = self.groups[group]
|
||||
else:
|
||||
raise AnsibleError("Could not find group %s in inventory" % group)
|
||||
|
||||
if host not in self.hosts:
|
||||
h = Host(host, port)
|
||||
self.hosts[host] = h
|
||||
if self.current_source: # set to 'first source' in which host was encountered
|
||||
self.set_variable(host, 'inventory_file', self.current_source)
|
||||
self.set_variable(host, 'inventory_dir', basedir(self.current_source))
|
||||
else:
|
||||
self.set_variable(host, 'inventory_file', None)
|
||||
self.set_variable(host, 'inventory_dir', None)
|
||||
display.debug("Added host %s to inventory" % (host))
|
||||
|
||||
# set default localhost from inventory to avoid creating an implicit one. Last localhost defined 'wins'.
|
||||
if host in C.LOCALHOST:
|
||||
if self.localhost is None:
|
||||
self.localhost = self.hosts[host]
|
||||
display.vvvv("Set default localhost to %s" % h)
|
||||
if host:
|
||||
g = None
|
||||
if group:
|
||||
if group in self.groups:
|
||||
g = self.groups[group]
|
||||
else:
|
||||
display.warning("A duplicate localhost-like entry was found (%s). First found localhost was %s" % (h, self.localhost.name))
|
||||
else:
|
||||
h = self.hosts[host]
|
||||
raise AnsibleError("Could not find group %s in inventory" % group)
|
||||
|
||||
if g:
|
||||
g.add_host(h)
|
||||
self._groups_dict_cache = {}
|
||||
display.debug("Added host %s to group %s" % (host, group))
|
||||
if host not in self.hosts:
|
||||
h = Host(host, port)
|
||||
self.hosts[host] = h
|
||||
if self.current_source: # set to 'first source' in which host was encountered
|
||||
self.set_variable(host, 'inventory_file', self.current_source)
|
||||
self.set_variable(host, 'inventory_dir', basedir(self.current_source))
|
||||
else:
|
||||
self.set_variable(host, 'inventory_file', None)
|
||||
self.set_variable(host, 'inventory_dir', None)
|
||||
display.debug("Added host %s to inventory" % (host))
|
||||
|
||||
# set default localhost from inventory to avoid creating an implicit one. Last localhost defined 'wins'.
|
||||
if host in C.LOCALHOST:
|
||||
if self.localhost is None:
|
||||
self.localhost = self.hosts[host]
|
||||
display.vvvv("Set default localhost to %s" % h)
|
||||
else:
|
||||
display.warning("A duplicate localhost-like entry was found (%s). First found localhost was %s" % (h, self.localhost.name))
|
||||
else:
|
||||
h = self.hosts[host]
|
||||
|
||||
if g:
|
||||
g.add_host(h)
|
||||
self._groups_dict_cache = {}
|
||||
display.debug("Added host %s to group %s" % (host, group))
|
||||
else:
|
||||
raise AnsibleError("Invalid empty host name provided: %s" % host)
|
||||
|
||||
def remove_host(self, host):
|
||||
|
||||
|
|
Loading…
Reference in a new issue