diff --git a/tripleoclient/tests/workflows/test_parameters.py b/tripleoclient/tests/workflows/test_parameters.py index 30b0bce0a..719b67bfb 100644 --- a/tripleoclient/tests/workflows/test_parameters.py +++ b/tripleoclient/tests/workflows/test_parameters.py @@ -170,8 +170,10 @@ class TestParameterWorkflows(utils.TestCommand): 'tripleo.plan_management.v1.get_deprecated_parameters', workflow_input={'container': 'container-name'}) - @mock.patch("sys.stdout", new_callable=TestStringCapture) - def test_check_deprecated_params_user_defined(self, mock_print): + def test_check_deprecated_params_user_defined(self): + msg = ("WARNING: Following parameter(s) are deprecated and still " + "defined. Deprecated parameters will be removed soon!" + " TestParameter1") deprecated_params = [{'parameter': 'TestParameter1', 'deprecated': True, 'user_defined': True}] @@ -181,19 +183,16 @@ class TestParameterWorkflows(utils.TestCommand): "deprecated": deprecated_params }]) - parameters.check_deprecated_parameters( - self.app.client_manager, - container='container-name') + with mock.patch('tripleoclient.workflows.parameters.LOG') as mock_log: + parameters.check_deprecated_parameters( + self.app.client_manager, + container='container-name') + self.workflow.executions.create.assert_called_once_with( + 'tripleo.plan_management.v1.get_deprecated_parameters', + workflow_input={'container': 'container-name'}) + mock_log.warning.assert_called_once_with(msg) - self.workflow.executions.create.assert_called_once_with( - 'tripleo.plan_management.v1.get_deprecated_parameters', - workflow_input={'container': 'container-name'}) - - std_output = mock_print.getvalue() - self.assertIn('TestParameter1', std_output) - - @mock.patch("sys.stdout", new_callable=TestStringCapture) - def test_check_deprecated_params_user_not_defined(self, mock_print): + def test_check_deprecated_params_user_not_defined(self): deprecated_params = [{'parameter': 'TestParameter1', 'deprecated': True}] self.websocket.wait_for_messages.return_value = iter([{ @@ -202,16 +201,14 @@ class TestParameterWorkflows(utils.TestCommand): "deprecated": deprecated_params }]) - parameters.check_deprecated_parameters( - self.app.client_manager, - container='container-name') - - self.workflow.executions.create.assert_called_once_with( - 'tripleo.plan_management.v1.get_deprecated_parameters', - workflow_input={'container': 'container-name'}) - - std_output = mock_print.getvalue() - self.assertNotIn('TestParameter1', std_output) + with mock.patch('tripleoclient.workflows.parameters.LOG') as mock_log: + parameters.check_deprecated_parameters( + self.app.client_manager, + container='container-name') + self.workflow.executions.create.assert_called_once_with( + 'tripleo.plan_management.v1.get_deprecated_parameters', + workflow_input={'container': 'container-name'}) + self.assertFalse(mock_log.log.warning.called) def test_generate_fencing_parameters(self): self.websocket.wait_for_messages.return_value = iter([{ diff --git a/tripleoclient/workflows/base.py b/tripleoclient/workflows/base.py index 3fc909f9f..565aa27fb 100644 --- a/tripleoclient/workflows/base.py +++ b/tripleoclient/workflows/base.py @@ -78,8 +78,8 @@ def wait_for_messages(mistral, websocket, execution, timeout=None): if payload_exec_id != execution.id and \ payload_root_exec_id != execution.id: - LOG.debug("Ignoring message from execution %s" - % payload_exec_id) + LOG.debug("Ignoring message from execution %s" + % payload_exec_id) else: yield payload # If the message is from a sub-workflow, we just need to pass it diff --git a/tripleoclient/workflows/parameters.py b/tripleoclient/workflows/parameters.py index 2294f1a81..e04fa4bcf 100644 --- a/tripleoclient/workflows/parameters.py +++ b/tripleoclient/workflows/parameters.py @@ -9,12 +9,16 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. +import logging import yaml from tripleoclient import exceptions from tripleoclient.workflows import base +LOG = logging.getLogger(__name__) + + def update_parameters(workflow_client, **input_): return base.call_action(workflow_client, 'tripleo.parameters.update', **input_) @@ -121,23 +125,31 @@ def check_deprecated_parameters(clients, container): 'invalid_role_specific', []) if deprecated_params: - print('WARNING: Following parameter(s) are deprecated and still ' - 'defined. Deprecated parameters will be removed soon!') - print('\n'.join([' {}'.format(param) - for param in deprecated_params])) + deprecated_join = ', '.join( + ['{param}'.format(param=param) for param in deprecated_params]) + LOG.warning( + 'WARNING: Following parameter(s) are deprecated and still ' + 'defined. Deprecated parameters will be removed soon!' + ' {deprecated_join}'.format( + deprecated_join=deprecated_join)) if unused_params: - print('WARNING: Following parameter(s) are defined but not used ' + unused_join = ', '.join( + ['{param}'.format(param=param) for param in unused_params]) + LOG.warning( + 'WARNING: Following parameter(s) are defined but not used ' 'in plan. Could be possible that parameter is valid but ' - 'currently not used.') - print('\n'.join([' {}'.format(param) - for param in unused_params])) + 'currently not used.' + ' {unused_join}'.format(unused_join=unused_join)) if invalid_role_specific_params: - print('WARNING: Following parameter(s) are not supported as ' - 'role-specific inputs.') - print('\n'.join([' {}'.format(param) - for param in invalid_role_specific_params])) + invalid_join = ', '.join( + ['{param}'.format( + param=param) for param in invalid_role_specific_params]) + LOG.warning( + 'WARNING: Following parameter(s) are not supported as ' + 'role-specific inputs. {invalid_join}'.format( + invalid_join=invalid_join)) def generate_fencing_parameters(clients, **workflow_input):