diff --git a/lib/ansible/inventory.py b/lib/ansible/inventory.py index 21e11a1b47c..b707b1596ff 100644 --- a/lib/ansible/inventory.py +++ b/lib/ansible/inventory.py @@ -73,14 +73,14 @@ class Inventory(object): hosts = {} patterns = pattern.replace(";",":").split(":") - for group in self.get_groups(): - for host in group.get_hosts(): - for pat in patterns: - if group.name == pat or pat == 'all' or self._match(host.name, pat): - if not self._restriction: - hosts[host.name] = host - if self._restriction and host.name in self._restriction: - hosts[host.name] = host + for (groupname, group) in self.get_groups().items(): + for host in group.get_hosts(): + for pat in patterns: + if group.name == pat or pat == 'all' or self._match(host.name, pat): + if not self._restriction: + hosts[host.name] = host + if self._restriction and host.name in self._restriction: + hosts[host.name] = host return sorted(hosts.values(), key=lambda x: x.name) def get_groups(self): @@ -88,8 +88,8 @@ class Inventory(object): def get_host(self, hostname): for group in self.groups: - for host in group.get_hosts(): - if hostname == host.name: + for host in group.get_hosts(): + if hostname == host.name: return host return None