# How to add callback when i use ansible2.0 python api PlaybookCLI()

**URL:** <https://forum.ansible.com/t/how-to-add-callback-when-i-use-ansible2-0-python-api-playbookcli/22208>\
**Category:** Ansible Project\
**Created:** [August 4, 2016, 1:54am UTC](https://forum.ansible.com/t/how-to-add-callback-when-i-use-ansible2-0-python-api-playbookcli/22208 "2016-08-04T01:54:56Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![shaolongtan0886](https://avatars.discourse-cdn.com/v4/letter/s/a88e4f/32.png) [@shaolongtan0886](https://forum.ansible.com/u/shaolongtan0886)\
**Post date:** [August 4, 2016, 1:54am UTC](https://forum.ansible.com/t/how-to-add-callback-when-i-use-ansible2-0-python-api-playbookcli/22208/1 "2016-08-04T01:54:56Z")

</div>

Hello everybody,

I am writing a python script by Asible2.0 python api. My script work well when I just run a playbook by PlaybookCLI(). Currently, I want to add a callback with running the playbook, but the callback function is not work in PlaybookCLI(). Who know the reason? If I mistake to use the PlaybookCLI, how to change? Thanks for you.

My ansible version is 2.1. The below is my code and the myplaybook.yaml just do “/usr/bin/uptime” in target machines.

#!/usr/bin/env python

from ansible.cli.playbook import PlaybookCLI  
from ansible.plugins.callback import CallbackBase

class ResultCallback(CallbackBase):  
def v2\_runner\_on\_ok(self, result, \*\*kwargs):  
print(“this is my test”)  
host = result.\_host  
print json.dumps({host.name: result.\_result}, indent=4)

results\_callback = ResultCallback()  
my\_cli=PlaybookCLI([‘’, ‘/home/vagrant/myplaybook.yaml’, ‘-s’], callback=results\_callback)  
my\_cli.parse()  
results=my\_cli.run()
