Mark implicitly hosts as such and exclude them from the all group
Fixes #16059
This commit is contained in:
parent
31f6e26009
commit
41dde7259b
3 changed files with 12 additions and 0 deletions
|
@ -439,10 +439,14 @@ class Inventory(object):
|
|||
for group in groups.values():
|
||||
if pattern == 'all':
|
||||
for host in group.get_hosts():
|
||||
if host.implicit:
|
||||
continue
|
||||
__append_host_to_results(host)
|
||||
else:
|
||||
if self._match(group.name, pattern) and group.name not in ('all', 'ungrouped'):
|
||||
for host in group.get_hosts():
|
||||
if host.implicit:
|
||||
continue
|
||||
__append_host_to_results(host)
|
||||
else:
|
||||
matching_hosts = self._match_list(group.get_hosts(), 'name', pattern)
|
||||
|
@ -457,6 +461,7 @@ class Inventory(object):
|
|||
def _create_implicit_localhost(self, pattern):
|
||||
new_host = Host(pattern)
|
||||
new_host.address = "127.0.0.1"
|
||||
new_host.implicit = True
|
||||
new_host.vars = self.get_host_vars(new_host)
|
||||
new_host.set_variable("ansible_connection", "local")
|
||||
if "ansible_python_interpreter" not in new_host.vars:
|
||||
|
|
|
@ -140,10 +140,14 @@ class Group:
|
|||
for kk in kid_hosts:
|
||||
if kk not in seen:
|
||||
seen[kk] = 1
|
||||
if self.name == 'all' and kk.implicit:
|
||||
continue
|
||||
hosts.append(kk)
|
||||
for mine in self.hosts:
|
||||
if mine not in seen:
|
||||
seen[mine] = 1
|
||||
if self.name == 'all' and mine.implicit:
|
||||
continue
|
||||
hosts.append(mine)
|
||||
return hosts
|
||||
|
||||
|
|
|
@ -60,6 +60,7 @@ class Host:
|
|||
uuid=self._uuid,
|
||||
gathered_facts=self._gathered_facts,
|
||||
groups=groups,
|
||||
implicit=self.implicit,
|
||||
)
|
||||
|
||||
def deserialize(self, data):
|
||||
|
@ -69,6 +70,7 @@ class Host:
|
|||
self.vars = data.get('vars', dict())
|
||||
self.address = data.get('address', '')
|
||||
self._uuid = data.get('uuid', uuid.uuid4())
|
||||
self.implicit= data.get('implicit', False)
|
||||
|
||||
groups = data.get('groups', [])
|
||||
for group_data in groups:
|
||||
|
@ -89,6 +91,7 @@ class Host:
|
|||
|
||||
self._gathered_facts = False
|
||||
self._uuid = uuid.uuid4()
|
||||
self.implicit = False
|
||||
|
||||
def __repr__(self):
|
||||
return self.get_name()
|
||||
|
|
Loading…
Reference in a new issue