diff --git a/lib/ansible/inventory/ini.py b/lib/ansible/inventory/ini.py index ddf1ba9534..4b1607d884 100644 --- a/lib/ansible/inventory/ini.py +++ b/lib/ansible/inventory/ini.py @@ -67,9 +67,10 @@ class InventoryParser(object): active_group_name = line.replace("[","").replace("]","").strip() if line.find(":vars") != -1 or line.find(":children") != -1: active_group_name = active_group_name.rsplit(":", 1)[0] - self.groups[active_group_name] = Group(name=active_group_name) + if active_group_name not in self.groups: + self.groups[active_group_name] = Group(name=active_group_name) active_group_name = None - else: + elif active_group_name not in self.groups: new_group = self.groups[active_group_name] = Group(name=active_group_name) all.add_child_group(new_group) elif line.startswith("#") or line == '': diff --git a/test/TestInventory.py b/test/TestInventory.py index 8985b1ec6b..5c444d9e96 100644 --- a/test/TestInventory.py +++ b/test/TestInventory.py @@ -142,7 +142,7 @@ class TestInventory(unittest.TestCase): print vars expected = dict( - a='1', b='2', c='3', d='100002', rga='1', rgb='2', rgc='3', + a='1', b='2', c='3', d='10002', rga='1', rgb='2', rgc='3', inventory_hostname='rtp_a', inventory_hostname_short='rtp_a', group_names=[ 'eastcoast', 'nc', 'redundantgroup', 'redundantgroup2', 'redundantgroup3', 'rtp', 'us' ] )