In-service patch update is rejected excepting node lock.

In-service patch update rejects the host install operation
expecting the host to be locked before patch install.

Test Plan:
PASSED: On SX system, perform in-service patch install
successfully.

Closes-Bug: 2063854

Change-Id: I7ef856c41c6721daa68310666097d65e816056b1
Signed-off-by: Vanathi.Selvaraju <vanathi.selvaraju@windriver.com>
This commit is contained in:
Vanathi.Selvaraju 2024-04-26 12:15:17 -04:00
parent 1d6add41a2
commit 0c7cdcc94a
1 changed files with 18 additions and 2 deletions

View File

@ -2736,9 +2736,10 @@ class PatchController(PatchService):
# Check if there is a major release deployment in progress
# and set agent request parameters accordingly
major_release = None
upgrade_in_progress = self.get_software_upgrade()
upgrade_in_progress = self.check_upgrade_in_progress()
if upgrade_in_progress:
major_release = upgrade_in_progress["to_release"]
upgrade_release = self.get_software_upgrade()
major_release = upgrade_release["to_release"]
force = False
async_req = False
msg = "Running major release deployment, major_release=%s, force=%s, async_req=%s" % (
@ -3035,6 +3036,21 @@ class PatchController(PatchService):
except Exception as ex:
LOG.exception("Failed in handling deploy state sync. Error: %s" % str(ex))
def check_upgrade_in_progress(self):
"""
Check if major release upgrade is in progress
"""
_upgrade_in_progress = False
all_deploy = self.db_api_instance.get_deploy_all()
deploy = all_deploy[0]
from_release = version.parse(deploy.get("from_release"))
to_release = version.parse(deploy.get("to_release"))
ver_from_rel = from_release.release
ver_to_rel = to_release.release
if (ver_from_rel[0] != ver_to_rel[0] or ver_from_rel[1] != ver_to_rel[1]):
_upgrade_in_progress = True
return _upgrade_in_progress
def _get_software_upgrade(self):
"""
Get the current software upgrade from/to versions and state