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, tiny...@gmail.com 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 ansible-project+unsubscr...@googlegroups.com. To post to this group, send email to ansible-project@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/41a580e5-7885-470d-91d5-84e3c8ce1c0e%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.