fix command warnings, add action warnings (#34060)
* fix command warnings, add action warnings
This commit is contained in:
parent
94d952f94b
commit
a0c171ce1b
5 changed files with 24 additions and 4 deletions
|
@ -288,6 +288,17 @@ COLOR_WARN:
|
|||
env: [{name: ANSIBLE_COLOR_WARN}]
|
||||
ini:
|
||||
- {key: warn, section: colors}
|
||||
ACTION_WARNINGS:
|
||||
name: Toggle action warnings
|
||||
default: True
|
||||
description:
|
||||
- By default Ansible will issue a warning when recieved from a task action (module or action plugin)
|
||||
- These warnings can be silenced by adjusting this setting to False.
|
||||
env: [{name: ANSIBLE_ACTION_WARNINGS}]
|
||||
ini:
|
||||
- {key: action_warnings, section: defaults}
|
||||
type: boolean
|
||||
version_added: "2.5"
|
||||
COMMAND_WARNINGS:
|
||||
name: Command module warnings
|
||||
default: True
|
||||
|
|
|
@ -812,11 +812,12 @@ class AnsibleModule(object):
|
|||
self._warnings = []
|
||||
self._deprecations = []
|
||||
self._clean = {}
|
||||
self._command_warn = True
|
||||
|
||||
self.aliases = {}
|
||||
self._legal_inputs = ['_ansible_check_mode', '_ansible_no_log', '_ansible_debug', '_ansible_diff', '_ansible_verbosity',
|
||||
'_ansible_selinux_special_fs', '_ansible_module_name', '_ansible_version', '_ansible_syslog_facility',
|
||||
'_ansible_socket', '_ansible_shell_executable']
|
||||
'_ansible_socket', '_ansible_shell_executable', '_ansible_command_warnings']
|
||||
self._options_context = list()
|
||||
|
||||
if add_file_common_args:
|
||||
|
@ -1629,6 +1630,9 @@ class AnsibleModule(object):
|
|||
elif k == '_ansible_shell_executable' and v:
|
||||
self._shell = v
|
||||
|
||||
elif k == '_ansible_command_warnings' and v:
|
||||
self._command_warn = v
|
||||
|
||||
elif check_invalid_arguments and k not in legal_inputs:
|
||||
unsupported_parameters.add(k)
|
||||
|
||||
|
|
|
@ -165,7 +165,7 @@ def main():
|
|||
executable=dict(),
|
||||
creates=dict(type='path'),
|
||||
removes=dict(type='path'),
|
||||
warn=dict(type='bool', default=True),
|
||||
warn=dict(type='bool'),
|
||||
stdin=dict(required=False),
|
||||
)
|
||||
)
|
||||
|
@ -179,6 +179,9 @@ def main():
|
|||
warn = module.params['warn']
|
||||
stdin = module.params['stdin']
|
||||
|
||||
if warn is None:
|
||||
warn = module._command_warn
|
||||
|
||||
if not shell and executable:
|
||||
module.warn("As of Ansible 2.4, the parameter 'executable' is no longer supported with the 'command' module. Not using '%s'." % executable)
|
||||
executable = None
|
||||
|
|
|
@ -36,7 +36,6 @@ from ansible.module_utils.json_utils import _filter_non_json_lines
|
|||
from ansible.module_utils.six import binary_type, string_types, text_type, iteritems, with_metaclass
|
||||
from ansible.module_utils.six.moves import shlex_quote
|
||||
from ansible.module_utils._text import to_bytes, to_native, to_text
|
||||
from ansible.module_utils.connection import Connection
|
||||
from ansible.parsing.utils.jsonify import jsonify
|
||||
from ansible.release import __version__
|
||||
from ansible.utils.unsafe_proxy import wrap_var
|
||||
|
@ -613,6 +612,9 @@ class ActionBase(with_metaclass(ABCMeta, object)):
|
|||
# make sure all commands use the designated shell executable
|
||||
module_args['_ansible_shell_executable'] = self._play_context.executable
|
||||
|
||||
# let command know it should avoid specific warnings
|
||||
module_args['_ansible_command_warnings'] = C.COMMAND_WARNINGS
|
||||
|
||||
def _update_connection_options(self, options, variables=None):
|
||||
''' ensures connections have the appropriate information '''
|
||||
update = {}
|
||||
|
|
|
@ -125,7 +125,7 @@ class CallbackBase(AnsiblePlugin):
|
|||
|
||||
def _handle_warnings(self, res):
|
||||
''' display warnings, if enabled and any exist in the result '''
|
||||
if C.COMMAND_WARNINGS:
|
||||
if C.ACTION_WARNINGS:
|
||||
if 'warnings' in res and res['warnings']:
|
||||
for warning in res['warnings']:
|
||||
self._display.warning(warning)
|
||||
|
|
Loading…
Reference in a new issue