2015-10-20 01:36:19 +00:00
|
|
|
# Make coding more python3-ish
|
|
|
|
from __future__ import (absolute_import, division, print_function)
|
|
|
|
__metaclass__ = type
|
|
|
|
|
2015-06-29 17:26:30 +00:00
|
|
|
import os
|
|
|
|
import datetime
|
|
|
|
from datetime import datetime, timedelta
|
|
|
|
|
|
|
|
from ansible.plugins.callback import CallbackBase
|
|
|
|
|
|
|
|
class CallbackModule(CallbackBase):
|
|
|
|
"""
|
|
|
|
This callback module tells you how long your plays ran for.
|
|
|
|
"""
|
|
|
|
CALLBACK_VERSION = 2.0
|
|
|
|
CALLBACK_TYPE = 'aggregate'
|
2015-07-11 03:48:12 +00:00
|
|
|
CALLBACK_NAME = 'timer'
|
2015-06-29 17:26:30 +00:00
|
|
|
|
|
|
|
def __init__(self, display):
|
|
|
|
|
2015-07-08 23:55:23 +00:00
|
|
|
super(CallbackModule, self).__init__(display)
|
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, timedelta):
|
|
|
|
minutes = (timedelta.seconds//60)%60
|
|
|
|
r_seconds = timedelta.seconds - (minutes * 60)
|
|
|
|
return timedelta.days, timedelta.seconds//3600, minutes, r_seconds
|
|
|
|
|
|
|
|
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()
|
|
|
|
timedelta = end_time - self.start_time
|
|
|
|
self._display.display("Playbook run took %s days, %s hours, %s minutes, %s seconds" % (self.days_hours_minutes_seconds(timedelta)))
|
|
|
|
|