Browse Source

AIO-DX: Controller-1 fails to be unlocked after downgrade

During stx4.0 to stx5.0 upgrade, controller-1 fails to be unlocked
after downgrade due to the incorrect disk partition and physical
volume information stored in stx4.0 DB that causes the puppet
manifest apply failed during unlock.

This is because cgts-vg size is decreased in stx5.0 and after
controller-1 is upgraded to stx5.0, additional partition and pv
are created at stx5.0 side to match the size in stx4.0. However,
controller-0 is still running stx4.0 DB and it gets updated with
the new created partition and pv info sent from controller-1 sysinv
agent audit.

This commit updates to ignore the disk partition and physical volume
information sent back from a different version during upgrade.

Tested:
- AIO-DX upgrade from stx4.0 to stx5.0, verified upgrade is completed
- controller-1 downgrade after it is upgraded and unlocked, verified
  upgrade abort is completed

Change-Id: I5d7858e4b29d096437a5ddf94cd78c74fadfacad
Closes-Bug: 1924786
Signed-off-by: Angie Wang <angie.wang@windriver.com>
(cherry picked from commit a24cd707a5cafaa2d49b25d1d5285c5c8582eb5d)
changes/72/786972/2
Angie Wang 2 months ago
parent
commit
47a03edc3b
1 changed files with 22 additions and 0 deletions
  1. +22
    -0
      sysinv/sysinv/sysinv/sysinv/conductor/manager.py

+ 22
- 0
sysinv/sysinv/sysinv/sysinv/conductor/manager.py View File

@ -3767,6 +3767,17 @@ class ConductorManager(service.PeriodicService):
LOG.exception("Invalid ihost_uuid %s" % ihost_uuid)
return
try:
self.dbapi.software_upgrade_get_one()
except exception.NotFound:
# No upgrade in progress
pass
else:
if db_host.software_load != tsc.SW_VERSION:
LOG.info("Ignore updating disk partition for host: %s. Version "
"%s mismatch." % (db_host.hostname, db_host.software_load))
return
# Get the id of the host.
forihostid = db_host['id']
@ -3958,6 +3969,17 @@ class ConductorManager(service.PeriodicService):
LOG.exception("Invalid ihost_uuid %s" % ihost_uuid)
return
try:
self.dbapi.software_upgrade_get_one()
except exception.NotFound:
# No upgrade in progress
pass
else:
if ihost.software_load != tsc.SW_VERSION:
LOG.info("Ignore updating physical volume for host: %s. Version "
"%s mismatch." % (ihost.hostname, ihost.software_load))
return
forihostid = ihost['id']
ipvs = self.dbapi.ipv_get_by_ihost(ihost_uuid)


Loading…
Cancel
Save