Multiple AIO SX upgrade_data files cause upgrade failures

When an AIO simplex subcloud upgrade is done as part of a Distributed
Cloud upgrade, multiple upgrade_data files found on the
/opt/platform-backup filesystem cause the upgrade to fail.

This change will remove the upgrade_data file on upgrade_complete (after
the upgrade is successful). The upgrade_data is already removed when the
upgrade is aborted.

Change-Id: Ic9ba16e542045b0ce7b53b14ed7d2deb69cb58b9
Closes-Bug: 1886041
Signed-off-by: David Sullivan <david.sullivan@windriver.com>
This commit is contained in:
David Sullivan 2020-07-02 13:22:00 -04:00
parent fb3840bbad
commit a552b048cb
2 changed files with 18 additions and 12 deletions

View File

@ -307,16 +307,7 @@ def abort_upgrade(from_load, to_load, upgrade):
except OSError:
LOG.exception("Failed to remove upgrade directory %s" % directory)
simplex_backup_filename = get_upgrade_backup_filename(upgrade) + "*"
simplex_backup_files = glob.glob(os.path.join(
tsc.PLATFORM_BACKUP_PATH, simplex_backup_filename))
for file in simplex_backup_files:
try:
LOG.info("Removing simplex upgrade file %s" % file)
os.remove(file)
except OSError:
LOG.exception("Failed to remove %s" % file)
remove_simplex_upgrade_data(upgrade)
LOG.info("Finished upgrade abort")
@ -352,7 +343,20 @@ def activate_upgrade(from_load, to_load, i_system):
LOG.info("Finished upgrade activation")
def complete_upgrade(from_load, to_load):
def remove_simplex_upgrade_data(upgrade):
simplex_backup_filename = get_upgrade_backup_filename(upgrade) + "*"
simplex_backup_files = glob.glob(os.path.join(
tsc.PLATFORM_BACKUP_PATH, simplex_backup_filename))
for file in simplex_backup_files:
try:
LOG.info("Removing simplex upgrade file %s" % file)
os.remove(file)
except OSError:
LOG.exception("Failed to remove %s" % file)
def complete_upgrade(from_load, to_load, upgrade):
""" Executed on release N+1, cleans up data created for upgrade. """
LOG.info("Starting upgrade complete - from: %s, to: %s" %
(from_load, to_load))
@ -375,4 +379,6 @@ def complete_upgrade(from_load, to_load):
except OSError:
LOG.exception("Failed to remove upgrade directory %s" % directory)
remove_simplex_upgrade_data(upgrade)
LOG.info("Finished upgrade complete")

View File

@ -9511,7 +9511,7 @@ class ConductorManager(service.PeriodicService):
# Complete the upgrade
LOG.info("Completing upgrade from release: %s to release: %s" %
(from_version, to_version))
upgrades_management.complete_upgrade(from_version, to_version)
upgrades_management.complete_upgrade(from_version, to_version, upgrade)
LOG.info("Finished completing upgrade")
# Delete upgrade record