1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

Allow exclusion of hosts/groups

This commit is contained in:
Daniel Hokka Zakrisson 2012-06-15 11:01:30 +02:00
parent c0a5d91592
commit 3d5c93bf44

View file

@ -85,14 +85,21 @@ class Inventory(object):
patterns = pattern.replace(";",":").split(":") patterns = pattern.replace(";",":").split(":")
groups = self.get_groups() groups = self.get_groups()
for pat in patterns:
if pat.startswith("!"):
pat = pat[1:]
inverted = True
else:
inverted = False
for group in groups: for group in groups:
for host in group.get_hosts(): for host in group.get_hosts():
for pat in patterns:
if group.name == pat or pat == 'all' or self._match(host.name, pat): if group.name == pat or pat == 'all' or self._match(host.name, pat):
#must test explicitly for None because [] means no hosts allowed #must test explicitly for None because [] means no hosts allowed
if self._restriction==None: if self._restriction==None or host.name in self._restriction:
hosts[host.name] = host if inverted:
elif host.name in self._restriction: if host.name in hosts:
del hosts[host.name]
else:
hosts[host.name] = host hosts[host.name] = host
return sorted(hosts.values(), key=lambda x: x.name) return sorted(hosts.values(), key=lambda x: x.name)