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:
parent
4426b7f6e0
commit
f467f1770f
1 changed files with 6 additions and 1 deletions
|
@ -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)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue