Patch rollback enabled and sw-deploy delete made not host specific

As part of this change following fixes are done
1.Currently rollback is supported only for major release(AIO-SX).
As part of this fix support for patch rollback is enabled
in AIO-SX.
2.Software deploy delete is currently restricted to only
controller-0 for patch release, with this change 'deploy delete'
can be performed on any of the active controller.

Test Plan:
PASSED: AIO-SX, patch rollback for
RR patch, at start-done state.
PASSED: AIO-SX, patch rollback for
RR patch, at start-done locked state.
PASSED: AIO-SX, patch rollback for
RR patch, at host-done, unlocked
state.
PASSED: AIO-SX, patch rollback for in-service
patch, at start-done state.
PASSED: AIO-SX, patch rollback for
in-service patch, at host-done state.
orchestration completed.
PASSED: AIO-DX, RR patch to skip swact
to controller-0 to perform deploy delete.

Story: 2011045
Task: 51163

Depends-On: https://review.opendev.org/c/starlingx/nfv/+/930991
Depends-On: https://review.opendev.org/c/starlingx/update/+/932091

Change-Id: Ie6c2e5e4248697e8c15ee924e74af212c3bd5bed
Signed-off-by: Vanathi.Selvaraju <vanathi.selvaraju@windriver.com>
This commit is contained in:
Vanathi.Selvaraju 2024-10-10 16:17:52 -04:00 committed by Vanathi Selvaraju
parent 525e9bafaf
commit 473a31a0e0
2 changed files with 6 additions and 11 deletions

View File

@ -1493,9 +1493,8 @@ class TestSwUpgradeStrategy(sw_update_testcase.SwUpdateStrategyTestCase):
},
{
'name': 'sw-deploy-delete',
'total_steps': 2,
'total_steps': 1,
'steps': [
{'name': 'swact-hosts', 'entity_names': ['controller-1']},
{'name': 'deploy-delete', 'release': release},
],
},
@ -1588,9 +1587,8 @@ class TestSwUpgradeStrategy(sw_update_testcase.SwUpdateStrategyTestCase):
},
{
'name': 'sw-deploy-delete',
'total_steps': 2,
'total_steps': 1,
'steps': [
{'name': 'swact-hosts', 'entity_names': ['controller-1']},
{'name': 'deploy-delete', 'release': release},
]
},

View File

@ -1896,17 +1896,14 @@ class SwUpgradeStrategy(
else:
return self._build_normal()
def _swact_fix(self, stage, controller_name, force=False):
def _swact_fix(self, stage, controller_name):
"""Add a SWACT to a stage on DX systems
Currently, certain steps during sw-deploy must be done on a specific controller.
Here we insert arbitrary SWACTs to meet those requirements.
"""
if force and not self._single_controller:
# Deployment delete requires a swact
pass
elif self._single_controller or not self.nfvi_upgrade.major_release:
if self._single_controller or not self.nfvi_upgrade.major_release:
return
from nfv_vim import strategy
@ -2035,8 +2032,8 @@ class SwUpgradeStrategy(
from nfv_vim import strategy
stage = strategy.StrategyStage(strategy.STRATEGY_STAGE_NAME.SW_DEPLOY_DELETE)
# sw-deploy delete must be done on controller-0
self._swact_fix(stage, HOST_NAME.CONTROLLER_1, True)
# sw-deploy delete must be done on controller-0 for major release
self._swact_fix(stage, HOST_NAME.CONTROLLER_1)
stage.add_step(strategy.SwDeployDeleteStep(release=self._release))
self.apply_phase.add_stage(stage)