Have you 'whitelisted' your plugin in your ansible.cfg?

# callback_whitelist = timer, mail
callback_whitelist = log_plays 

If so, you can throw in some print statements temporarily to debug it.

You might want to whitelist the context_demo plugin as that will show you 
what play and task objects are available to plugins.

Hope this helps.

Jon

On Monday, 8 February 2016 10:20:33 UTC, Ankit Kulkarni wrote:
>
> Can anyone help with below . Its not yet solved for me . 
>
> On Wednesday, February 3, 2016 at 8:05:31 PM UTC+5:30, Ankit Kulkarni 
> wrote:
>>
>>
>> On Wednesday, February 3, 2016 at 7:41:53 PM UTC+5:30, J Hawkesworth 
>> wrote:
>>>
>>> Yes the internal ansible APIs have changed in v2
>>>
>>> Have a look at the other plugins in your ansible installation.
>>>
>>> For example
>>>
>>> site-packages/ansible/plugins/callback/timer.py
>>>
>>> You will notice that the plugins now subclass CallbackModule.
>>>
>>> Another change in Ansible 2.0 is that you can just whitelist the plugins 
>>> that you want to use in your ansible.cfg, rather than having to copy them 
>>> to somewhere on your plugin path.
>>>
>>> Hope this helps,
>>>
>>> Jon
>>>
>>> On Wednesday, 3 February 2016 13:48:38 UTC, [email protected] wrote:
>>>>
>>>> I believe you should use 'v2_' versions of functions in 2.0
>>>>
>>>
>>
>> Thanks a lot guys . I used the 'v2_' versions of the functions however it 
>> still couldn't work. I have the following below code . Is something wrong 
>> in it 
>>
>> class CallbackModule(CallbackBase):
>>     """
>>     logs playbook results, per host, in /var/log/ansible/hosts
>>     """
>>     CALLBACK_VERSION = 2.0
>>     CALLBACK_TYPE = 'notification'
>>     CALLBACK_NAME = 'log_plays'
>>     CALLBACK_NEEDS_WHITELIST = True
>>
>>
>>     TIME_FORMAT="%b %d %Y %H:%M:%S"
>>     MSG_FORMAT="%(now)s - %(category)s - %(data)s\n\n"
>>
>>
>>     def __init__(self):
>>
>>
>>         super(CallbackModule, self).__init__()
>>
>>
>>         if not os.path.exists("/var/log/ansible/hosts"):
>>             os.makedirs("/var/log/ansible/hosts")
>>
>>
>>     def log(self, host, category, data):
>>         if type(data) == dict:
>>             if '_ansible_verbose_override' in data:
>>                 # avoid logging extraneous data
>>                 data = 'omitted'
>>             else:
>>                 data = data.copy()
>>                 invocation = data.pop('invocation', None)
>>                 data = json.dumps(data)
>>                 if invocation is not None:
>>                     data = json.dumps(invocation) + " => %s " % data
>>
>>         path = os.path.join("/var/log/ansible/hosts", host)
>>         now = time.strftime(self.TIME_FORMAT, time.localtime())
>>         msg = to_bytes(self.MSG_FORMAT % dict(now=now, category=category, 
>> data=data))
>>         with open(path, "ab") as fd:
>>             fd.write(msg)
>>
>>
>>     def v2_runner_on_failed(self, host, res, ignore_errors=False):
>>         self.log(host, 'FAILED', res)
>>
>>
>>     def v2_runner_on_ok(self, host, res):
>>         self.log(host, 'OKkkkk', res)
>>
>>
>>     def v2_runner_on_skipped(self, host, item=None):
>>         self.log(host, 'SKIPPED', '...')
>>
>>
>>     def v2_runner_on_unreachable(self, host, res):
>>         self.log(host, 'UNREACHABLE', res)
>>
>>
>>     def v2_runner_on_async_failed(self, host, res, jid):
>>         self.log(host, 'ASYNC_FAILED', res)
>>
>>
>>     def v2_playbook_on_import_for_host(self, host, imported_file):
>>         self.log(host, 'IMPORTED', imported_file)
>>
>>
>>     def v2_playbook_on_not_import_for_host(self, host, missing_file):
>>         self.log(host, 'NOTIMPORTED', missing_file)
>>  
>>
>> It still didn't overrided . 
>>
>>>
>>>> On Wednesday, February 3, 2016 at 4:23:05 PM UTC+3, Ankit Kulkarni 
>>>> wrote:
>>>>>
>>>>> We are using ansible in our production and our log_plays callback 
>>>>> plugin just broke after upgrading from 1.9.4 to 2.0.0.1 .
>>>>>   
>>>>> I need to put my custom logging using log_plays.py ( say store the 
>>>>> results in a sqllitedb for later analysis ) . The same was working fine 
>>>>> till ansible 1.9.4 . I am using *ansible 2.0.0 on ubuntu 14.04 64 bit 
>>>>> . *
>>>>>
>>>>> I used this log file 
>>>>> https://github.com/ansible/ansible/blob/stable-2.0.0.1/lib/ansibale/plugins/callback/log_plays.py
>>>>>  
>>>>> . Any function overrided under the `class CallbackModule(CallbackBase):` 
>>>>> are not reflecting while the code outside class is working .  
>>>>>
>>>>> Example - 
>>>>>
>>>>> def runner_on_ok(self, host, res):
>>>>>         self.log(host, 'ok-it-worked', res)
>>>>>
>>>>>
>>>>> I wanted to use the *playbook_on_stats(self, stats) *function . How 
>>>>>> can I use it  ? I can see the changes from the 1.9.4 log_plays.py file 
>>>>>> https://github.com/ansible/ansible/blob/stable-1.9/plugins/callbacks/log_plays.py
>>>>>>  
>>>>>>  like now  not all functions are included but not getting why the 
>>>>>> functions 
>>>>>> are not overriding . 
>>>>>
>>>>>
>>>>>
>>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/e7209659-5d04-4589-82ae-b5ee2cc2e7b0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to