From 36f55d354932d5dd29f8ecf17a6d1338f11b13d7 Mon Sep 17 00:00:00 2001 From: Serge van Ginderachter Date: Wed, 5 Mar 2014 16:26:26 +0100 Subject: [PATCH] inventory directory parser: add host to group only once --- lib/ansible/inventory/dir.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/ansible/inventory/dir.py b/lib/ansible/inventory/dir.py index 37cc539044..39f45f0920 100644 --- a/lib/ansible/inventory/dir.py +++ b/lib/ansible/inventory/dir.py @@ -79,7 +79,10 @@ class InventoryDirectory(object): # note: depth numbers on duplicates may be bogus for k, v in host.vars.iteritems(): self.hosts[host.name].set_variable(k, v) - self.groups[name].add_host(self.hosts[host.name]) + # host can already exist from other source (same name, + # different object): + if host.name not in [h.name for h in self.groups[name].hosts]: + self.groups[name].add_host(self.hosts[host.name]) # This needs to be a second loop to ensure all the parent groups exist for name, group in parser.groups.iteritems():