%PDF- %PDF-
Direktori : /lib/python2.7/site-packages/salt/modules/ |
Current File : //lib/python2.7/site-packages/salt/modules/pushbullet.py |
# -*- coding: utf-8 -*- ''' Module for sending messages to Pushbullet (https://www.pushbullet.com) .. versionadded:: 2015.8.0 Requires an ``api_key`` in ``/etc/salt/minion``: .. code-block: yaml pushbullet: api_key: 'ABC123abc123ABC123abc123ABC123ab' For example: .. code-block:: yaml pushbullet: device: "Chrome" title: "Example push message" body: "Message body." ''' # Import python libs from __future__ import absolute_import, print_function, unicode_literals import logging try: import pushbullet HAS_PUSHBULLET = True except ImportError: HAS_PUSHBULLET = False log = logging.getLogger(__name__) def __virtual__(): if not HAS_PUSHBULLET: return (False, 'Missing pushbullet library.') if not __salt__['config.get']('pushbullet.api_key') and \ not __salt__['config.get']('pushbullet:api_key'): return (False, 'Pushbullet API Key Unavailable, not loading.') return True class _SaltPushbullet(object): def __init__(self, device_name): api_key = __salt__['config.get']('pushbullet.api_key') or \ __salt__['config.get']('pushbullet:api_key') self.pb = pushbullet.Pushbullet(api_key) self.target = self._find_device_by_name(device_name) def push_note(self, title, body): push = self.pb.push_note(title, body, device=self.target) return push def _find_device_by_name(self, name): for dev in self.pb.devices: if dev.nickname == name: return dev def push_note(device=None, title=None, body=None): ''' Pushing a text note. :param device: Pushbullet target device :param title: Note title :param body: Note body :return: Boolean if message was sent successfully. CLI Example: .. code-block:: bash salt "*" pushbullet.push_note device="Chrome" title="Example title" body="Example body." ''' spb = _SaltPushbullet(device) res = spb.push_note(title, body) return res