diff options
Diffstat (limited to 'lib/ansible/plugins/callback/jabber.py')
-rw-r--r-- | lib/ansible/plugins/callback/jabber.py | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/lib/ansible/plugins/callback/jabber.py b/lib/ansible/plugins/callback/jabber.py deleted file mode 100644 index a2b12d3a85..0000000000 --- a/lib/ansible/plugins/callback/jabber.py +++ /dev/null @@ -1,118 +0,0 @@ -# Copyright (C) 2016 maxn nikolaev.makc@gmail.com -# Copyright (c) 2017 Ansible Project -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) - -from __future__ import (absolute_import, division, print_function) -__metaclass__ = type - -DOCUMENTATION = ''' - callback: jabber - type: notification - short_description: post task events to a jabber server - description: - - The chatty part of ChatOps with a Hipchat server as a target - - This callback plugin sends status updates to a HipChat channel during playbook execution. - version_added: "2.2" - requirements: - - xmpp (python lib https://github.com/ArchipelProject/xmpppy) - options: - server: - description: connection info to jabber server - required: True - env: - - name: JABBER_SERV - user: - description: Jabber user to authenticate as - required: True - env: - - name: JABBER_USER - password: - description: Password for the user to the jabber server - required: True - env: - - name: JABBER_PASS - to: - description: chat identifier that will receive the message - required: True - env: - - name: JABBER_TO -''' - -import os - -HAS_XMPP = True -try: - import xmpp -except ImportError: - HAS_XMPP = False - -from ansible.plugins.callback import CallbackBase - - -class CallbackModule(CallbackBase): - - CALLBACK_VERSION = 2.0 - CALLBACK_TYPE = 'notification' - CALLBACK_NAME = 'jabber' - CALLBACK_NEEDS_WHITELIST = True - - def __init__(self, display=None): - - super(CallbackModule, self).__init__(display=display) - - if not HAS_XMPP: - self._display.warning("The required python xmpp library (xmpppy) is not installed. " - "pip install git+https://github.com/ArchipelProject/xmpppy") - self.disabled = True - - self.serv = os.getenv('JABBER_SERV') - self.j_user = os.getenv('JABBER_USER') - self.j_pass = os.getenv('JABBER_PASS') - self.j_to = os.getenv('JABBER_TO') - - if (self.j_user or self.j_pass or self.serv or self.j_to) is None: - self.disabled = True - self._display.warning('Jabber CallBack wants the JABBER_SERV, JABBER_USER, JABBER_PASS and JABBER_TO environment variables') - - def send_msg(self, msg): - """Send message""" - jid = xmpp.JID(self.j_user) - client = xmpp.Client(self.serv, debug=[]) - client.connect(server=(self.serv, 5222)) - client.auth(jid.getNode(), self.j_pass, resource=jid.getResource()) - message = xmpp.Message(self.j_to, msg) - message.setAttr('type', 'chat') - client.send(message) - client.disconnect() - - def v2_runner_on_ok(self, result): - self._clean_results(result._result, result._task.action) - self.debug = self._dump_results(result._result) - - def v2_playbook_on_task_start(self, task, is_conditional): - self.task = task - - def v2_playbook_on_play_start(self, play): - """Display Playbook and play start messages""" - self.play = play - name = play.name - self.send_msg("Ansible starting play: %s" % (name)) - - def playbook_on_stats(self, stats): - name = self.play - hosts = sorted(stats.processed.keys()) - failures = False - unreachable = False - for h in hosts: - s = stats.summarize(h) - if s['failures'] > 0: - failures = True - if s['unreachable'] > 0: - unreachable = True - - if failures or unreachable: - out = self.debug - self.send_msg("%s: Failures detected \n%s \nHost: %s\n Failed at:\n%s" % (name, self.task, h, out)) - else: - out = self.debug - self.send_msg("Great! \n Playbook %s completed:\n%s \n Last task debug:\n %s" % (name, s, out)) |