diff --git a/tripleo_common/actions/parameters.py b/tripleo_common/actions/parameters.py index b7c09c4c5..cab32061d 100644 --- a/tripleo_common/actions/parameters.py +++ b/tripleo_common/actions/parameters.py @@ -120,8 +120,9 @@ class UpdateParametersAction(base.TripleOAction): class UpdateRoleParametersAction(UpdateParametersAction): """Updates role related parameters in Mistral Environment .""" - def __init__(self, role): - super(UpdateRoleParametersAction, self).__init__(parameters=None) + def __init__(self, role, container=constants.DEFAULT_CONTAINER_NAME): + super(UpdateRoleParametersAction, self).__init__(parameters=None, + container=container) self.role = role def run(self): diff --git a/tripleo_common/tests/actions/test_parameters.py b/tripleo_common/tests/actions/test_parameters.py index 2f4b7b2df..356ac0dc0 100644 --- a/tripleo_common/tests/actions/test_parameters.py +++ b/tripleo_common/tests/actions/test_parameters.py @@ -171,6 +171,40 @@ class UpdateParametersActionTest(base.TestCase): ) +class UpdateRoleParametersActionTest(base.TestCase): + + @mock.patch('tripleo_common.utils.parameters.set_count_and_flavor_params') + @mock.patch('tripleo_common.actions.base.TripleOAction.' + '_get_baremetal_client') + @mock.patch('tripleo_common.actions.base.TripleOAction.' + '_get_compute_client') + @mock.patch('tripleo_common.actions.base.TripleOAction.' + '_get_workflow_client') + @mock.patch('mistral.context.ctx') + def test_run(self, mock_ctx, mock_get_workflow_client, + mock_get_compute_client, mock_get_baremetal_client, + mock_set_count_and_flavor): + + mock_ctx.return_value = mock.MagicMock() + mock_mistral = mock.MagicMock() + mock_env = mock.MagicMock() + mock_env.name = 'overcast' + mock_env.variables = {} + mock_mistral.environments.get.return_value = mock_env + mock_get_workflow_client.return_value = mock_mistral + + params = {'CephStorageCount': 1, + 'OvercloudCephStorageFlavor': 'ceph-storage'} + mock_set_count_and_flavor.return_value = params + + action = parameters.UpdateRoleParametersAction('ceph-storage', + 'overcast') + action.run() + + mock_mistral.environments.update.assert_called_once_with( + name='overcast', variables={'parameter_defaults': params}) + + class GeneratePasswordsActionTest(base.TestCase): @mock.patch('tripleo_common.actions.base.TripleOAction.' diff --git a/workbooks/baremetal.yaml b/workbooks/baremetal.yaml index 8c23c5ee9..f594e912d 100644 --- a/workbooks/baremetal.yaml +++ b/workbooks/baremetal.yaml @@ -457,6 +457,7 @@ workflows: - tag_node_uuids - untag_node_uuids - role + - plan: overcloud - queue_name: tripleo task-defaults: @@ -478,7 +479,7 @@ workflows: update_role_parameters: on-success: send_message - action: tripleo.parameters.update_role role=<% $.role %> + action: tripleo.parameters.update_role role=<% $.role %> container=<% $.plan %> publish: message: <% task(update_role_parameters).result %> status: SUCCESS