in src/pubsub/mqtt_pubsub.py [0:0]
def init_mqtt_subscriber(self):
'''
Initialise subscription to requested MQTT IoT Core topics.
'''
handler = MqttPubSub.MqttSubscriber(self.message_callback)
for subscribe_topic in self.mqtt_subscribe_topics:
try:
log.info('MQTT subscribing to topic: {}'.format(subscribe_topic))
request = SubscribeToIoTCoreRequest()
request.topic_name = subscribe_topic
request.qos = self.mqtt_qos
operation = self.mqtt_subscribe_client.new_subscribe_to_iot_core(handler)
future = operation.activate(request)
# call the result to ensure the future has completed before iterating
future.result(self.mqtt_timeout)
log.info('Complete MQTT subscribing to topic: {}'.format(subscribe_topic))
except concurrent.futures.TimeoutError as e: # pragma: no cover
log.exception('TIMEOUT_ERROR: Timeout occurred while subscribing to IPC MQTT topic. ERROR MESSAGE: {} - TOPIC {}'.format(e, subscribe_topic))
except UnauthorizedError as e: # pragma: no cover
log.exception('UNATHORIZED_ERROR: Unauthorized error while subscribing to IPC MQTT topic. ERROR MESSAGE: {} - TOPIC: {}'.format(e, subscribe_topic))
except Exception as e: # pragma: no cover
log.exception('EXCEPTION: Exception while subscribing to IPC MQTT topic. ERROR MESSAGE: {} - TOPIC: {}'.format(e, subscribe_topic))