From bc8c29182005c9decd84510d9c2569b7e13cacf8 Mon Sep 17 00:00:00 2001 From: Serge Tupchii Date: Mon, 30 Oct 2023 17:46:05 +0200 Subject: [PATCH] fix(emqx_bridge): add import_config/1 cb to emqx_bridge_v2 --- apps/emqx_bridge/src/emqx_bridge.erl | 15 ++++++++++----- apps/emqx_bridge/src/emqx_bridge_v2.erl | 15 ++++++++++++++- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/apps/emqx_bridge/src/emqx_bridge.erl b/apps/emqx_bridge/src/emqx_bridge.erl index fd0ce0d31..a3e06a819 100644 --- a/apps/emqx_bridge/src/emqx_bridge.erl +++ b/apps/emqx_bridge/src/emqx_bridge.erl @@ -62,7 +62,9 @@ %% Data backup -export([ - import_config/1 + import_config/1, + %% exported for emqx_bridge_v2 + import_config/4 ]). -export([query_opts/1]). @@ -442,15 +444,18 @@ do_check_deps_and_remove(BridgeType, BridgeName, RemoveDeps) -> %%---------------------------------------------------------------------------------------- import_config(RawConf) -> - RootKeyPath = config_key_path(), - BridgesConf = maps:get(<<"bridges">>, RawConf, #{}), + import_config(RawConf, <<"bridges">>, ?ROOT_KEY, config_key_path()). + +%% Used in emqx_bridge_v2 +import_config(RawConf, RawConfKey, RootKey, RootKeyPath) -> + BridgesConf = maps:get(RawConfKey, RawConf, #{}), OldBridgesConf = emqx:get_raw_config(RootKeyPath, #{}), MergedConf = merge_confs(OldBridgesConf, BridgesConf), case emqx_conf:update(RootKeyPath, MergedConf, #{override_to => cluster}) of {ok, #{raw_config := NewRawConf}} -> - {ok, #{root_key => ?ROOT_KEY, changed => changed_paths(OldBridgesConf, NewRawConf)}}; + {ok, #{root_key => RootKey, changed => changed_paths(OldBridgesConf, NewRawConf)}}; Error -> - {error, #{root_key => ?ROOT_KEY, reason => Error}} + {error, #{root_key => RootKey, reason => Error}} end. merge_confs(OldConf, NewConf) -> diff --git a/apps/emqx_bridge/src/emqx_bridge_v2.erl b/apps/emqx_bridge/src/emqx_bridge_v2.erl index 7a2d112ab..4be0ead57 100644 --- a/apps/emqx_bridge/src/emqx_bridge_v2.erl +++ b/apps/emqx_bridge/src/emqx_bridge_v2.erl @@ -16,7 +16,7 @@ -module(emqx_bridge_v2). -behaviour(emqx_config_handler). -% -behaviour(emqx_config_backup). +-behaviour(emqx_config_backup). -include_lib("emqx/include/emqx.hrl"). -include_lib("emqx/include/logger.hrl"). @@ -77,6 +77,11 @@ pre_config_update/3 ]). +%% Data backup +-export([ + import_config/1 +]). + %% Compatibility API -export([ @@ -731,6 +736,14 @@ bridge_v2_type_to_connector_type(kafka_producer) -> bridge_v2_type_to_connector_type(azure_event_hub) -> azure_event_hub. +%%==================================================================== +%% Data backup API +%%==================================================================== + +import_config(RawConf) -> + %% bridges v2 structure + emqx_bridge:import_config(RawConf, <<"bridges_v2">>, ?ROOT_KEY, config_key_path()). + %%==================================================================== %% Config Update Handler API %%====================================================================