From 75d62096a61bca394c73f539c7ec852ae3a7794f Mon Sep 17 00:00:00 2001 From: Blake Blackshear Date: Sat, 5 Dec 2020 09:47:43 -0600 Subject: [PATCH] better exception handling --- frigate/app.py | 19 ++++++++++++------- frigate/mqtt.py | 6 +++++- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/frigate/app.py b/frigate/app.py index cbf9badbd..a0387ead8 100644 --- a/frigate/app.py +++ b/frigate/app.py @@ -147,17 +147,22 @@ class FrigateApp(): def start(self): self.init_logger() - self.ensure_dirs() try: - self.init_config() + self.ensure_dirs() + try: + self.init_config() + except Exception as e: + logger.error(f"Error parsing config: {e}") + self.log_process.terminate() + sys.exit(1) + self.set_log_levels() + self.init_queues() + self.init_database() + self.init_mqtt() except Exception as e: - logger.error(f"Error parsing config: {e}") + logger.error(e) self.log_process.terminate() sys.exit(1) - self.set_log_levels() - self.init_queues() - self.init_database() - self.init_mqtt() self.start_detectors() self.start_detected_frames_processor() self.start_camera_processors() diff --git a/frigate/mqtt.py b/frigate/mqtt.py index de6d8a707..962015816 100644 --- a/frigate/mqtt.py +++ b/frigate/mqtt.py @@ -27,6 +27,10 @@ def create_mqtt_client(config: MqttConfig): client.will_set(config.topic_prefix+'/available', payload='offline', qos=1, retain=True) if not config.user is None: client.username_pw_set(config.user, password=config.password) - client.connect(config.host, config.port, 60) + try: + client.connect(config.host, config.port, 60) + except Exception as e: + logger.error(f"Unable to connect to MQTT server: {e}") + raise client.loop_start() return client