Use logger module instead print.

Use logger module instead print when it's necessary like to display a
warning message. Fix also a pep8 error in the workflows base file.

Change-Id: Ie6f06361ed15bab4d24536a9da88e9c92097771e
Closes-Bug: #1713539
This commit is contained in:
Natal Ngétal
2019-08-02 17:05:21 +02:00
parent c10329fc0e
commit a6b920419c
3 changed files with 47 additions and 38 deletions

View File

@@ -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([{

View File

@@ -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

View File

@@ -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):