From 97b68ec0597123840ee3d1c5b58422e6c437cb05 Mon Sep 17 00:00:00 2001 From: Alex Schultz Date: Wed, 3 Jun 2020 14:15:50 -0600 Subject: [PATCH] Prepend timestamp callback output It's useful to know when a command last ran as well as being able to cross coordinate when something was running between the ansible output and other logs. We can use the output timestamp do this. Change-Id: I3f55f0a7f966f025a9938576ccf735f50f4c8589 --- .../ansible_plugins/callback/tripleo_dense.py | 8 ++++--- .../callback/tripleo_profile_tasks.py | 23 +++++++++++++------ 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/tripleo_ansible/ansible_plugins/callback/tripleo_dense.py b/tripleo_ansible/ansible_plugins/callback/tripleo_dense.py index c3c634112..9281da100 100644 --- a/tripleo_ansible/ansible_plugins/callback/tripleo_dense.py +++ b/tripleo_ansible/ansible_plugins/callback/tripleo_dense.py @@ -6,15 +6,17 @@ import uuid from ansible import constants as C from ansible.playbook.task_include import TaskInclude from ansible.plugins.callback.default import CallbackModule as DefaultCallback +from datetime import datetime class CallbackModule(DefaultCallback): - def _output(self, msg, color): + def _output(self, msg, color=None): + timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f") if isinstance(msg, list): - output = ' | '.join(msg) + output = ' | '.join([timestamp] + msg) else: - output = msg + output = timestamp + ' | ' + msg self._display.display(output, color=color) def _get_host(self, result): diff --git a/tripleo_ansible/ansible_plugins/callback/tripleo_profile_tasks.py b/tripleo_ansible/ansible_plugins/callback/tripleo_profile_tasks.py index cbf925210..39fd8ee51 100644 --- a/tripleo_ansible/ansible_plugins/callback/tripleo_profile_tasks.py +++ b/tripleo_ansible/ansible_plugins/callback/tripleo_profile_tasks.py @@ -7,6 +7,7 @@ from ansible import constants as C from ansible.plugins.callback.profile_tasks import secondsToStr from ansible.plugins.callback.profile_tasks import timestamp from ansible.plugins.callback.profile_tasks import CallbackModule as PT +from datetime import datetime DOCUMENTATION = ''' callback: tripleo_profile_tasks @@ -49,6 +50,14 @@ class CallbackModule(PT): self.start_time = time.time() super(CallbackModule, self).__init__() + def _output(self, msg, color): + timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f") + if isinstance(msg, list): + output = ' | '.join([timestamp] + msg) + else: + output = timestamp + ' | ' + msg + self._output(output, color=color) + def _output_previous_timings(self, uuid): # no previous timing because uuid was null if not uuid: @@ -60,7 +69,7 @@ class CallbackModule(PT): secondsToStr(time.time() - self.start_time), u'{0:.02f}s'.format(self.stats[uuid].get('time', '-1')) ] - self._display.display(' | '.join(line), color=C.COLOR_DEBUG) + self._output(line, C.COLOR_DEBUG) def _record_task(self, task): timestamp(self) @@ -84,10 +93,10 @@ class CallbackModule(PT): ) results = results[:self.task_output_limit] - self._display.display('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' - ' Summary Information ' - '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~') - self._display.display( + self._output('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' + ' Summary Information ' + '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~') + self._output( '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' ' Elapsed Time: {} ' '~~~~~~~~~~~~~~~~~~~~~~~~~~~~'.format( @@ -99,7 +108,7 @@ class CallbackModule(PT): '{}'.format('Task Name'), '{:>10}'.format('Run Time'), ] - self._display.display(' | '.join(header)) + self._output(' | '.join(header)) for uuid, result in results: line = [ @@ -108,4 +117,4 @@ class CallbackModule(PT): result['name'], u'{0:.02f}s'.format(result['time']) ] - self._display.display(' | '.join(line)) + self._output(' | '.join(line))