62 lines
2.6 KiB
Python
62 lines
2.6 KiB
Python
import os
|
|
|
|
from __future__ import (absolute_import, division, print_function)
|
|
__metaclass__ = type
|
|
|
|
|
|
from ansible.plugins.callback import CallbackBase
|
|
from ansible import constants as C
|
|
from ansible.utils.color import colorize, hostcolor
|
|
from ansible.utils.display import Display
|
|
|
|
|
|
class CallbackModule(CallbackBase):
|
|
CALLBACK_VERSION = 2.0
|
|
CALLBACK_TYPE = 'notification'
|
|
CALLBACK_NAME = 'job_status'
|
|
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
super(CallbackModule, self).__init__()
|
|
|
|
|
|
def v2_playbook_on_start(self, playbook):
|
|
self._display.display(self.CALLBACK_NAME, color=C.COLOR_OK)
|
|
self._display.display("Custom commands for <v2_playbook_on_start> go here", color=C.COLOR_OK)
|
|
|
|
|
|
def v2_playbook_on_play_start(self,play):
|
|
self._display.display("Custom commands for <v2_playbook_on_play_start> go here", color=C.COLOR_OK)
|
|
|
|
# Setup and use extra_vars from custom credential:
|
|
vm = play.get_variable_manager()
|
|
extra_vars = vm.extra_vars
|
|
|
|
self.job_status_url = extra_vars['job_status_url']
|
|
self.job_status_token = extra_vars['job_status_token']
|
|
self.callbacks_enabled = extra_vars['callbacks_enabled']
|
|
self.im_defined_in_job_template = extra_vars['im_defined_in_job_template']
|
|
# self.callback_demo_job_id = os.environ('JOB_ID')
|
|
self.callback_demo_job_id = dict(os.environ)
|
|
# self.the_var_manager = vm
|
|
# self.all_the_vars = extra_vars
|
|
|
|
|
|
def v2_playbook_on_task_start(self, task, is_conditional):
|
|
self._display.display("Custom commands for <v2_playbook_on_task_start> go here", color=C.COLOR_OK)
|
|
self._display.display("EXTRA_VAR: job_status_url > %s" % self.job_status_url)
|
|
self._display.display("EXTRA_VAR: job_status_token > %s" % (self.job_status_token))
|
|
self._display.display("EXTRA_VAR: callbacks_enabled > %s" % (self.callbacks_enabled))
|
|
|
|
|
|
def playbook_on_stats(self, stats):
|
|
self._display.display("<playbook_on_stats>", color=C.COLOR_OK)
|
|
self._display.display("EXTRA_VAR: job_status_url > %s" % self.job_status_url)
|
|
self._display.display("EXTRA_VAR: job_status_token > %s" % self.job_status_token)
|
|
self._display.display("EXTRA_VAR: callbacks_enabled > %s" % self.callbacks_enabled)
|
|
self._display.display("JOB TEMPLATE EXTRA_VAR: im_defined_in_job_template > %s" % self.im_defined_in_job_template)
|
|
self._display.display("PLAYBOOK SET_FACT: callback_demo_job_id > %s" % self.callback_demo_job_id)
|
|
# self._display.display("VM: the_var_manager > %s" % self.the_var_manager)
|
|
# self._display.display("All Vars: all_the_vars > %s" % self.all_the_vars)
|
|
|