mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Some attributes of callbacks aren't in v2. Port plugins to the v2 way to do that
Update porting guide with info on callback porting
This commit is contained in:
parent
fb57818ea3
commit
9e3932ffca
3 changed files with 47 additions and 2 deletions
|
@ -168,7 +168,33 @@ Action plugins
|
|||
Callback plugins
|
||||
----------------
|
||||
|
||||
* callback plugins
|
||||
Although Ansible 2.0 provides a new callback API the old one continues to work
|
||||
for most callback plugins. However, if your callback plugin makes use of
|
||||
:attr:`self.playbook`, :attr:`self.play`, or :attr:`self.task` then you will
|
||||
have to store the values for these yourself as ansible no longer automatically
|
||||
populates the callback with them. Here's a short snippet that shows you how::
|
||||
|
||||
from ansible.plugins.callback import CallbackBase
|
||||
|
||||
class CallbackModule(CallbackBase):
|
||||
def __init__(self):
|
||||
self.playbook = None
|
||||
self.play = None
|
||||
self.task = None
|
||||
|
||||
def v2_playbook_on_start(self, playbook):
|
||||
self.playbook = playbook
|
||||
|
||||
def v2_playbook_on_play_start(self, play):
|
||||
self.play = play
|
||||
|
||||
def v2_playbook_on_task_start(self, task, is_conditional):
|
||||
self.task = task
|
||||
|
||||
def v2_on_any(self, *args, **kwargs):
|
||||
self._display.display('%s: %s: %s' % (self.playbook.name,
|
||||
self.play.name, self.task))
|
||||
|
||||
|
||||
Connection plugins
|
||||
------------------
|
||||
|
|
|
@ -31,8 +31,18 @@ class CallbackModule(CallbackBase):
|
|||
CALLBACK_NAME = 'context_demo'
|
||||
CALLBACK_NEEDS_WHITELIST = True
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.task = None
|
||||
self.play = None
|
||||
|
||||
def v2_on_any(self, *args, **kwargs):
|
||||
i = 0
|
||||
if self.play:
|
||||
play_str = 'play: %s' % self.play.name
|
||||
if self.task:
|
||||
task_str = 'task: %s' % self.task
|
||||
self._display.display("--- %s %s ---" % (self.play_str, self.task_str))
|
||||
|
||||
self._display.display(" --- ARGS ")
|
||||
for a in args:
|
||||
self._display.display(' %s: %s' % (i, a))
|
||||
|
@ -41,3 +51,9 @@ class CallbackModule(CallbackBase):
|
|||
self._display.display(" --- KWARGS ")
|
||||
for k in kwargs:
|
||||
self._display.display(' %s: %s' % (k, kwargs[k]))
|
||||
|
||||
def v2_playbook_on_play_start(self, play):
|
||||
self.play = play
|
||||
|
||||
def v2_playbook_on_task_start(self, task, is_conditional):
|
||||
self.task = task
|
||||
|
|
|
@ -73,6 +73,7 @@ class CallbackModule(CallbackBase):
|
|||
|
||||
self.printed_playbook = False
|
||||
self.playbook_name = None
|
||||
self.play = None
|
||||
|
||||
def send_msg(self, msg, msg_format='text', color='yellow', notify=False):
|
||||
"""Method for sending a message to HipChat"""
|
||||
|
@ -93,9 +94,11 @@ class CallbackModule(CallbackBase):
|
|||
self.display.warning('Could not submit message to hipchat')
|
||||
|
||||
|
||||
def playbook_on_play_start(self, name):
|
||||
def v2_playbook_on_play_start(self, play):
|
||||
"""Display Playbook and play start messages"""
|
||||
|
||||
self.play = play
|
||||
name = play.name
|
||||
# This block sends information about a playbook when it starts
|
||||
# The playbook object is not immediately available at
|
||||
# playbook_on_start so we grab it via the play
|
||||
|
|
Loading…
Reference in a new issue