From 2c817e6f82091953ceb134610caa0c28a2a3e858 Mon Sep 17 00:00:00 2001
From: Bert Palm <bert.palm@ufz.de>
Date: Wed, 26 Feb 2025 13:28:54 +0100
Subject: [PATCH] fix getting parser in mqtt ingest and adding missing api
 types

---
 .../V2_12__configdb_new_apitypes_and_devicetypes.sql       | 3 +++
 src/run_mqtt_ingest.py                                     | 7 +++----
 2 files changed, 6 insertions(+), 4 deletions(-)
 create mode 100644 flyway/migrations/V2_12__configdb_new_apitypes_and_devicetypes.sql

diff --git a/flyway/migrations/V2_12__configdb_new_apitypes_and_devicetypes.sql b/flyway/migrations/V2_12__configdb_new_apitypes_and_devicetypes.sql
new file mode 100644
index 00000000..d7c06429
--- /dev/null
+++ b/flyway/migrations/V2_12__configdb_new_apitypes_and_devicetypes.sql
@@ -0,0 +1,3 @@
+insert into config_db.ext_api_type (name)
+values ('tsystems'::varchar(200)),
+       ('uba'::varchar(200));
diff --git a/src/run_mqtt_ingest.py b/src/run_mqtt_ingest.py
index 02829216..50dde1b1 100755
--- a/src/run_mqtt_ingest.py
+++ b/src/run_mqtt_ingest.py
@@ -14,7 +14,7 @@ from timeio.errors import UserInputError
 from timeio.journaling import Journal
 from timeio.databases import DBapi
 from timeio.feta import Thing
-from timeio.parser import get_parser
+from timeio.parser import get_parser, MqttDataParser
 
 logger = logging.getLogger("mqtt-ingest")
 journal = Journal("Parser")
@@ -41,12 +41,11 @@ class ParseMqttDataHandler(AbstractHandler):
 
         logger.info(f"get thing")
         mqtt_user = message.topic.split("/")[1]
-        thing = Thing.from_mqtt_user_name(mqtt_user)
+        thing = Thing.from_mqtt_user_name(mqtt_user, dsn=self.configdb_dsn)
         thing_uuid = thing.uuid
 
         logger.info(f"get parser")
-        p = thing.s3_store.file_parser
-        parser = get_parser(p.file_parser_type, p.params)
+        parser: MqttDataParser = get_parser(thing.mqtt.mqtt_device_type.name, None)
 
         logger.info(f"parsing rawdata")
         try:
-- 
GitLab