From 8e2f0b3f2c9b4ce31ea93701fe9a878d00d92cb3 Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Thu, 5 Nov 2015 15:02:06 -0500 Subject: [PATCH] switched host patterns to use sets, simplified logic which now uses buitins --- lib/ansible/inventory/__init__.py | 9 ++++----- lib/ansible/vars/hostvars.py | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/ansible/inventory/__init__.py b/lib/ansible/inventory/__init__.py index a967553385..a984a99ec1 100644 --- a/lib/ansible/inventory/__init__.py +++ b/lib/ansible/inventory/__init__.py @@ -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): diff --git a/lib/ansible/vars/hostvars.py b/lib/ansible/vars/hostvars.py index 9f83342be3..aeecc326ee 100644 --- a/lib/ansible/vars/hostvars.py +++ b/lib/ansible/vars/hostvars.py @@ -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