PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Dir : /proc/self/root/opt/saltstack/salt/lib/python3.10/site-packages/salt/returners/ |
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 IP: 209.182.202.254 |
Dir : //proc/self/root/opt/saltstack/salt/lib/python3.10/site-packages/salt/returners/sms_return.py |
""" Return data by SMS. .. versionadded:: 2015.5.0 :maintainer: Damian Myerscough :maturity: new :depends: twilio :platform: all To enable this returner the minion will need the python twilio library installed and the following values configured in the minion or master config: .. code-block:: yaml twilio.sid: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' twilio.token: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' twilio.to: '+1415XXXXXXX' twilio.from: '+1650XXXXXXX' To use the sms returner, append '--return sms' to the salt command. .. code-block:: bash salt '*' test.ping --return sms """ import logging import salt.returners log = logging.getLogger(__name__) try: import twilio # Grab version, ensure elements are ints twilio_version = tuple(int(x) for x in twilio.__version_info__) if twilio_version > (6,): from twilio.base.exceptions import TwilioRestException from twilio.rest import Client as TwilioRestClient elif twilio_version > (5,): # pylint: disable=no-name-in-module from twilio.rest import Client as TwilioRestClient from twilio.rest import TwilioException as TwilioRestException # pylint: enable=no-name-in-module else: from twilio import TwilioRestException # pylint: disable=no-name-in-module from twilio.rest import TwilioRestClient # pylint: disable=no-name-in-module HAS_TWILIO = True except ImportError: HAS_TWILIO = False __virtualname__ = "sms" def __virtual__(): if HAS_TWILIO: return __virtualname__ return False, "Could not import sms returner; twilio is not installed." def _get_options(ret=None): """ Get the Twilio options from salt. """ attrs = {"sid": "sid", "token": "token", "to": "to", "from": "from"} _options = salt.returners.get_returner_options( __virtualname__, ret, attrs, __salt__=__salt__, __opts__=__opts__ ) return _options def returner(ret): """ Return a response in an SMS message """ _options = _get_options(ret) sid = _options.get("sid", None) token = _options.get("token", None) sender = _options.get("from", None) receiver = _options.get("to", None) if sid is None or token is None: log.error("Twilio sid/authentication token missing") return None if sender is None or receiver is None: log.error("Twilio to/from fields are missing") return None client = TwilioRestClient(sid, token) try: message = client.messages.create( body="Minion: {}\nCmd: {}\nSuccess: {}\n\nJid: {}".format( ret["id"], ret["fun"], ret["success"], ret["jid"] ), to=receiver, from_=sender, ) except TwilioRestException as e: log.error("Twilio [https://www.twilio.com/docs/errors/%s]", e.code) return False return True