%PDF- %PDF-
Direktori : /usr/lib/python2.7/site-packages/salt/states/ |
Current File : //usr/lib/python2.7/site-packages/salt/states/xmpp.py |
# -*- coding: utf-8 -*- ''' Sending Messages over XMPP ========================== .. versionadded:: 2014.1.0 This state is useful for firing messages during state runs, using the XMPP protocol .. code-block:: yaml server-warning-message: xmpp.send_msg: - name: 'This is a server warning message' - profile: my-xmpp-account - recipient: admins@xmpp.example.com/salt ''' # Import Python libs from __future__ import absolute_import, print_function, unicode_literals def __virtual__(): ''' Only load if the XMPP module is available in __salt__ ''' return 'xmpp' if 'xmpp.send_msg' in __salt__ else False def send_msg(name, recipient, profile): ''' Send a message to an XMPP user .. code-block:: yaml server-warning-message: xmpp.send_msg: - name: 'This is a server warning message' - profile: my-xmpp-account - recipient: admins@xmpp.example.com/salt name The message to send to the XMPP user ''' ret = {'name': name, 'changes': {}, 'result': None, 'comment': ''} if __opts__['test']: ret['comment'] = 'Need to send message to {0}: {1}'.format( recipient, name, ) return ret __salt__['xmpp.send_msg_multi']( message=name, recipients=[recipient], profile=profile, ) ret['result'] = True ret['comment'] = 'Sent message to {0}: {1}'.format(recipient, name) return ret def send_msg_multi(name, profile, recipients=None, rooms=None): ''' Send a message to an list of recipients or rooms .. code-block:: yaml server-warning-message: xmpp.send_msg: - name: 'This is a server warning message' - profile: my-xmpp-account - recipients: - admins@xmpp.example.com/salt - rooms: - qa@conference.xmpp.example.com name The message to send to the XMPP user ''' ret = {'name': name, 'changes': {}, 'result': None, 'comment': ''} if recipients is None and rooms is None: ret['comment'] = "Recipients and rooms are empty, no need to send" return ret comment = '' if recipients: comment += ' users {0}'.format(recipients) if rooms: comment += ' rooms {0}'.format(rooms) comment += ', message: {0}'.format(name) if __opts__['test']: ret['comment'] = 'Need to send' + comment return ret __salt__['xmpp.send_msg_multi']( message=name, recipients=recipients, rooms=rooms, profile=profile, ) ret['result'] = True ret['comment'] = 'Sent message to' + comment return ret