diff --git a/tripleoclient/tests/v1/overcloud_deploy/test_overcloud_deploy.py b/tripleoclient/tests/v1/overcloud_deploy/test_overcloud_deploy.py index 80fdd07fe..97dcd5016 100644 --- a/tripleoclient/tests/v1/overcloud_deploy/test_overcloud_deploy.py +++ b/tripleoclient/tests/v1/overcloud_deploy/test_overcloud_deploy.py @@ -1420,7 +1420,7 @@ class TestDeployOvercloud(fakes.TestDeployOvercloud): self.assertTrue(fixture.mock_config_download.called) self.assertTrue(fixture.mock_set_deployment_status.called) self.assertEqual( - 'deploying', + 'DEPLOY_SUCCESS', fixture.mock_set_deployment_status.call_args[-1]['status'] ) mock_copy.assert_called_once() @@ -1457,7 +1457,7 @@ class TestDeployOvercloud(fakes.TestDeployOvercloud): self.assertTrue(fixture.mock_config_download.called) self.assertTrue(fixture.mock_set_deployment_status.called) self.assertEqual( - 'deploying', + 'DEPLOY_SUCCESS', fixture.mock_set_deployment_status.call_args[-1]['status']) mock_copy.assert_called_once() @@ -1501,7 +1501,7 @@ class TestDeployOvercloud(fakes.TestDeployOvercloud): self.assertTrue(fixture.mock_config_download.called) self.assertTrue(fixture.mock_set_deployment_status.called) self.assertEqual( - 'failed', + 'DEPLOY_FAILED', fixture.mock_set_deployment_status.call_args[-1]['status']) @mock.patch('tripleoclient.utils.copy_clouds_yaml') diff --git a/tripleoclient/tests/v1/test_overcloud_plan.py b/tripleoclient/tests/v1/test_overcloud_plan.py index 654a4a315..2815a7812 100644 --- a/tripleoclient/tests/v1/test_overcloud_plan.py +++ b/tripleoclient/tests/v1/test_overcloud_plan.py @@ -257,12 +257,15 @@ class TestOvercloudDeployPlan(utils.TestCommand): self.addCleanup(sleep_patch.stop) sleep_patch.start() + @mock.patch("tripleoclient.utils.update_deployment_status", autospec=True) @mock.patch("tripleoclient.utils.run_ansible_playbook", autospec=True) @mock.patch('tripleoclient.utils.wait_for_stack_ready', autospec=True) @mock.patch('os.chdir', autospec=True) @mock.patch('tempfile.mkdtemp', autospec=True) def test_overcloud_deploy_plan(self, mock_tmp, mock_cd, - mock_for_stack_ready, mock_run_playbook): + mock_for_stack_ready, + mock_run_playbook, + mock_update_status): # Setup arglist = ['--run-validations', 'overcast'] @@ -295,6 +298,7 @@ class TestOvercloudDeployPlan(utils.TestCommand): }, verbosity=3, ) + mock_update_status.assert_called() class TestOvercloudExportPlan(utils.TestCommand): diff --git a/tripleoclient/v1/overcloud_deploy.py b/tripleoclient/v1/overcloud_deploy.py index 06f405ab3..a32d44d7b 100644 --- a/tripleoclient/v1/overcloud_deploy.py +++ b/tripleoclient/v1/overcloud_deploy.py @@ -1010,7 +1010,7 @@ class DeployOvercloud(command.Command): deployment.set_deployment_status( clients=self.clients, plan=stack.stack_name, - status='deploying' + status='DEPLOYING' ) try: @@ -1051,11 +1051,15 @@ class DeployOvercloud(command.Command): in_flight_validations=parsed_args.inflight, deployment_timeout=timeout ) + deployment.set_deployment_status( + clients=self.clients, + plan=stack.stack_name, + status='DEPLOY_SUCCESS') except Exception: deployment.set_deployment_status( clients=self.clients, plan=stack.stack_name, - status='failed' + status='DEPLOY_FAILED' ) raise diff --git a/tripleoclient/workflows/deployment.py b/tripleoclient/workflows/deployment.py index 18083cb44..b0f045bfe 100644 --- a/tripleoclient/workflows/deployment.py +++ b/tripleoclient/workflows/deployment.py @@ -92,13 +92,22 @@ def deploy_and_wait(log, clients, stack, plan_name, verbose_level, marker = events[0].id if events else None action = 'UPDATE' - deploy( - container=plan_name, - run_validations=run_validations, - skip_deploy_identifier=skip_deploy_identifier, - timeout=timeout, - verbosity=verbose_level - ) + set_deployment_status(clients=clients, + plan=plan_name, + status='DEPLOYING') + + try: + deploy( + container=plan_name, + run_validations=run_validations, + skip_deploy_identifier=skip_deploy_identifier, + timeout=timeout, + verbosity=verbose_level) + except Exception: + set_deployment_status(clients=clients, + plan=plan_name, + status='DEPLOY_FAILED') + raise verbose_events = verbose_level >= 1 @@ -111,7 +120,7 @@ def deploy_and_wait(log, clients, stack, plan_name, verbose_level, set_deployment_status( clients=clients, plan=plan_name, - status='failed' + status='DEPLOY_FAILED' ) if stack is None: raise exceptions.DeploymentError("Heat Stack create failed.") @@ -593,8 +602,7 @@ def set_deployment_status(clients, plan, status): :param status: Current status of the deployment. :type status: String """ - - deploy_status = 'DEPLOY_{}'.format(status.upper()) + deploy_status = '{}'.format(status.upper()) utils.update_deployment_status( clients=clients, plan=plan,