def parse_source_config(self, element_def: dict): """parse source configuration""" # source: accept just a source_id and take it from sources if "source" not in element_def: return True source_id = None if isinstance(element_def["source"], str): source_id = element_def["source"] if "source_id" in element_def["source"]: source_id = element_def["source"]["source_id"] if source_id is None: return True # track the source_id source = config_manager.get_source(source_id) if source is None: log.warning( "Source id %s not found, cannot start pipeline %s", source_id, self.name, ) return False element_def["source"] = source.to_values() element_def["source"]["source_id"] = source_id return True
def test_config_getters(): config_manager.stop() config_manager.CONFIG_FILE = 'test-config2.yaml' _dir = os.path.dirname(os.path.abspath(__file__)) config_manager.load(_dir) assert config_manager.get_ai_models() is not None assert config_manager.get_ai_model("image_detection") is not None assert config_manager.get_sources() is not None assert config_manager.get_source("front_door_camera") is not None assert config_manager.get_data_dir() is not None
def get(source_id): """Retrieve a source by id""" log.info("Get source_id=%s", source_id) if not source_id: raise BadRequest("source id is empy") if not isinstance(source_id, str): raise BadRequest("source id should be a string") source = config_manager.get_source(source_id) if source is None: raise NotFound("source not found") return source.to_values()
def save(source_id, source): """Save source configuration information""" log.info("Saving source_id=%s", source_id) source = validate(source_id, source) config_manager.get_sources().set(source["id"], source) return config_manager.get_source(source["id"]).to_values()