003 File Manager
Current Path:
/usr/local/lib/python3.8/site-packages/salt/returners
usr
/
local
/
lib
/
python3.8
/
site-packages
/
salt
/
returners
/
📁
..
📄
__init__.py
(5.98 KB)
📁
__pycache__
📄
appoptics_return.py
(6.11 KB)
📄
carbon_return.py
(8.24 KB)
📄
cassandra_cql_return.py
(15.17 KB)
📄
cassandra_return.py
(2.07 KB)
📄
couchbase_return.py
(8.91 KB)
📄
couchdb_return.py
(10.35 KB)
📄
django_return.py
(2.27 KB)
📄
elasticsearch_return.py
(12.18 KB)
📄
etcd_return.py
(6.32 KB)
📄
highstate_return.py
(15.59 KB)
📄
influxdb_return.py
(8.03 KB)
📄
kafka_return.py
(2.12 KB)
📄
librato_return.py
(4.29 KB)
📄
local.py
(541 B)
📄
local_cache.py
(17.1 KB)
📄
mattermost_returner.py
(4.08 KB)
📄
memcache_return.py
(5.72 KB)
📄
mongo_future_return.py
(10.08 KB)
📄
mongo_return.py
(6.11 KB)
📄
multi_returner.py
(2.82 KB)
📄
mysql.py
(18.61 KB)
📄
nagios_nrdp_return.py
(4.92 KB)
📄
odbc.py
(7.77 KB)
📄
pgjsonb.py
(17.18 KB)
📄
postgres.py
(10.2 KB)
📄
postgres_local_cache.py
(10.73 KB)
📄
pushover_returner.py
(6.55 KB)
📄
rawfile_json.py
(2.23 KB)
📄
redis_return.py
(8.52 KB)
📄
sentry_return.py
(5.3 KB)
📄
slack_returner.py
(6.02 KB)
📄
slack_webhook_return.py
(11.22 KB)
📄
sms_return.py
(2.64 KB)
📄
smtp_return.py
(8.2 KB)
📄
splunk.py
(6.69 KB)
📄
sqlite3_return.py
(7.73 KB)
📄
syslog_return.py
(5.26 KB)
📄
telegram_return.py
(1.92 KB)
📄
xmpp_return.py
(4.85 KB)
📄
zabbix_return.py
(2.45 KB)
Editing: kafka_return.py
""" Return data to a Kafka topic :maintainer: Justin Desilets (justin.desilets@gmail.com) :maturity: 20181119 :depends: confluent-kafka :platform: all To enable this returner install confluent-kafka and enable the following settings in the minion config: returner.kafka.bootstrap: - "server1:9092" - "server2:9092" - "server3:9092" returner.kafka.topic: 'topic' To use the kafka returner, append `--return kafka` to the Salt command, eg; salt '*' test.ping --return kafka """ import logging import salt.utils.json try: from confluent_kafka import Producer HAS_KAFKA = True except ImportError: HAS_KAFKA = False log = logging.getLogger(__name__) __virtualname__ = "kafka" def __virtual__(): if not HAS_KAFKA: return ( False, "Could not import kafka returner; confluent-kafka is not installed.", ) return __virtualname__ def _get_conn(): """ Return a kafka connection """ if __salt__["config.option"]("returner.kafka.bootstrap"): bootstrap = ",".join(__salt__["config.option"]("returner.kafka.bootstrap")) else: log.error("Unable to find kafka returner config option: bootstrap") return None return bootstrap def _delivery_report(err, msg): """Called once for each message produced to indicate delivery result. Triggered by poll() or flush().""" if err is not None: log.error("Message delivery failed: %s", err) else: log.debug("Message delivered to %s [%s]", msg.topic(), msg.partition()) def returner(ret): """ Return information to a Kafka server """ if __salt__["config.option"]("returner.kafka.topic"): topic = __salt__["config.option"]("returner.kafka.topic") conn = _get_conn() producer = Producer({"bootstrap.servers": conn}) producer.poll(0) producer.produce( topic, salt.utils.json.dumps(ret), str(ret).encode("utf-8"), callback=_delivery_report, ) producer.flush() else: log.error("Unable to find kafka returner config option: topic")
Upload File
Create Folder