Tweak location of stats callback execution and properly relocate stats output code
This commit is contained in:
parent
73a269f9a5
commit
4114a3097f
2 changed files with 32 additions and 31 deletions
|
@ -31,7 +31,6 @@ from ansible.executor.task_queue_manager import TaskQueueManager
|
||||||
from ansible.playbook import Playbook
|
from ansible.playbook import Playbook
|
||||||
from ansible.template import Templar
|
from ansible.template import Templar
|
||||||
|
|
||||||
from ansible.utils.color import colorize, hostcolor
|
|
||||||
from ansible.utils.encrypt import do_encrypt
|
from ansible.utils.encrypt import do_encrypt
|
||||||
from ansible.utils.unicode import to_unicode
|
from ansible.utils.unicode import to_unicode
|
||||||
|
|
||||||
|
@ -174,6 +173,10 @@ class PlaybookExecutor:
|
||||||
if entry:
|
if entry:
|
||||||
entrylist.append(entry) # per playbook
|
entrylist.append(entry) # per playbook
|
||||||
|
|
||||||
|
# send the stats callback for this playbook
|
||||||
|
if self._tqm is not None:
|
||||||
|
self._tqm.send_callback('v2_playbook_on_stats', self._tqm._stats)
|
||||||
|
|
||||||
# if the last result wasn't zero, break out of the playbook file name loop
|
# if the last result wasn't zero, break out of the playbook file name loop
|
||||||
if result != 0:
|
if result != 0:
|
||||||
break
|
break
|
||||||
|
@ -183,42 +186,12 @@ class PlaybookExecutor:
|
||||||
|
|
||||||
finally:
|
finally:
|
||||||
if self._tqm is not None:
|
if self._tqm is not None:
|
||||||
self._tqm.send_callback('v2_playbook_on_stats', self._tqm._stats)
|
|
||||||
self._cleanup()
|
self._cleanup()
|
||||||
|
|
||||||
if self._options.syntax:
|
if self._options.syntax:
|
||||||
display.display("No issues encountered")
|
display.display("No issues encountered")
|
||||||
return result
|
return result
|
||||||
|
|
||||||
# TODO: this stat summary stuff should be cleaned up and moved
|
|
||||||
# to a new method, if it even belongs here...
|
|
||||||
display.banner("PLAY RECAP")
|
|
||||||
|
|
||||||
hosts = sorted(self._tqm._stats.processed.keys())
|
|
||||||
for h in hosts:
|
|
||||||
t = self._tqm._stats.summarize(h)
|
|
||||||
|
|
||||||
display.display(u"%s : %s %s %s %s" % (
|
|
||||||
hostcolor(h, t),
|
|
||||||
colorize(u'ok', t['ok'], 'green'),
|
|
||||||
colorize(u'changed', t['changed'], 'yellow'),
|
|
||||||
colorize(u'unreachable', t['unreachable'], 'red'),
|
|
||||||
colorize(u'failed', t['failures'], 'red')),
|
|
||||||
screen_only=True
|
|
||||||
)
|
|
||||||
|
|
||||||
display.display(u"%s : %s %s %s %s" % (
|
|
||||||
hostcolor(h, t, False),
|
|
||||||
colorize(u'ok', t['ok'], None),
|
|
||||||
colorize(u'changed', t['changed'], None),
|
|
||||||
colorize(u'unreachable', t['unreachable'], None),
|
|
||||||
colorize(u'failed', t['failures'], None)),
|
|
||||||
log_only=True
|
|
||||||
)
|
|
||||||
|
|
||||||
display.display("", screen_only=True)
|
|
||||||
# END STATS STUFF
|
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def _cleanup(self, signum=None, framenum=None):
|
def _cleanup(self, signum=None, framenum=None):
|
||||||
|
|
|
@ -21,6 +21,7 @@ __metaclass__ = type
|
||||||
|
|
||||||
from ansible import constants as C
|
from ansible import constants as C
|
||||||
from ansible.plugins.callback import CallbackBase
|
from ansible.plugins.callback import CallbackBase
|
||||||
|
from ansible.utils.color import colorize, hostcolor
|
||||||
|
|
||||||
class CallbackModule(CallbackBase):
|
class CallbackModule(CallbackBase):
|
||||||
|
|
||||||
|
@ -193,3 +194,30 @@ class CallbackModule(CallbackBase):
|
||||||
color = 'cyan'
|
color = 'cyan'
|
||||||
self._display.display(msg, color='cyan')
|
self._display.display(msg, color='cyan')
|
||||||
|
|
||||||
|
def v2_playbook_on_stats(self, stats):
|
||||||
|
self._display.banner("PLAY RECAP")
|
||||||
|
|
||||||
|
hosts = sorted(stats.processed.keys())
|
||||||
|
for h in hosts:
|
||||||
|
t = stats.summarize(h)
|
||||||
|
|
||||||
|
self._display.display(u"%s : %s %s %s %s" % (
|
||||||
|
hostcolor(h, t),
|
||||||
|
colorize(u'ok', t['ok'], 'green'),
|
||||||
|
colorize(u'changed', t['changed'], 'yellow'),
|
||||||
|
colorize(u'unreachable', t['unreachable'], 'red'),
|
||||||
|
colorize(u'failed', t['failures'], 'red')),
|
||||||
|
screen_only=True
|
||||||
|
)
|
||||||
|
|
||||||
|
self._display.display(u"%s : %s %s %s %s" % (
|
||||||
|
hostcolor(h, t, False),
|
||||||
|
colorize(u'ok', t['ok'], None),
|
||||||
|
colorize(u'changed', t['changed'], None),
|
||||||
|
colorize(u'unreachable', t['unreachable'], None),
|
||||||
|
colorize(u'failed', t['failures'], None)),
|
||||||
|
log_only=True
|
||||||
|
)
|
||||||
|
|
||||||
|
self._display.display("", screen_only=True)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue