community.general/lib/ansible/plugins/callback/timer.py

37 lines
1.1 KiB
Python
Raw Normal View History

# Make coding more python3-ish
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
from datetime import datetime
2015-06-29 17:26:30 +00:00
from ansible.plugins.callback import CallbackBase
2015-06-29 17:26:30 +00:00
class CallbackModule(CallbackBase):
"""
This callback module tells you how long your plays ran for.
"""
CALLBACK_VERSION = 2.0
CALLBACK_TYPE = 'aggregate'
CALLBACK_NAME = 'timer'
CALLBACK_NEEDS_WHITELIST = True
2015-06-29 17:26:30 +00:00
def __init__(self):
2015-06-29 17:26:30 +00:00
super(CallbackModule, self).__init__()
2015-06-29 17:26:30 +00:00
2015-07-17 12:54:28 +00:00
self.start_time = datetime.now()
2015-06-29 17:26:30 +00:00
def days_hours_minutes_seconds(self, runtime):
minutes = (runtime.seconds // 60) % 60
r_seconds = runtime.seconds - (minutes * 60)
return runtime.days, runtime.seconds // 3600, minutes, r_seconds
2015-06-29 17:26:30 +00:00
def playbook_on_stats(self, stats):
self.v2_playbook_on_stats(stats)
2015-07-08 23:55:23 +00:00
2015-06-29 17:26:30 +00:00
def v2_playbook_on_stats(self, stats):
end_time = datetime.now()
runtime = end_time - self.start_time
self._display.display("Playbook run took %s days, %s hours, %s minutes, %s seconds" % (self.days_hours_minutes_seconds(runtime)))