From 5552c049763c2f91f4f1f2f5b622408b563f423e Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Thu, 18 Feb 2016 06:58:43 -0800 Subject: allow skipping debug depending on verbosity --- lib/ansible/plugins/action/debug.py | 44 ++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 18 deletions(-) (limited to 'lib/ansible/plugins/action/debug.py') diff --git a/lib/ansible/plugins/action/debug.py b/lib/ansible/plugins/action/debug.py index f07d8ea5d0..7728d45cc2 100644 --- a/lib/ansible/plugins/action/debug.py +++ b/lib/ansible/plugins/action/debug.py @@ -26,7 +26,7 @@ class ActionModule(ActionBase): ''' Print statements during execution ''' TRANSFERS_FILES = False - VALID_ARGS = set(['msg', 'var']) + VALID_ARGS = set(['msg', 'var', 'verbosity']) def run(self, tmp=None, task_vars=None): if task_vars is None: @@ -41,26 +41,34 @@ class ActionModule(ActionBase): result = super(ActionModule, self).run(tmp, task_vars) - if 'msg' in self._task.args: - result['msg'] = self._task.args['msg'] + verbosity = 0 + # get task verbosity + if 'verbosity' in self._task.args: + verbosity = int(self._task.args['verbosity']) - elif 'var' in self._task.args: - try: - results = self._templar.template(self._task.args['var'], convert_bare=True, fail_on_undefined=True, bare_deprecated=False) - if results == self._task.args['var']: - raise AnsibleUndefinedVariable - except AnsibleUndefinedVariable: - results = "VARIABLE IS NOT DEFINED!" + if verbosity <= self._display.verbosity: + if 'msg' in self._task.args: + result['msg'] = self._task.args['msg'] - if type(self._task.args['var']) in (list, dict): - # If var is a list or dict, use the type as key to display - result[to_unicode(type(self._task.args['var']))] = results + elif 'var' in self._task.args: + try: + results = self._templar.template(self._task.args['var'], convert_bare=True, fail_on_undefined=True, bare_deprecated=False) + if results == self._task.args['var']: + raise AnsibleUndefinedVariable + except AnsibleUndefinedVariable: + results = "VARIABLE IS NOT DEFINED!" + + if type(self._task.args['var']) in (list, dict): + # If var is a list or dict, use the type as key to display + result[to_unicode(type(self._task.args['var']))] = results + else: + result[self._task.args['var']] = results else: - result[self._task.args['var']] = results - else: - result['msg'] = 'Hello world!' + result['msg'] = 'Hello world!' - # force flag to make debug output module always verbose - result['_ansible_verbose_always'] = True + # force flag to make debug output module always verbose + result['_ansible_verbose_always'] = True + else: + result['skipped'] = True return result -- cgit v1.2.1