fix(emqx_bridge): add import_config/1 cb to emqx_bridge_v2

This commit is contained in:
Serge Tupchii 2023-10-30 17:46:05 +02:00
parent d94193ac15
commit bc8c291820
2 changed files with 24 additions and 6 deletions

View File

@ -62,7 +62,9 @@
%% Data backup %% Data backup
-export([ -export([
import_config/1 import_config/1,
%% exported for emqx_bridge_v2
import_config/4
]). ]).
-export([query_opts/1]). -export([query_opts/1]).
@ -442,15 +444,18 @@ do_check_deps_and_remove(BridgeType, BridgeName, RemoveDeps) ->
%%---------------------------------------------------------------------------------------- %%----------------------------------------------------------------------------------------
import_config(RawConf) -> import_config(RawConf) ->
RootKeyPath = config_key_path(), import_config(RawConf, <<"bridges">>, ?ROOT_KEY, config_key_path()).
BridgesConf = maps:get(<<"bridges">>, RawConf, #{}),
%% Used in emqx_bridge_v2
import_config(RawConf, RawConfKey, RootKey, RootKeyPath) ->
BridgesConf = maps:get(RawConfKey, RawConf, #{}),
OldBridgesConf = emqx:get_raw_config(RootKeyPath, #{}), OldBridgesConf = emqx:get_raw_config(RootKeyPath, #{}),
MergedConf = merge_confs(OldBridgesConf, BridgesConf), MergedConf = merge_confs(OldBridgesConf, BridgesConf),
case emqx_conf:update(RootKeyPath, MergedConf, #{override_to => cluster}) of case emqx_conf:update(RootKeyPath, MergedConf, #{override_to => cluster}) of
{ok, #{raw_config := NewRawConf}} -> {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 ->
{error, #{root_key => ?ROOT_KEY, reason => Error}} {error, #{root_key => RootKey, reason => Error}}
end. end.
merge_confs(OldConf, NewConf) -> merge_confs(OldConf, NewConf) ->

View File

@ -16,7 +16,7 @@
-module(emqx_bridge_v2). -module(emqx_bridge_v2).
-behaviour(emqx_config_handler). -behaviour(emqx_config_handler).
% -behaviour(emqx_config_backup). -behaviour(emqx_config_backup).
-include_lib("emqx/include/emqx.hrl"). -include_lib("emqx/include/emqx.hrl").
-include_lib("emqx/include/logger.hrl"). -include_lib("emqx/include/logger.hrl").
@ -77,6 +77,11 @@
pre_config_update/3 pre_config_update/3
]). ]).
%% Data backup
-export([
import_config/1
]).
%% Compatibility API %% Compatibility API
-export([ -export([
@ -731,6 +736,14 @@ bridge_v2_type_to_connector_type(kafka_producer) ->
bridge_v2_type_to_connector_type(azure_event_hub) -> bridge_v2_type_to_connector_type(azure_event_hub) ->
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 %% Config Update Handler API
%%==================================================================== %%====================================================================