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

switched host patterns to use sets, simplified logic which now uses buitins

This commit is contained in:
Brian Coca 2015-11-05 15:02:06 -05:00
parent 883f451158
commit 8e2f0b3f2c
2 changed files with 5 additions and 6 deletions

View file

@ -252,7 +252,7 @@ class Inventory(object):
"""
patterns = Inventory.order_patterns(patterns)
hosts = []
hosts = set()
for p in patterns:
# avoid resolving a pattern that is a plain host
@ -261,12 +261,11 @@ class Inventory(object):
else:
that = self._match_one_pattern(p)
if p.startswith("!"):
hosts = [ h for h in hosts if h not in that ]
hosts = hosts.difference_update(that)
elif p.startswith("&"):
hosts = [ h for h in hosts if h in that ]
hosts = hosts.intersection_update(that)
else:
to_append = [ h for h in that if h.name not in [ y.name for y in hosts ] ]
hosts.extend(to_append)
hosts.update(that)
return hosts
def _match_one_pattern(self, pattern):

View file

@ -56,7 +56,7 @@ class HostVars(collections.Mapping):
new_host.set_variable("ansible_python_interpreter", sys.executable)
new_host.set_variable("ansible_connection", "local")
new_host.address = '127.0.0.1'
hosts.append(new_host)
hosts.add(new_host)
for host in hosts:
self._lookup[host.name] = host