diff --git a/apps/emqx_conf/src/emqx_conf_app.erl b/apps/emqx_conf/src/emqx_conf_app.erl index 08fdca43a..67d5747a2 100644 --- a/apps/emqx_conf/src/emqx_conf_app.erl +++ b/apps/emqx_conf/src/emqx_conf_app.erl @@ -183,7 +183,7 @@ conf_sort({ok, _}, {ok, _}) -> false. sync_data_from_node(Node) -> - case emqx_conf_proto_v1:sync_data_from_node(Node) of + case emqx_conf_proto_v2:sync_data_from_node(Node) of {ok, DataBin} -> {ok, Files} = zip:unzip(DataBin, [{cwd, emqx:data_dir()}]), ?SLOG(debug, #{node => Node, msg => "sync_data_from_node_ok", files => Files}), diff --git a/apps/emqx_conf/src/proto/emqx_conf_proto_v1.erl b/apps/emqx_conf/src/proto/emqx_conf_proto_v1.erl index 9b0b816f2..97e14b7c4 100644 --- a/apps/emqx_conf/src/proto/emqx_conf_proto_v1.erl +++ b/apps/emqx_conf/src/proto/emqx_conf_proto_v1.erl @@ -33,8 +33,7 @@ reset/2, reset/3, - get_override_config_file/1, - sync_data_from_node/1 + get_override_config_file/1 ]). -include_lib("emqx/include/bpapi.hrl"). @@ -105,7 +104,3 @@ reset(Node, KeyPath, Opts) -> -spec get_override_config_file([node()]) -> emqx_rpc:multicall_result(). get_override_config_file(Nodes) -> rpc:multicall(Nodes, emqx_conf_app, get_override_config_file, [], 20000). - --spec sync_data_from_node(node()) -> {ok, binary()} | emqx_rpc:badrpc(). -sync_data_from_node(Node) -> - rpc:call(Node, emqx_conf_app, sync_data_from_node, [], 20000). diff --git a/apps/emqx_conf/src/proto/emqx_conf_proto_v2.erl b/apps/emqx_conf/src/proto/emqx_conf_proto_v2.erl new file mode 100644 index 000000000..09d1599cd --- /dev/null +++ b/apps/emqx_conf/src/proto/emqx_conf_proto_v2.erl @@ -0,0 +1,33 @@ +%%-------------------------------------------------------------------- +%% Copyright (c) 2022 EMQ Technologies Co., Ltd. All Rights Reserved. +%% +%% Licensed under the Apache License, Version 2.0 (the "License"); +%% you may not use this file except in compliance with the License. +%% You may obtain a copy of the License at +%% +%% http://www.apache.org/licenses/LICENSE-2.0 +%% +%% Unless required by applicable law or agreed to in writing, software +%% distributed under the License is distributed on an "AS IS" BASIS, +%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +%% See the License for the specific language governing permissions and +%% limitations under the License. +%%-------------------------------------------------------------------- + +-module(emqx_conf_proto_v2). + +-behaviour(emqx_bpapi). + +-export([ + introduced_in/0, + sync_data_from_node/1 +]). + +-include_lib("emqx/include/bpapi.hrl"). + +introduced_in() -> + "5.0.1". + +-spec sync_data_from_node(node()) -> {ok, binary()} | emqx_rpc:badrpc(). +sync_data_from_node(Node) -> + rpc:call(Node, emqx_conf_app, sync_data_from_node, [], 20000).