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

Properly compare object references for Hosts when adding new ones

Fixes #13397
This commit is contained in:
James Cammarata 2015-12-03 15:25:54 -05:00
parent 4426b7f6e0
commit f467f1770f

View file

@ -192,6 +192,8 @@ class InventoryDirectory(object):
if group.name not in self.groups: if group.name not in self.groups:
# it's brand new, add him! # it's brand new, add him!
self.groups[group.name] = group self.groups[group.name] = group
# the Group class does not (yet) implement __eq__/__ne__,
# so unlike Host we do a regular comparison here
if self.groups[group.name] != group: if self.groups[group.name] != group:
# different object, merge # different object, merge
self._merge_groups(self.groups[group.name], group) self._merge_groups(self.groups[group.name], group)
@ -200,7 +202,10 @@ class InventoryDirectory(object):
if host.name not in self.hosts: if host.name not in self.hosts:
# Papa's got a brand new host # Papa's got a brand new host
self.hosts[host.name] = host self.hosts[host.name] = host
if self.hosts[host.name] != host: # because the __eq__/__ne__ methods in Host() compare the
# name fields rather than references, we use id() here to
# do the object comparison for merges
if id(self.hosts[host.name]) != id(host):
# different object, merge # different object, merge
self._merge_hosts(self.hosts[host.name], host) self._merge_hosts(self.hosts[host.name], host)