Add additional check for maj release for activate

This commit is to add additional major release check for activate.

This is to fix the major release upgrade issue in the subcloud where
the system controller is using prepatched iso for upgrade and
during the subcloud prestaging, the prepatched_iso value in the
prepatched iso metadata file is set to N and sync to the subcloud.
The activate will be skipped in the subcloud major release upgrade
because the prepatched_iso is set to N.

Test Plan:
PASS: build and deploy to DC
PASS: upgrade system controller from stx 10 to 11
PASS: upgrade subcloud from stx 10 to 11

Task: 53726
Story: 2011604

Change-Id: I875108815e14fa075f63c2a9674b7df91cdd61ac
Signed-off-by: junfeng-li <junfeng.li@windriver.com>
This commit is contained in:
junfeng-li
2026-01-26 14:58:53 +00:00
parent fd2c981c9d
commit a9d060d3a0
+11 -2
View File
@@ -4027,8 +4027,11 @@ class PatchController(PatchService):
else:
activate_cmd = ["source", "/etc/platform/openrc;", cmd_path, from_release, to_release]
from_release_maj_min_version = utils.get_major_release_version(from_release)
to_release_maj_min_version = utils.get_major_release_version(to_release)
deploying = ReleaseState(release_state=states.DEPLOYING)
if deploying.is_major_release_deployment():
if deploying.is_major_release_deployment() \
or from_release_maj_min_version != to_release_maj_min_version:
activate_cmd.append('--is_major_release')
env = os.environ.copy()
@@ -4219,8 +4222,14 @@ class PatchController(PatchService):
msg = "Deployment is missing unexpectedly"
raise InvalidOperation(msg)
from_release = deploy.get("from_release")
to_release = deploy.get("to_release")
from_release_maj_min_version = utils.get_major_release_version(from_release)
to_release_maj_min_version = utils.get_major_release_version(to_release)
deploying = ReleaseState(release_state=states.DEPLOYING)
if deploying.is_major_release_deployment():
if deploying.is_major_release_deployment() \
or from_release_maj_min_version != to_release_maj_min_version:
self._activate_rollback_major_release(deploy)
else:
self._activate_rollback_patching_release()