Merge "Rename sw-manager upgrade-strategy to sw-deploy-strategy"

This commit is contained in:
Zuul 2024-03-19 21:23:44 +00:00 committed by Gerrit Code Review
commit 3399c7fc54
6 changed files with 56 additions and 37 deletions

View File

@ -7,6 +7,7 @@ import json
import os import os
from nfv_client.openstack import rest_api from nfv_client.openstack import rest_api
from nfv_client import sw_update
class StrategyStep(object): class StrategyStep(object):
@ -272,14 +273,14 @@ def create_strategy(token_id,
api_cmd_headers['X-Auth-Token'] = token_id api_cmd_headers['X-Auth-Token'] = token_id
api_cmd_payload = dict() api_cmd_payload = dict()
if 'sw-patch' == strategy_name: if sw_update.STRATEGY_NAME_SW_PATCH == strategy_name:
api_cmd_payload['controller-apply-type'] = controller_apply_type api_cmd_payload['controller-apply-type'] = controller_apply_type
api_cmd_payload['swift-apply-type'] = swift_apply_type api_cmd_payload['swift-apply-type'] = swift_apply_type
api_cmd_payload['default-instance-action'] = default_instance_action api_cmd_payload['default-instance-action'] = default_instance_action
elif 'fw-update' == strategy_name: elif sw_update.STRATEGY_NAME_FW_UPDATE == strategy_name:
api_cmd_payload['controller-apply-type'] = controller_apply_type api_cmd_payload['controller-apply-type'] = controller_apply_type
api_cmd_payload['default-instance-action'] = default_instance_action api_cmd_payload['default-instance-action'] = default_instance_action
elif 'kube-rootca-update' == strategy_name: elif sw_update.STRATEGY_NAME_KUBE_ROOTCA_UPDATE == strategy_name:
# Note that the payload contains '-' and not '_' # Note that the payload contains '-' and not '_'
if 'expiry_date' in kwargs and kwargs['expiry_date']: if 'expiry_date' in kwargs and kwargs['expiry_date']:
api_cmd_payload['expiry-date'] = kwargs['expiry_date'] api_cmd_payload['expiry-date'] = kwargs['expiry_date']
@ -291,14 +292,15 @@ def create_strategy(token_id,
# may not succeed if a SWACT occurs. # may not succeed if a SWACT occurs.
api_cmd_payload['cert-file'] = os.path.abspath(kwargs['cert_file']) api_cmd_payload['cert-file'] = os.path.abspath(kwargs['cert_file'])
api_cmd_payload['default-instance-action'] = default_instance_action api_cmd_payload['default-instance-action'] = default_instance_action
elif 'kube-upgrade' == strategy_name: elif sw_update.STRATEGY_NAME_KUBE_UPGRADE == strategy_name:
# required: 'to_version' passed to strategy as 'to-version' # required: 'to_version' passed to strategy as 'to-version'
api_cmd_payload['to-version'] = kwargs['to_version'] api_cmd_payload['to-version'] = kwargs['to_version']
api_cmd_payload['default-instance-action'] = default_instance_action api_cmd_payload['default-instance-action'] = default_instance_action
elif 'system-config-update' == strategy_name: elif sw_update.STRATEGY_NAME_SYSTEM_CONFIG_UPDATE == strategy_name:
api_cmd_payload['controller-apply-type'] = controller_apply_type api_cmd_payload['controller-apply-type'] = controller_apply_type
api_cmd_payload['default-instance-action'] = default_instance_action api_cmd_payload['default-instance-action'] = default_instance_action
elif 'sw-upgrade' == strategy_name: # TODO(jkraitbe): Backend for sw-deploy will continue as old sw-upgrade for now
elif sw_update.STRATEGY_NAME_SW_UPGRADE == strategy_name:
# for upgrade: default-instance-action is hardcoded to MIGRATE # for upgrade: default-instance-action is hardcoded to MIGRATE
if 'start_upgrade' in kwargs and kwargs['start_upgrade']: if 'start_upgrade' in kwargs and kwargs['start_upgrade']:
api_cmd_payload['start-upgrade'] = True api_cmd_payload['start-upgrade'] = True

View File

@ -1,5 +1,5 @@
# #
# Copyright (c) 2016-2023 Wind River Systems, Inc. # Copyright (c) 2016-2024 Wind River Systems, Inc.
# #
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# #
@ -47,26 +47,27 @@ def get_extra_create_args(cmd_area, args):
:returns: a dictionary of additional kwargs for the create_strategy command :returns: a dictionary of additional kwargs for the create_strategy command
:raises: ValueError if a strategy has been registered but not update here :raises: ValueError if a strategy has been registered but not update here
""" """
if 'patch-strategy' == cmd_area: if sw_update.CMD_NAME_SW_PATCH == cmd_area:
# no additional kwargs for patch # no additional kwargs for patch
return {} return {}
elif 'upgrade-strategy' == cmd_area: elif sw_update.CMD_NAME_SW_DEPLOY == cmd_area:
# TODO(jkraitbe): Args will be updated to use new release parameter
# upgrade supports: complete_upgrade # upgrade supports: complete_upgrade
return {'complete_upgrade': args.complete_upgrade} return {'complete_upgrade': args.complete_upgrade}
elif 'fw-update-strategy' == cmd_area: elif sw_update.CMD_NAME_FW_UPDATE == cmd_area:
# no additional kwargs for firmware update # no additional kwargs for firmware update
return {} return {}
elif 'system-config-update-strategy' == cmd_area: elif sw_update.CMD_NAME_SYSTEM_CONFIG_UPDATE == cmd_area:
# no additional kwargs for system config update # no additional kwargs for system config update
return {} return {}
elif 'kube-rootca-update-strategy' == cmd_area: elif sw_update.CMD_NAME_KUBE_ROOTCA_UPDATE == cmd_area:
# kube rootca update supports expiry_date, subject and cert_file # kube rootca update supports expiry_date, subject and cert_file
return { return {
'expiry_date': args.expiry_date, 'expiry_date': args.expiry_date,
'subject': args.subject, 'subject': args.subject,
'cert_file': args.cert_file 'cert_file': args.cert_file
} }
elif 'kube-upgrade-strategy' == cmd_area: elif sw_update.CMD_NAME_KUBE_UPGRADE == cmd_area:
# kube upgrade supports: to_version # kube upgrade supports: to_version
return {'to_version': args.to_version} return {'to_version': args.to_version}
else: else:
@ -201,7 +202,7 @@ def setup_show_cmd(parser):
def setup_fw_update_parser(commands): def setup_fw_update_parser(commands):
"""Firmware Update Strategy Commands""" """Firmware Update Strategy Commands"""
cmd_area = 'fw-update-strategy' cmd_area = sw_update.CMD_NAME_FW_UPDATE
register_strategy(cmd_area, sw_update.STRATEGY_NAME_FW_UPDATE) register_strategy(cmd_area, sw_update.STRATEGY_NAME_FW_UPDATE)
cmd_parser = commands.add_parser(cmd_area, cmd_parser = commands.add_parser(cmd_area,
help='Firmware Update Strategy') help='Firmware Update Strategy')
@ -242,7 +243,7 @@ def setup_fw_update_parser(commands):
def setup_kube_rootca_update_parser(commands): def setup_kube_rootca_update_parser(commands):
"""Kubernetes RootCA Update Strategy Commands""" """Kubernetes RootCA Update Strategy Commands"""
cmd_area = 'kube-rootca-update-strategy' cmd_area = sw_update.CMD_NAME_KUBE_ROOTCA_UPDATE
register_strategy(cmd_area, sw_update.STRATEGY_NAME_KUBE_ROOTCA_UPDATE) register_strategy(cmd_area, sw_update.STRATEGY_NAME_KUBE_ROOTCA_UPDATE)
cmd_parser = commands.add_parser(cmd_area, cmd_parser = commands.add_parser(cmd_area,
help='Kubernetes RootCA Update Strategy') help='Kubernetes RootCA Update Strategy')
@ -298,7 +299,7 @@ def setup_kube_rootca_update_parser(commands):
def setup_kube_upgrade_parser(commands): def setup_kube_upgrade_parser(commands):
"""Kubernetes Upgrade Strategy Commands""" """Kubernetes Upgrade Strategy Commands"""
cmd_area = 'kube-upgrade-strategy' cmd_area = sw_update.CMD_NAME_KUBE_UPGRADE
register_strategy(cmd_area, sw_update.STRATEGY_NAME_KUBE_UPGRADE) register_strategy(cmd_area, sw_update.STRATEGY_NAME_KUBE_UPGRADE)
cmd_parser = commands.add_parser(cmd_area, cmd_parser = commands.add_parser(cmd_area,
help='Kubernetes Upgrade Strategy') help='Kubernetes Upgrade Strategy')
@ -347,7 +348,7 @@ def setup_kube_upgrade_parser(commands):
def setup_patch_parser(commands): def setup_patch_parser(commands):
"""Patch Strategy Commands""" """Patch Strategy Commands"""
cmd_area = 'patch-strategy' cmd_area = sw_update.CMD_NAME_SW_PATCH
register_strategy(cmd_area, sw_update.STRATEGY_NAME_SW_PATCH) register_strategy(cmd_area, sw_update.STRATEGY_NAME_SW_PATCH)
cmd_parser = commands.add_parser(cmd_area, cmd_parser = commands.add_parser(cmd_area,
help='Patch Strategy') help='Patch Strategy')
@ -390,7 +391,7 @@ def setup_patch_parser(commands):
def setup_system_config_update_parser(commands): def setup_system_config_update_parser(commands):
"""System config update Strategy Commands""" """System config update Strategy Commands"""
cmd_area = 'system-config-update-strategy' cmd_area = sw_update.CMD_NAME_SYSTEM_CONFIG_UPDATE
register_strategy(cmd_area, sw_update.STRATEGY_NAME_SYSTEM_CONFIG_UPDATE) register_strategy(cmd_area, sw_update.STRATEGY_NAME_SYSTEM_CONFIG_UPDATE)
cmd_parser = commands.add_parser(cmd_area, cmd_parser = commands.add_parser(cmd_area,
help='system config update Strategy') help='system config update Strategy')
@ -429,16 +430,17 @@ def setup_system_config_update_parser(commands):
_ = setup_show_cmd(sub_cmds) _ = setup_show_cmd(sub_cmds)
def setup_upgrade_parser(commands): def setup_sw_deploy_parser(commands):
"""Upgrade Strategy Commands""" """Software Deploy Strategy Commands"""
cmd_area = 'upgrade-strategy' cmd_area = sw_update.CMD_NAME_SW_DEPLOY
# TODO(jkraitbe): Backend for sw-deploy will continue as old sw-upgrade for now
register_strategy(cmd_area, sw_update.STRATEGY_NAME_SW_UPGRADE) register_strategy(cmd_area, sw_update.STRATEGY_NAME_SW_UPGRADE)
cmd_parser = commands.add_parser(cmd_area, cmd_parser = commands.add_parser(cmd_area,
help='Upgrade Strategy') help='Software Deploy Strategy')
cmd_parser.set_defaults(cmd_area=cmd_area) cmd_parser.set_defaults(cmd_area=cmd_area)
sub_cmds = cmd_parser.add_subparsers(title='Software Upgrade Commands', sub_cmds = cmd_parser.add_subparsers(title='Software Deploy Commands',
metavar='') metavar='')
sub_cmds.required = True sub_cmds.required = True
@ -457,10 +459,10 @@ def setup_upgrade_parser(commands):
[sw_update.ALARM_RESTRICTIONS_STRICT, # alarm restrictions [sw_update.ALARM_RESTRICTIONS_STRICT, # alarm restrictions
sw_update.ALARM_RESTRICTIONS_RELAXED], sw_update.ALARM_RESTRICTIONS_RELAXED],
min_parallel=2, min_parallel=2,
max_parallel=10 # upgrade supports 2..10 workers in parallel max_parallel=10 # SW Deploy supports 2..10 workers in parallel
) )
# add upgrade specific arguments to the create command # add sw-deploy specific arguments to the create command
# The get_extra_create_args method is updated to align with these # The get_extra_create_args method is updated to align with these
# Disable support for --start-upgrade as it was not completed # Disable support for --start-upgrade as it was not completed
@ -468,6 +470,7 @@ def setup_upgrade_parser(commands):
# action='store_true', # action='store_true',
# help=argparse.SUPPRESS) # help=argparse.SUPPRESS)
# TODO(jkraitbe): Args will be updated to use new release parameter
create_strategy_cmd.add_argument('--complete-upgrade', create_strategy_cmd.add_argument('--complete-upgrade',
action='store_true', action='store_true',
help=argparse.SUPPRESS) help=argparse.SUPPRESS)
@ -516,8 +519,8 @@ def process_main(argv=sys.argv[1:]): # pylint: disable=dangerous-default-value
# Add system config update strategy commands # Add system config update strategy commands
setup_system_config_update_parser(commands) setup_system_config_update_parser(commands)
# Add software upgrade strategy commands # Add software sw-deploy strategy commands
setup_upgrade_parser(commands) setup_sw_deploy_parser(commands)
args = parser.parse_args(argv) args = parser.parse_args(argv)

View File

@ -1,4 +1,4 @@
# Copyright (c) 2016-2023 Wind River Systems, Inc. # Copyright (c) 2016-2024 Wind River Systems, Inc.
# #
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# #
@ -9,6 +9,12 @@ from nfv_client.sw_update._sw_update import apply_strategy # noqa: F401
from nfv_client.sw_update._sw_update import APPLY_TYPE_IGNORE # noqa: F401 from nfv_client.sw_update._sw_update import APPLY_TYPE_IGNORE # noqa: F401
from nfv_client.sw_update._sw_update import APPLY_TYPE_PARALLEL # noqa: F401 from nfv_client.sw_update._sw_update import APPLY_TYPE_PARALLEL # noqa: F401
from nfv_client.sw_update._sw_update import APPLY_TYPE_SERIAL # noqa: F401 from nfv_client.sw_update._sw_update import APPLY_TYPE_SERIAL # noqa: F401
from nfv_client.sw_update._sw_update import CMD_NAME_FW_UPDATE # noqa: F401
from nfv_client.sw_update._sw_update import CMD_NAME_KUBE_ROOTCA_UPDATE # noqa: F401
from nfv_client.sw_update._sw_update import CMD_NAME_KUBE_UPGRADE # noqa: F401
from nfv_client.sw_update._sw_update import CMD_NAME_SW_DEPLOY # noqa: F401
from nfv_client.sw_update._sw_update import CMD_NAME_SW_PATCH # noqa: F401
from nfv_client.sw_update._sw_update import CMD_NAME_SYSTEM_CONFIG_UPDATE # noqa: F401
from nfv_client.sw_update._sw_update import create_strategy # noqa: F401 from nfv_client.sw_update._sw_update import create_strategy # noqa: F401
from nfv_client.sw_update._sw_update import delete_strategy # noqa: F401 from nfv_client.sw_update._sw_update import delete_strategy # noqa: F401
from nfv_client.sw_update._sw_update import INSTANCE_ACTION_MIGRATE # noqa: F401 from nfv_client.sw_update._sw_update import INSTANCE_ACTION_MIGRATE # noqa: F401

View File

@ -1,5 +1,5 @@
# #
# Copyright (c) 2016-2023 Wind River Systems, Inc. # Copyright (c) 2016-2024 Wind River Systems, Inc.
# #
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# #
@ -13,6 +13,13 @@ STRATEGY_NAME_KUBE_ROOTCA_UPDATE = 'kube-rootca-update'
STRATEGY_NAME_KUBE_UPGRADE = 'kube-upgrade' STRATEGY_NAME_KUBE_UPGRADE = 'kube-upgrade'
STRATEGY_NAME_SYSTEM_CONFIG_UPDATE = 'system-config-update' STRATEGY_NAME_SYSTEM_CONFIG_UPDATE = 'system-config-update'
CMD_NAME_SW_PATCH = 'patch-strategy'
CMD_NAME_SW_DEPLOY = 'sw-deploy-strategy'
CMD_NAME_FW_UPDATE = 'fw-update-strategy'
CMD_NAME_KUBE_ROOTCA_UPDATE = 'kube-rootca-update-strategy'
CMD_NAME_KUBE_UPGRADE = 'kube-upgrade-strategy'
CMD_NAME_SYSTEM_CONFIG_UPDATE = 'system-config-update-strategy'
APPLY_TYPE_SERIAL = 'serial' APPLY_TYPE_SERIAL = 'serial'
APPLY_TYPE_PARALLEL = 'parallel' APPLY_TYPE_PARALLEL = 'parallel'
APPLY_TYPE_IGNORE = 'ignore' APPLY_TYPE_IGNORE = 'ignore'
@ -123,8 +130,9 @@ def _display_strategy(strategy, details=False, active=False):
""" """
if strategy.name == STRATEGY_NAME_SW_PATCH: if strategy.name == STRATEGY_NAME_SW_PATCH:
print("Strategy Patch Strategy:") print("Strategy Patch Strategy:")
# TODO(jkraitbe): Backend for sw-deploy will continue as old sw-upgrade for now
elif strategy.name == STRATEGY_NAME_SW_UPGRADE: elif strategy.name == STRATEGY_NAME_SW_UPGRADE:
print("Strategy Upgrade Strategy:") print("Strategy Software Deploy Strategy:")
elif strategy.name == STRATEGY_NAME_FW_UPDATE: elif strategy.name == STRATEGY_NAME_FW_UPDATE:
print("Strategy Firmware Update Strategy:") print("Strategy Firmware Update Strategy:")
elif strategy.name == STRATEGY_NAME_KUBE_ROOTCA_UPDATE: elif strategy.name == STRATEGY_NAME_KUBE_ROOTCA_UPDATE:

View File

@ -1,5 +1,5 @@
# #
# Copyright (c) 2016-2023 Wind River Systems, Inc. # Copyright (c) 2016-2024 Wind River Systems, Inc.
# #
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# #
@ -20,7 +20,7 @@ function _swmanager()
# #
local subcommands=" local subcommands="
patch-strategy patch-strategy
upgrade-strategy sw-deploy-strategy
fw-update-strategy fw-update-strategy
kube-rootca-update-strategy kube-rootca-update-strategy
kube-upgrade-strategy kube-upgrade-strategy
@ -109,7 +109,7 @@ function _swmanager()
COMPREPLY=($(compgen -W "${actions}" -- ${cur})) COMPREPLY=($(compgen -W "${actions}" -- ${cur}))
return 0 return 0
;; ;;
upgrade-strategy) sw-deploy-strategy)
local actions=" local actions="
create create
delete delete

View File

@ -1,5 +1,5 @@
# #
# Copyright (c) 2023 Wind River Systems, Inc. # Copyright (c) 2023-2024 Wind River Systems, Inc.
# #
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# #
@ -245,11 +245,11 @@ class StrategyMixin(object):
self._test_shell_create(shell_args=shell_args) self._test_shell_create(shell_args=shell_args)
class TestCLIUpgradeStrategy(TestNFVClientShell, class TestCLISwDeployStrategy(TestNFVClientShell,
StrategyMixin): StrategyMixin):
def setUp(self): def setUp(self):
super(TestCLIUpgradeStrategy, self).setUp() super(TestCLISwDeployStrategy, self).setUp()
self.set_strategy('upgrade-strategy') self.set_strategy('sw-deploy-strategy')
class TestCLIPatchStrategy(TestNFVClientShell, class TestCLIPatchStrategy(TestNFVClientShell,