Check to determine if a major release deploy is in progress.

In-service patch install is currently rejected expecting
the host to be locked as the framework considers it as
major release deploy. As part of this fix, check is added to
determine if the release is a major release or a patch release.

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 f35c2d0754
1 changed files with 17 additions and 3 deletions

View File

@ -2736,9 +2736,9 @@ 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()
if upgrade_in_progress:
major_release = upgrade_in_progress["to_release"]
if self.check_upgrade_in_progress():
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" % (
@ -3057,6 +3057,20 @@ class PatchController(PatchService):
"state": state
}
def check_upgrade_in_progress(self):
"""
Check if major release upgrade is in progress
"""
_upgrade_in_progress = False
upgrade_release = self._get_software_upgrade()
if upgrade_release:
return _upgrade_in_progress
from_release = version.Version(upgrade_release["from_release"])
to_release = version.Version(upgrade_release["to_release"])
if (from_release.major != to_release.major):
_upgrade_in_progress = True
return _upgrade_in_progress
def get_software_upgrade(self):
return self._get_software_upgrade()