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:
Murali Annamneni 2018-07-20 17:05:03 +01:00
parent 6aaa28f83a
commit 46a09f1b18
2 changed files with 15 additions and 0 deletions

View File

@ -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():

View File

@ -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)