Use default MQTT settings for MQTT listeners if not provided

This commit is contained in:
Fabio Manganiello 2020-08-27 17:16:33 +02:00
parent ca0c4e3089
commit d7c3ad64f5

View file

@ -151,19 +151,35 @@ class MqttBackend(Backend):
# noinspection PyShadowingNames,PyUnusedLocal # noinspection PyShadowingNames,PyUnusedLocal
for i, listener in enumerate(listeners_conf): for i, listener in enumerate(listeners_conf):
host = listener.get('host') host = listener.get('host')
port = listener.get('port', self._default_mqtt_port) if host:
topics = listener.get('topics') port = listener.get('port', self._default_mqtt_port)
username = listener.get('username') topics = listener.get('topics')
password = listener.get('password') username = listener.get('username')
client_id = listener.get('client_id', self.client_id) password = listener.get('password')
tls_cafile = self._expandpath(listener.get('tls_cafile')) tls_cafile = self._expandpath(listener.get('tls_cafile'))
tls_certfile = self._expandpath(listener.get('tls_certfile'))
tls_keyfile = self._expandpath(listener.get('tls_keyfile'))
tls_version = MQTTPlugin.get_tls_version(listener.get('tls_version'))
tls_ciphers = listener.get('tls_ciphers')
tls_insecure = listener.get('tls_insecure')
else:
host = self.host
port = self.port
username = self.username
password = self.password
tls_cafile = self.tls_cafile
tls_certfile = self.tls_certfile
tls_keyfile = self.tls_keyfile
tls_version = self.tls_keyfile
tls_ciphers = self.tls_ciphers
tls_insecure = self.tls_insecure
if not host or not topics: topics = listener.get('topics')
self.logger.warning('No host nor list of topics specified for ' + if not topics:
'listener n.{}'.format(i + 1)) self.logger.warning('No list of topics specified for listener n.{}'.format(i+1))
continue continue
client = mqtt.Client(client_id) client = mqtt.Client()
client.on_connect = self.on_connect(*topics) client.on_connect = self.on_connect(*topics)
client.on_message = self.on_mqtt_message() client.on_message = self.on_mqtt_message()
@ -172,12 +188,12 @@ class MqttBackend(Backend):
if tls_cafile: if tls_cafile:
client.tls_set(ca_certs=tls_cafile, client.tls_set(ca_certs=tls_cafile,
certfile=self._expandpath(listener.get('tls_certfile')), certfile=tls_certfile,
keyfile=self._expandpath(listener.get('tls_keyfile')), keyfile=tls_keyfile,
tls_version=MQTTPlugin.get_tls_version(listener.get('tls_version')), tls_version=tls_version,
ciphers=listener.get('tls_ciphers')) ciphers=tls_ciphers)
client.tls_insecure_set(self.tls_insecure) client.tls_insecure_set(tls_insecure)
threading.Thread(target=listener_thread, kwargs={ threading.Thread(target=listener_thread, kwargs={
'client_': client, 'host': host, 'port': port}).start() 'client_': client, 'host': host, 'port': port}).start()