diff --git a/lib/ansible/modules/utilities/logic/assert.py b/lib/ansible/modules/utilities/logic/assert.py index ad004db220..a2c6e35672 100644 --- a/lib/ansible/modules/utilities/logic/assert.py +++ b/lib/ansible/modules/utilities/logic/assert.py @@ -30,6 +30,10 @@ options: msg: description: - "The customized message used for a failing assertion" + success_msg: + version_added: "2.7" + description: + - "The customized message used for a successful assertion" notes: - This module is also supported for Windows targets. author: @@ -50,4 +54,5 @@ EXAMPLES = ''' - "my_param <= 100" - "my_param >= 0" msg: "'my_param' must be between 0 and 100" + success_msg: "'my_param' is between 0 and 100" ''' diff --git a/lib/ansible/plugins/action/assert.py b/lib/ansible/plugins/action/assert.py index bf9fc6bb96..26900cf163 100644 --- a/lib/ansible/plugins/action/assert.py +++ b/lib/ansible/plugins/action/assert.py @@ -20,6 +20,7 @@ __metaclass__ = type from ansible.errors import AnsibleError from ansible.playbook.conditional import Conditional from ansible.plugins.action import ActionBase +from ansible.module_utils.six import string_types class ActionModule(ActionBase): @@ -38,8 +39,11 @@ class ActionModule(ActionBase): raise AnsibleError('conditional required in "that" string') msg = None - if 'msg' in self._task.args: + success_msg = None + if 'msg' in self._task.args and isinstance(self._task.args['msg'], string_types): msg = self._task.args['msg'] + if 'success_msg' in self._task.args and isinstance(self._task.args['success_msg'], string_types): + success_msg = self._task.args['success_msg'] # make sure the 'that' items are a list thats = self._task.args['that'] @@ -67,5 +71,8 @@ class ActionModule(ActionBase): return result result['changed'] = False - result['msg'] = 'All assertions passed' + if success_msg is not None: + result['msg'] = success_msg + else: + result['msg'] = 'All assertions passed' return result