I think the mechanism changed in Ansible 2. You might have to get your play
object in v2_playbook_on_play_start and then use that variable in on_stats
. Something like
class CallbackModule(object):
def __init__(self):
super(CallbackModule,self).__init__()
self.play = None
def v2_playbook_on_play_start(self, play):
self.play = play
.....
def v2_playbook_on_stats(self, stats):
extra_vars = self.play._variable_manager.extra_vars
jira_ticket = extra_vars['jira_ticket']
On Sat, Aug 27, 2016 at 1:08 AM, Sam Sen <[email protected]> wrote:
> I inherited a callback plugin that was woirking with Ansible 1.9. We
> upgraded to 2.1 and it no longer works.
>
> Looks like it's trying to access the playbook object but it's not getting
> passed into "v2_playbook_on_stats." My Python is rusty so I'm not sure how
> I can go about accessing that data. I'm tryijng to access the "extra-vars"
> variable but it's giving me the following error:
>
> [WARNING]: Failure using method (v2_playbook_on_stats) in callback plugin
> (</home/deployment/scripts/playbooks-2.0/callback/log_to_mongo.CallbackModule
> object at 0x2b8cf90>): 'NoneType' object has no
> attribute 'extra_vars'
>
>
> class CallbackModule(object):
> """
> An ansible callback module for saving Ansible output to a database log
> """
> def __init__(self):
> self.playbook = None
> self.playbook_name = None
> self.play = None
> self.task = None
>
> CALLBACK_VERSION = 2.0
> CALLBACK_TYPE = 'notification'
> CALLBACK_NAME = 'log_to_mongo'
> CALLBACK_NEEDS_WHITELIST = False
>
> def v2_playbook_on_stats(self, stats):
> global jira_ticket
> global deployed_modules
> global ocd_job_id
> global environment_id
>
> deployed_modules = []
> jira_ticket = self.playbook.extra_vars['jira_ticket']
> ocd_job_id = self.playbook.extra_vars['ocd_job_id']
> environment_id = self.playbook.extra_vars['environment_id']
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ansible Development" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>
--
Raja
rajasaur at gmail.com
--
You received this message because you are subscribed to the Google Groups
"Ansible Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.