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', 'tripleo.plan_management.v1.get_deprecated_parameters',
workflow_input={'container': 'container-name'}) workflow_input={'container': 'container-name'})
@mock.patch("sys.stdout", new_callable=TestStringCapture) def test_check_deprecated_params_user_defined(self):
def test_check_deprecated_params_user_defined(self, mock_print): msg = ("WARNING: Following parameter(s) are deprecated and still "
"defined. Deprecated parameters will be removed soon!"
" TestParameter1")
deprecated_params = [{'parameter': 'TestParameter1', deprecated_params = [{'parameter': 'TestParameter1',
'deprecated': True, 'deprecated': True,
'user_defined': True}] 'user_defined': True}]
@@ -181,19 +183,16 @@ class TestParameterWorkflows(utils.TestCommand):
"deprecated": deprecated_params "deprecated": deprecated_params
}]) }])
with mock.patch('tripleoclient.workflows.parameters.LOG') as mock_log:
parameters.check_deprecated_parameters( parameters.check_deprecated_parameters(
self.app.client_manager, self.app.client_manager,
container='container-name') container='container-name')
self.workflow.executions.create.assert_called_once_with( self.workflow.executions.create.assert_called_once_with(
'tripleo.plan_management.v1.get_deprecated_parameters', 'tripleo.plan_management.v1.get_deprecated_parameters',
workflow_input={'container': 'container-name'}) workflow_input={'container': 'container-name'})
mock_log.warning.assert_called_once_with(msg)
std_output = mock_print.getvalue() def test_check_deprecated_params_user_not_defined(self):
self.assertIn('TestParameter1', std_output)
@mock.patch("sys.stdout", new_callable=TestStringCapture)
def test_check_deprecated_params_user_not_defined(self, mock_print):
deprecated_params = [{'parameter': 'TestParameter1', deprecated_params = [{'parameter': 'TestParameter1',
'deprecated': True}] 'deprecated': True}]
self.websocket.wait_for_messages.return_value = iter([{ self.websocket.wait_for_messages.return_value = iter([{
@@ -202,16 +201,14 @@ class TestParameterWorkflows(utils.TestCommand):
"deprecated": deprecated_params "deprecated": deprecated_params
}]) }])
with mock.patch('tripleoclient.workflows.parameters.LOG') as mock_log:
parameters.check_deprecated_parameters( parameters.check_deprecated_parameters(
self.app.client_manager, self.app.client_manager,
container='container-name') container='container-name')
self.workflow.executions.create.assert_called_once_with( self.workflow.executions.create.assert_called_once_with(
'tripleo.plan_management.v1.get_deprecated_parameters', 'tripleo.plan_management.v1.get_deprecated_parameters',
workflow_input={'container': 'container-name'}) workflow_input={'container': 'container-name'})
self.assertFalse(mock_log.log.warning.called)
std_output = mock_print.getvalue()
self.assertNotIn('TestParameter1', std_output)
def test_generate_fencing_parameters(self): def test_generate_fencing_parameters(self):
self.websocket.wait_for_messages.return_value = iter([{ self.websocket.wait_for_messages.return_value = iter([{

View File

@@ -9,12 +9,16 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
import logging
import yaml import yaml
from tripleoclient import exceptions from tripleoclient import exceptions
from tripleoclient.workflows import base from tripleoclient.workflows import base
LOG = logging.getLogger(__name__)
def update_parameters(workflow_client, **input_): def update_parameters(workflow_client, **input_):
return base.call_action(workflow_client, 'tripleo.parameters.update', return base.call_action(workflow_client, 'tripleo.parameters.update',
**input_) **input_)
@@ -121,23 +125,31 @@ def check_deprecated_parameters(clients, container):
'invalid_role_specific', []) 'invalid_role_specific', [])
if deprecated_params: if deprecated_params:
print('WARNING: Following parameter(s) are deprecated and still ' deprecated_join = ', '.join(
'defined. Deprecated parameters will be removed soon!') ['{param}'.format(param=param) for param in deprecated_params])
print('\n'.join([' {}'.format(param) LOG.warning(
for param in deprecated_params])) '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: 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 ' 'in plan. Could be possible that parameter is valid but '
'currently not used.') 'currently not used.'
print('\n'.join([' {}'.format(param) ' {unused_join}'.format(unused_join=unused_join))
for param in unused_params]))
if invalid_role_specific_params: if invalid_role_specific_params:
print('WARNING: Following parameter(s) are not supported as ' invalid_join = ', '.join(
'role-specific inputs.') ['{param}'.format(
print('\n'.join([' {}'.format(param) param=param) for param in invalid_role_specific_params])
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): def generate_fencing_parameters(clients, **workflow_input):