56 lines
2.2 KiB
Python

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__()
self.playbook_status_url = None
self.playbook_status_token = None
self.playbook_status_headers = None
self.playbook_status_action = None
def set_options(self, task_keys=None, var_options=None, direct=None):
super(CallbackModule, self).set_options(task_keys=task_keys, var_options=var_options, direct=direct)
# 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.playbook_status_url = self.job_status_url
self.playbook_status_token = self.job_status_token
self.playbook_status_headers = { 'Authorization': "Token %s" % self.playbook_status_token, 'Content-type': 'application/json' }
self.playbook_status_action = self.get_option('playbook_status_action')
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)
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 %s" % (self.job_status_url, self.playbook_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))