nuvlabox / mqtt-fiware-bridge

Optional NuvlaBox component that consumes data from a specified MQTT broker and topic, double checks the data structure against FIWARE's data schemas, and sends data to a specified endpoint
Apache License 2.0
0 stars 0 forks source link

Avoid fiware checking for some topics #2

Closed dgasull closed 3 years ago

dgasull commented 3 years ago

Some data have no FIWARE representation like data coming from traffic-lights, so any mqtt message representing traffic light data will be rejected by the bridge. For optimal design (we don't want two different services reading same mqtt messages...) it would be nice to have an option to "ignore fiware checking for certain mqtt topics".

cjdcordeiro commented 3 years ago

please try nuvlabox/mqtt-fiware-bridge:0.0.4 with the option --ignore-fiware-validation

dgasull commented 3 years ago

Following error appears in version nuvlabox/mqtt-fiware-bridge:0.0.4 :

mqtt-to-dataclay_1  |     super(MQTTtoDataClayBridge, self).__init__(**kwargs)
mqtt-to-dataclay_1  |   File "/opt/nuvlabox/mqtt_fiware_bridge/MFB.py", line 50, in __init__
mqtt-to-dataclay_1  |     self.fiware_models = self.map_all_fiware_models(self.pkg_fiware_specs)
mqtt-to-dataclay_1  |   File "/opt/nuvlabox/mqtt_fiware_bridge/MFB.py", line 94, in map_all_fiware_models
mqtt-to-dataclay_1  |     listed_under = pkg_resources.resource_listdir(self.this_package_name, search_at)
mqtt-to-dataclay_1  |   File "/usr/local/lib/python3.9/site-packages/pkg_resources/__init__.py", line 1148, in resource_listdir
mqtt-to-dataclay_1  |     return get_provider(package_or_requirement).resource_listdir(
mqtt-to-dataclay_1  |   File "/usr/local/lib/python3.9/site-packages/pkg_resources/__init__.py", line 1426, in resource_listdir
mqtt-to-dataclay_1  |     return self._listdir(self._fn(self.module_path, resource_name))
mqtt-to-dataclay_1  |   File "/usr/local/lib/python3.9/site-packages/pkg_resources/__init__.py", line 1605, in _listdir
mqtt-to-dataclay_1  |     return os.listdir(path)
mqtt-to-dataclay_1  | FileNotFoundError: [Errno 2] No such file or directory: '/opt/nuvlabox/mqtt_fiware_bridge/fiware/specs'

If I go inside the image via docker run -it --entrypoint /bin/sh nuvlabox/mqtt-fiware-bridge:0.0.4 and I type :

# ls /opt/nuvlabox/mqtt_fiware_bridge/fiware/specs
ls: cannot access '/opt/nuvlabox/mqtt_fiware_bridge/fiware/specs': No such file or directory

However if go inside version 0.0.1 via docker run -it --entrypoint /bin/sh nuvlabox/mqtt-fiware-bridge:0.0.4:

# ls /opt/nuvlabox/mqtt_fiware_bridge/fiware/specs
AgriFood     Building  Environment      Parking         PointOfInterest  Transportation  WasteManagement  guidelines.md  index.md
Alert        Device    IssueTracking        ParksAndGardens     README.md        UrbanMobility   Weather          howto.md       ngsi-ld_faq.md
Aquaculture  Energy    KeyPerformanceIndicator  PointOfInteraction  StreetLighting   User        gsma.md          img        ngsi-ld_howto.md