Fix bug in updating inventory file from an existing inventory
While updating inventory from an existing to new, if a service newly enabled or its group changed, its not getting reflected in new inventory file. So, added checks few checks in upgrade path. Change-Id: I276f051c82db9d539ae3b0e156957b6dacfe2968
This commit is contained in:
parent
6aaa28f83a
commit
46a09f1b18
|
@ -108,6 +108,18 @@ class Inventory(object):
|
|||
for servicename, service in ansible_inventory.services.items():
|
||||
if servicename not in self._services:
|
||||
self._services[servicename] = service
|
||||
else:
|
||||
# If Service newly enabled/disabled, take the latest
|
||||
if self._services[servicename].is_supported() != \
|
||||
service.is_supported():
|
||||
self._services[servicename].set_supported(
|
||||
service.is_supported())
|
||||
|
||||
# If Service group changed, take the latest
|
||||
if sorted(self._services[servicename].get_groupnames()) != \
|
||||
sorted(service.get_groupnames()):
|
||||
self._services[servicename].set_groupnames(
|
||||
service.get_groupnames())
|
||||
|
||||
# remove obsolete services
|
||||
for servicename in copy(self._services).keys():
|
||||
|
|
|
@ -49,6 +49,9 @@ class Service(object):
|
|||
if groupname in self._groupnames:
|
||||
self._groupnames.remove(groupname)
|
||||
|
||||
def set_groupnames(self, groupnames):
|
||||
self._groupnames = groupnames
|
||||
|
||||
def get_groupnames(self):
|
||||
return copy(self._groupnames)
|
||||
|
||||
|
|
Loading…
Reference in New Issue