summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Hennion <nicolashennion@gmail.com>2024-03-16 09:12:38 +0100
committerGitHub <noreply@github.com>2024-03-16 09:12:38 +0100
commitf7cc69b24ab874cd306ee12c446728a8ef0b15d1 (patch)
tree80c6590fe827bc5ab657cbe50ea9919e7f3d0c3e
parentc591461fdefd87a58fdb4c220d8d3ca4c193081f (diff)
parent396283c9e96299075824815fb287921aa587b1aa (diff)
Merge pull request #2700 from erdnaxela02/CallbackAPI_for_MQTT
Add CallbackAPIversion for MQTT export
-rw-r--r--docker-compose/glances.conf1
-rw-r--r--glances/exports/mqtt/__init__.py7
2 files changed, 6 insertions, 2 deletions
diff --git a/docker-compose/glances.conf b/docker-compose/glances.conf
index f07ff1c0..50066773 100644
--- a/docker-compose/glances.conf
+++ b/docker-compose/glances.conf
@@ -600,6 +600,7 @@ user=guest
password=guest
topic=glances
topic_structure=per-metric
+callback_api_version=2
[couchdb]
# Configuration for the --export couchdb option
diff --git a/glances/exports/mqtt/__init__.py b/glances/exports/mqtt/__init__.py
index 9055fa6f..a9a9f6dd 100644
--- a/glances/exports/mqtt/__init__.py
+++ b/glances/exports/mqtt/__init__.py
@@ -38,7 +38,7 @@ class Export(GlancesExport):
# Load the MQTT configuration file
self.export_enable = self.load_conf(
- 'mqtt', mandatories=['host', 'password'], options=['port', 'user', 'topic', 'tls', 'topic_structure']
+ 'mqtt', mandatories=['host', 'password'], options=['port', 'user', 'topic', 'tls', 'topic_structure', 'callback_api_version']
)
if not self.export_enable:
exit('Missing MQTT config')
@@ -61,11 +61,14 @@ class Export(GlancesExport):
exit("MQTT client initialization failed")
def init(self):
+ # Get the current callback api version
+ self.callback_api_version = int(self.callback_api_version) or 2
+
"""Init the connection to the MQTT server."""
if not self.export_enable:
return None
try:
- client = paho.Client(client_id='glances_' + self.hostname, clean_session=False)
+ client = paho.Client(self.callback_api_version, client_id='glances_' + self.hostname, clean_session=False)
client.username_pw_set(username=self.user, password=self.password)
if self.tls:
client.tls_set(certifi.where())