diff --git a/software/commit_new.txt b/software/commit_new.txt new file mode 100644 index 00000000..df61ec52 --- /dev/null +++ b/software/commit_new.txt @@ -0,0 +1,13 @@ +Inservice patch update is rejected excepting host lock. + +Inservice patch update is rejected expecting a host lock +to be performed before patch install. + + +Test Plan: +PASSED: On a SX system, perform inservice patch +update successfully. + +Closes-Bug: 2063854 + +Signed-off-by: Vanathi.Selvaraju diff --git a/software/software/software_controller.py b/software/software/software_controller.py index 70b38295..de979884 100644 --- a/software/software/software_controller.py +++ b/software/software/software_controller.py @@ -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