Merge "Update Heat stack on update/upgrade/ffwd converge"
This commit is contained in:
commit
858529b4a7
@ -190,33 +190,10 @@ class TestFFWDUpgradeConverge(fakes.TestFFWDUpgradeConverge):
|
|||||||
app_args.verbose_level = 1
|
app_args.verbose_level = 1
|
||||||
self.cmd = overcloud_ffwd_upgrade.FFWDUpgradeConverge(self.app,
|
self.cmd = overcloud_ffwd_upgrade.FFWDUpgradeConverge(self.app,
|
||||||
app_args)
|
app_args)
|
||||||
uuid4_patcher = mock.patch('uuid.uuid4', return_value="UUID4")
|
|
||||||
self.mock_uuid4 = uuid4_patcher.start()
|
|
||||||
self.addCleanup(self.mock_uuid4.stop)
|
|
||||||
|
|
||||||
@mock.patch('tripleoclient.utils.prepend_environment', autospec=True)
|
@mock.patch(
|
||||||
@mock.patch('tripleoclient.utils.get_stack', autospec=True)
|
'tripleoclient.v1.overcloud_deploy.DeployOvercloud.take_action')
|
||||||
@mock.patch('tripleoclient.workflows.package_update.ffwd_converge_nodes',
|
def test_ffwd_upgrade_converge(self, deploy_action):
|
||||||
autospec=True)
|
|
||||||
@mock.patch('os.path.expanduser')
|
|
||||||
@mock.patch('oslo_concurrency.processutils.execute')
|
|
||||||
@mock.patch('six.moves.builtins.open')
|
|
||||||
@mock.patch('tripleoclient.v1.overcloud_deploy.DeployOvercloud.'
|
|
||||||
'_deploy_tripleo_heat_templates_tmpdir', autospec=True)
|
|
||||||
def test_ffwd_upgrade_converge(
|
|
||||||
self,
|
|
||||||
mock_deploy,
|
|
||||||
mock_open,
|
|
||||||
mock_execute,
|
|
||||||
mock_expanduser,
|
|
||||||
ffwd_converge_nodes,
|
|
||||||
mock_get_stack,
|
|
||||||
mock_prepend_env):
|
|
||||||
|
|
||||||
mock_expanduser.return_value = '/home/fake/'
|
|
||||||
mock_stack = mock.Mock()
|
|
||||||
mock_stack.stack_name = 'le_overcloud'
|
|
||||||
mock_get_stack.return_value = mock_stack
|
|
||||||
argslist = ['--stack', 'le_overcloud', '--templates', '--yes']
|
argslist = ['--stack', 'le_overcloud', '--templates', '--yes']
|
||||||
verifylist = [
|
verifylist = [
|
||||||
('stack', 'le_overcloud'),
|
('stack', 'le_overcloud'),
|
||||||
@ -224,10 +201,13 @@ class TestFFWDUpgradeConverge(fakes.TestFFWDUpgradeConverge):
|
|||||||
('yes', True)
|
('yes', True)
|
||||||
]
|
]
|
||||||
parsed_args = self.check_parser(self.cmd, argslist, verifylist)
|
parsed_args = self.check_parser(self.cmd, argslist, verifylist)
|
||||||
with mock.patch('os.path.exists') as mock_exists:
|
|
||||||
|
with mock.patch('os.path.exists') as mock_exists, \
|
||||||
|
mock.patch('os.path.isfile') as mock_isfile:
|
||||||
mock_exists.return_value = True
|
mock_exists.return_value = True
|
||||||
|
mock_isfile.return_value = True
|
||||||
self.cmd.take_action(parsed_args)
|
self.cmd.take_action(parsed_args)
|
||||||
ffwd_converge_nodes.assert_called_once_with(
|
assert('/usr/share/openstack-tripleo-heat-templates/'
|
||||||
self.app.client_manager,
|
'environments/lifecycle/ffwd-upgrade-converge.yaml'
|
||||||
queue_name=constants.FFWD_UPGRADE_QUEUE,
|
in parsed_args.environment_files)
|
||||||
container='le_overcloud')
|
deploy_action.assert_called_once_with(parsed_args)
|
||||||
|
@ -240,14 +240,9 @@ class TestOvercloudUpdateConverge(fakes.TestOvercloudUpdateConverge):
|
|||||||
app_args.verbose_level = 1
|
app_args.verbose_level = 1
|
||||||
self.cmd = overcloud_update.UpdateConverge(self.app, app_args)
|
self.cmd = overcloud_update.UpdateConverge(self.app, app_args)
|
||||||
|
|
||||||
@mock.patch('tripleoclient.utils.get_stack')
|
|
||||||
@mock.patch('tripleoclient.workflows.package_update.update_converge_nodes')
|
|
||||||
@mock.patch(
|
@mock.patch(
|
||||||
'tripleoclient.v1.overcloud_deploy.DeployOvercloud.take_action')
|
'tripleoclient.v1.overcloud_deploy.DeployOvercloud.take_action')
|
||||||
def test_update_converge(self, deploy_action, converge_workflow,
|
def test_update_converge(self, deploy_action):
|
||||||
get_stack):
|
|
||||||
get_stack.return_value.stack_name = 'cloud'
|
|
||||||
|
|
||||||
argslist = ['--templates', '--stack', 'cloud']
|
argslist = ['--templates', '--stack', 'cloud']
|
||||||
verifylist = [
|
verifylist = [
|
||||||
('stack', 'cloud')
|
('stack', 'cloud')
|
||||||
@ -263,6 +258,3 @@ class TestOvercloudUpdateConverge(fakes.TestOvercloudUpdateConverge):
|
|||||||
'environments/lifecycle/update-converge.yaml'
|
'environments/lifecycle/update-converge.yaml'
|
||||||
in parsed_args.environment_files)
|
in parsed_args.environment_files)
|
||||||
deploy_action.assert_called_once_with(parsed_args)
|
deploy_action.assert_called_once_with(parsed_args)
|
||||||
converge_workflow.assert_called_once_with(
|
|
||||||
self.app.client_manager, container='cloud',
|
|
||||||
queue_name='update')
|
|
||||||
|
@ -164,11 +164,11 @@ class FFWDUpgradeConverge(DeployOvercloud):
|
|||||||
"""Converge the fast-forward upgrade on Overcloud Nodes
|
"""Converge the fast-forward upgrade on Overcloud Nodes
|
||||||
|
|
||||||
This is the last step for completion of a fast forward upgrade.
|
This is the last step for completion of a fast forward upgrade.
|
||||||
There is no heat stack update performed here. The main task is updating
|
The main task is updating the plan and stack to unblock future
|
||||||
the plan to unblock future stack updates. For the ffwd upgrade workflow
|
stack updates. For the ffwd upgrade workflow we have set and
|
||||||
we have set and used the config-download Software/Structured Deployment
|
used the config-download Software/Structured Deployment for the
|
||||||
for the OS::TripleO and OS::Heat resources. This unsets those back
|
OS::TripleO and OS::Heat resources. This unsets those back to
|
||||||
to their default values, in the swift stored plan.
|
their default values.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
log = logging.getLogger(__name__ + ".FFWDUpgradeConverge")
|
log = logging.getLogger(__name__ + ".FFWDUpgradeConverge")
|
||||||
@ -187,13 +187,6 @@ class FFWDUpgradeConverge(DeployOvercloud):
|
|||||||
self.log.debug("take_action(%s)" % parsed_args)
|
self.log.debug("take_action(%s)" % parsed_args)
|
||||||
oooutils.ffwd_upgrade_operator_confirm(parsed_args.yes, self.log)
|
oooutils.ffwd_upgrade_operator_confirm(parsed_args.yes, self.log)
|
||||||
|
|
||||||
clients = self.app.client_manager
|
|
||||||
|
|
||||||
stack = oooutils.get_stack(clients.orchestration,
|
|
||||||
parsed_args.stack)
|
|
||||||
stack_name = stack.stack_name
|
|
||||||
|
|
||||||
parsed_args.update_plan_only = True
|
|
||||||
# Add the converge environment into the args to unset noop etc
|
# Add the converge environment into the args to unset noop etc
|
||||||
templates_dir = (parsed_args.templates or
|
templates_dir = (parsed_args.templates or
|
||||||
constants.TRIPLEO_HEAT_TEMPLATES)
|
constants.TRIPLEO_HEAT_TEMPLATES)
|
||||||
@ -204,9 +197,5 @@ class FFWDUpgradeConverge(DeployOvercloud):
|
|||||||
constants.FFWD_UPGRADE_CONVERGE_ENV)
|
constants.FFWD_UPGRADE_CONVERGE_ENV)
|
||||||
|
|
||||||
super(FFWDUpgradeConverge, self).take_action(parsed_args)
|
super(FFWDUpgradeConverge, self).take_action(parsed_args)
|
||||||
# Run converge steps
|
|
||||||
package_update.ffwd_converge_nodes(
|
|
||||||
clients, container=stack_name,
|
|
||||||
queue_name=constants.FFWD_UPGRADE_QUEUE)
|
|
||||||
print("FFWD Upgrade Converge on stack {0} complete.".format(
|
print("FFWD Upgrade Converge on stack {0} complete.".format(
|
||||||
parsed_args.stack))
|
parsed_args.stack))
|
||||||
|
@ -171,21 +171,14 @@ class UpdateRun(command.Command):
|
|||||||
class UpdateConverge(DeployOvercloud):
|
class UpdateConverge(DeployOvercloud):
|
||||||
"""Converge the update on Overcloud nodes.
|
"""Converge the update on Overcloud nodes.
|
||||||
|
|
||||||
This restores the plan environment so that normal deployment
|
This restores the plan and stack so that normal deployment
|
||||||
workflow is back in place. The action does not perform a Heat
|
workflow is back in place.
|
||||||
stack update.
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
log = logging.getLogger(__name__ + ".UpdateConverge")
|
log = logging.getLogger(__name__ + ".UpdateConverge")
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
def take_action(self, parsed_args):
|
||||||
self.log.debug("take_action(%s)" % parsed_args)
|
self.log.debug("take_action(%s)" % parsed_args)
|
||||||
clients = self.app.client_manager
|
|
||||||
stack_name = oooutils.get_stack(
|
|
||||||
clients.orchestration, parsed_args.stack).stack_name
|
|
||||||
|
|
||||||
# Only update plan, do not perform stack update.
|
|
||||||
parsed_args.update_plan_only = True
|
|
||||||
|
|
||||||
# Add the update-converge.yaml environment to unset noops
|
# Add the update-converge.yaml environment to unset noops
|
||||||
templates_dir = (parsed_args.templates or
|
templates_dir = (parsed_args.templates or
|
||||||
@ -195,7 +188,5 @@ class UpdateConverge(DeployOvercloud):
|
|||||||
constants.UPDATE_CONVERGE_ENV)
|
constants.UPDATE_CONVERGE_ENV)
|
||||||
|
|
||||||
super(UpdateConverge, self).take_action(parsed_args)
|
super(UpdateConverge, self).take_action(parsed_args)
|
||||||
package_update.update_converge_nodes(
|
|
||||||
clients, container=stack_name, queue_name=constants.UPDATE_QUEUE)
|
|
||||||
print("Update converge on stack {0} complete.".format(
|
print("Update converge on stack {0} complete.".format(
|
||||||
parsed_args.stack))
|
parsed_args.stack))
|
||||||
|
@ -225,11 +225,11 @@ class UpgradeRun(command.Command):
|
|||||||
class UpgradeConvergeOvercloud(DeployOvercloud):
|
class UpgradeConvergeOvercloud(DeployOvercloud):
|
||||||
"""Major upgrade converge - reset Heat resources in the stored plan
|
"""Major upgrade converge - reset Heat resources in the stored plan
|
||||||
|
|
||||||
This is the last step for completion of a overcloud major upgrade.
|
This is the last step for completion of a overcloud major
|
||||||
There is no heat stack update performed here. The main task is updating
|
upgrade. The main task is updating the plan and stack to
|
||||||
the plan to unblock future stack updates. For the major upgrade workflow
|
unblock future stack updates. For the major upgrade workflow we
|
||||||
we have set specific values for some stack Heat resources. This unsets
|
have set specific values for some stack Heat resources. This
|
||||||
those back to their default values, in the swift stored plan.
|
unsets those back to their default values.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
log = logging.getLogger(__name__ + ".UpgradeConvergeOvercloud")
|
log = logging.getLogger(__name__ + ".UpgradeConvergeOvercloud")
|
||||||
@ -244,9 +244,7 @@ class UpgradeConvergeOvercloud(DeployOvercloud):
|
|||||||
|
|
||||||
stack = oooutils.get_stack(clients.orchestration,
|
stack = oooutils.get_stack(clients.orchestration,
|
||||||
parsed_args.stack)
|
parsed_args.stack)
|
||||||
stack_name = stack.stack_name
|
|
||||||
|
|
||||||
parsed_args.update_plan_only = True
|
|
||||||
# Add the converge environment into the args to unset noop etc
|
# Add the converge environment into the args to unset noop etc
|
||||||
templates_dir = (parsed_args.templates or
|
templates_dir = (parsed_args.templates or
|
||||||
constants.TRIPLEO_HEAT_TEMPLATES)
|
constants.TRIPLEO_HEAT_TEMPLATES)
|
||||||
@ -255,7 +253,5 @@ class UpgradeConvergeOvercloud(DeployOvercloud):
|
|||||||
constants.UPGRADE_CONVERGE_ENV)
|
constants.UPGRADE_CONVERGE_ENV)
|
||||||
|
|
||||||
super(UpgradeConvergeOvercloud, self).take_action(parsed_args)
|
super(UpgradeConvergeOvercloud, self).take_action(parsed_args)
|
||||||
# Run converge steps
|
|
||||||
package_update.converge_nodes(clients, container=stack_name)
|
|
||||||
print("Completed Overcloud Upgrade Converge for stack {0}".format(
|
print("Completed Overcloud Upgrade Converge for stack {0}".format(
|
||||||
stack_name))
|
stack.stack_name))
|
||||||
|
Loading…
Reference in New Issue
Block a user