golden hour
/opt/saltstack/salt/lib/python3.10/site-packages/salt/returners
⬆️ Go Up
Upload
File/Folder
Size
Actions
__init__.py
5.98 KB
Del
OK
__pycache__
-
Del
OK
appoptics_return.py
6.11 KB
Del
OK
carbon_return.py
8.24 KB
Del
OK
cassandra_cql_return.py
15.14 KB
Del
OK
cassandra_return.py
2.41 KB
Del
OK
couchbase_return.py
8.88 KB
Del
OK
couchdb_return.py
10.35 KB
Del
OK
django_return.py
2.57 KB
Del
OK
elasticsearch_return.py
12.18 KB
Del
OK
etcd_return.py
7.9 KB
Del
OK
highstate_return.py
15.59 KB
Del
OK
influxdb_return.py
8.03 KB
Del
OK
kafka_return.py
2.12 KB
Del
OK
librato_return.py
4.29 KB
Del
OK
local.py
541 B
Del
OK
local_cache.py
17.39 KB
Del
OK
mattermost_returner.py
4.08 KB
Del
OK
memcache_return.py
5.72 KB
Del
OK
mongo_future_return.py
10.01 KB
Del
OK
mongo_return.py
6.06 KB
Del
OK
multi_returner.py
2.82 KB
Del
OK
mysql.py
18.81 KB
Del
OK
nagios_nrdp_return.py
4.92 KB
Del
OK
odbc.py
7.77 KB
Del
OK
pgjsonb.py
17.36 KB
Del
OK
postgres.py
10.33 KB
Del
OK
postgres_local_cache.py
10.82 KB
Del
OK
pushover_returner.py
6.55 KB
Del
OK
rawfile_json.py
2.23 KB
Del
OK
redis_return.py
8.55 KB
Del
OK
sentry_return.py
5.24 KB
Del
OK
slack_returner.py
6.02 KB
Del
OK
slack_webhook_return.py
11.22 KB
Del
OK
sms_return.py
2.64 KB
Del
OK
smtp_return.py
8.2 KB
Del
OK
splunk.py
5.84 KB
Del
OK
sqlite3_return.py
7.73 KB
Del
OK
syslog_return.py
5.26 KB
Del
OK
telegram_return.py
1.92 KB
Del
OK
xmpp_return.py
4.81 KB
Del
OK
zabbix_return.py
2.45 KB
Del
OK
Edit: xmpp_return.py
""" Return salt data via xmpp :depends: sleekxmpp >= 1.3.1 The following fields can be set in the minion conf file:: xmpp.jid (required) xmpp.password (required) xmpp.recipient (required) xmpp.profile (optional) Alternative configuration values can be used by prefacing the configuration. Any values not found in the alternative configuration will be pulled from the default location:: xmpp.jid xmpp.password xmpp.recipient xmpp.profile XMPP settings may also be configured as:: xmpp: jid: user@xmpp.domain.com/resource password: password recipient: user@xmpp.example.com alternative.xmpp: jid: user@xmpp.domain.com/resource password: password recipient: someone@xmpp.example.com xmpp_profile: xmpp.jid: user@xmpp.domain.com/resource xmpp.password: password xmpp: profile: xmpp_profile recipient: user@xmpp.example.com alternative.xmpp: profile: xmpp_profile recipient: someone-else@xmpp.example.com To use the XMPP returner, append '--return xmpp' to the salt command. .. code-block:: bash salt '*' test.ping --return xmpp To use the alternative configuration, append '--return_config alternative' to the salt command. .. versionadded:: 2015.5.0 .. code-block:: bash salt '*' test.ping --return xmpp --return_config alternative To override individual configuration items, append --return_kwargs '{"key:": "value"}' to the salt command. .. versionadded:: 2016.3.0 .. code-block:: bash salt '*' test.ping --return xmpp --return_kwargs '{"recipient": "someone-else@xmpp.example.com"}' """ import logging import pprint import salt.returners from salt.utils.versions import Version HAS_LIBS = False try: from sleekxmpp import ClientXMPP as _ClientXMPP # pylint: disable=import-error HAS_LIBS = True except ImportError: class _ClientXMPP: """ Fake class in order not to raise errors """ log = logging.getLogger(__name__) __virtualname__ = "xmpp" def _get_options(ret=None): """ Get the xmpp options from salt. """ attrs = { "xmpp_profile": "profile", "from_jid": "jid", "password": "password", "recipient_jid": "recipient", } profile_attr = "xmpp_profile" profile_attrs = {"from_jid": "jid", "password": "password"} _options = salt.returners.get_returner_options( __virtualname__, ret, attrs, profile_attr=profile_attr, profile_attrs=profile_attrs, __salt__=__salt__, __opts__=__opts__, ) return _options def __virtual__(): """ Only load this module if right version of sleekxmpp is installed on this minion. """ min_version = "1.3.1" if HAS_LIBS: import sleekxmpp # pylint: disable=3rd-party-module-not-gated # Certain XMPP functionaility we're using doesn't work with versions under 1.3.1 sleekxmpp_version = Version(sleekxmpp.__version__) valid_version = Version(min_version) if sleekxmpp_version >= valid_version: return __virtualname__ return ( False, "Could not import xmpp returner; sleekxmpp python client is not " "installed or is older than version '{}'.".format(min_version), ) class SendMsgBot(_ClientXMPP): def __init__(self, jid, password, recipient, msg): # PyLint wrongly reports an error when calling super, hence the above # disable call super().__init__(jid, password) self.recipient = recipient self.msg = msg self.add_event_handler("session_start", self.start) def start(self, event): self.send_presence() self.send_message(mto=self.recipient, mbody=self.msg, mtype="chat") self.disconnect(wait=True) def returner(ret): """ Send an xmpp message with the data """ _options = _get_options(ret) from_jid = _options.get("from_jid") password = _options.get("password") recipient_jid = _options.get("recipient_jid") if not from_jid: log.error("xmpp.jid not defined in salt config") return if not password: log.error("xmpp.password not defined in salt config") return if not recipient_jid: log.error("xmpp.recipient not defined in salt config") return message = "id: {}\r\nfunction: {}\r\nfunction args: {}\r\njid: {}\r\nreturn: {}\r\n".format( ret.get("id"), ret.get("fun"), ret.get("fun_args"), ret.get("jid"), pprint.pformat(ret.get("return")), ) xmpp = SendMsgBot(from_jid, password, recipient_jid, message) xmpp.register_plugin("xep_0030") # Service Discovery xmpp.register_plugin("xep_0199") # XMPP Ping if xmpp.connect(): xmpp.process(block=True) return True return False
Save