From 8ad52c2e4f71eb2f40826af9bda111f37aa2e980 Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Mon, 13 Jul 2015 15:42:47 -0400 Subject: readded oneline output feature to adhoc fixes #11573 --- lib/ansible/cli/adhoc.py | 7 +++- lib/ansible/plugins/callback/minimal.py | 2 +- lib/ansible/plugins/callback/oneline.py | 57 +++++++++++++++++++++++++++++++++ 3 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 lib/ansible/plugins/callback/oneline.py diff --git a/lib/ansible/cli/adhoc.py b/lib/ansible/cli/adhoc.py index ce5bb0d720..4ea3bab78c 100644 --- a/lib/ansible/cli/adhoc.py +++ b/lib/ansible/cli/adhoc.py @@ -128,6 +128,11 @@ class AdHocCLI(CLI): play_ds = self._play_ds(pattern) play = Play().load(play_ds, variable_manager=variable_manager, loader=loader) + if self.options.one_line: + cb = 'oneline' + else: + cb = 'minimal' + # now create a task queue manager to execute the play self._tqm = None try: @@ -138,7 +143,7 @@ class AdHocCLI(CLI): display=self.display, options=self.options, passwords=passwords, - stdout_callback='minimal', + stdout_callback=cb, ) result = self._tqm.run(play) finally: diff --git a/lib/ansible/plugins/callback/minimal.py b/lib/ansible/plugins/callback/minimal.py index 90a200089d..dd61ee023a 100644 --- a/lib/ansible/plugins/callback/minimal.py +++ b/lib/ansible/plugins/callback/minimal.py @@ -53,7 +53,7 @@ class CallbackModule(CallbackBase): self._display.display("%s | SUCCESS => %s" % (result._host.get_name(), self._dump_results(result._result)), color='green') def v2_runner_on_skipped(self, result): - pass + self._display.display("%s | SKIPPED" % (result._host.get_name()), color='cyan') def v2_runner_on_unreachable(self, result): self._display.display("%s | UNREACHABLE!" % result._host.get_name(), color='yellow') diff --git a/lib/ansible/plugins/callback/oneline.py b/lib/ansible/plugins/callback/oneline.py new file mode 100644 index 0000000000..1fbc5bb032 --- /dev/null +++ b/lib/ansible/plugins/callback/oneline.py @@ -0,0 +1,57 @@ +# (c) 2012-2014, Michael DeHaan +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see . + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible.plugins.callback import CallbackBase + + +class CallbackModule(CallbackBase): + + ''' + This is the default callback interface, which simply prints messages + to stdout when new callback events are received. + ''' + + CALLBACK_VERSION = 2.0 + CALLBACK_TYPE = 'stdout' + CALLBACK_NAME = 'oneline' + + def v2_runner_on_failed(self, result, ignore_errors=False): + if 'exception' in result._result: + if self._display.verbosity < 3: + # extract just the actual error message from the exception text + error = result._result['exception'].strip().split('\n')[-1] + msg = "An exception occurred during task execution. To see the full traceback, use -vvv. The error was: %s" % error + else: + msg = "An exception occurred during task execution. The full traceback is:\n" + result._result['exception'].replace('\n','') + + self._display.display(msg, color='red') + + # finally, remove the exception from the result so it's not shown every time + del result._result['exception'] + + self._display.display("%s | FAILED! => %s" % (result._host.get_name(), self._dump_results(result._result, indent=0).replace('\n','')), color='red') + + def v2_runner_on_ok(self, result): + self._display.display("%s | SUCCESS => %s" % (result._host.get_name(), self._dump_results(result._result, indent=0).replace('\n','')), color='green') + + + def v2_runner_on_unreachable(self, result): + self._display.display("%s | UNREACHABLE!" % result._host.get_name(), color='yellow') -- cgit v1.2.1