diff --git a/ansible.cfg b/ansible.cfg index 00dd30ad16..9556ad6544 100644 --- a/ansible.cfg +++ b/ansible.cfg @@ -4,6 +4,7 @@ host_key_checking=False display_skipped_hosts=False timeout=60 +callback_whitelist = profile_tasks [ssh_connection] # These options are required to be able to run the playbook over tor and diff --git a/install_files/ansible-base/callback_plugins/profile_tasks.py b/install_files/ansible-base/callback_plugins/profile_tasks.py deleted file mode 100644 index 19ac472590..0000000000 --- a/install_files/ansible-base/callback_plugins/profile_tasks.py +++ /dev/null @@ -1,74 +0,0 @@ -# Source: https://github.com/jlafon/ansible-profile -# License: MIT -# More info: http://jlafon.io/ansible-profiling.html -# The profiling functionality will be provided by Ansible v2, -# since this callback_plugin has been merged into core, -# but we're including here to support older versions of Ansible. -import datetime -import os -import time - - -class CallbackModule(object): - """ - A plugin for timing tasks - """ - def __init__(self): - self.stats = {} - self.current = None - - def playbook_on_task_start(self, name, is_conditional): - """ - Logs the start of each task - """ - - if os.getenv("ANSIBLE_PROFILE_DISABLE") is not None: - return - - if self.current is not None: - # Record the running time of the last executed task - self.stats[self.current] = time.time() - self.stats[self.current] - - # Record the start time of the current task - self.current = name - self.stats[self.current] = time.time() - - def playbook_on_stats(self, stats): - """ - Prints the timings - """ - - if os.getenv("ANSIBLE_PROFILE_DISABLE") is not None: - return - - # Record the timing of the very last task - if self.current is not None: - self.stats[self.current] = time.time() - self.stats[self.current] - - # Sort the tasks by their running time - results = sorted( - self.stats.items(), - key=lambda value: value[1], - reverse=True, - ) - - # Just keep the top 10 - results = results[:10] - - # Print the timings - for name, elapsed in results: - print( - "{0:-<70}{1:->9}".format( - '{0} '.format(name), - ' {0:.02f}s'.format(elapsed), - ) - ) - - total_seconds = sum([x[1] for x in self.stats.items()]) - print("\nPlaybook finished: {0}, {1} total tasks." - " {2} elapsed. \n".format( - time.asctime(), - len(self.stats.items()), - datetime.timedelta(seconds=(int(total_seconds))) - ) - )