feat: don't do rpc call to check deprecated file
This commit is contained in:
parent
996d5eee45
commit
3f689d0fdf
|
@ -11,7 +11,6 @@
|
||||||
{emqx_cm,1}.
|
{emqx_cm,1}.
|
||||||
{emqx_conf,1}.
|
{emqx_conf,1}.
|
||||||
{emqx_conf,2}.
|
{emqx_conf,2}.
|
||||||
{emqx_conf,3}.
|
|
||||||
{emqx_dashboard,1}.
|
{emqx_dashboard,1}.
|
||||||
{emqx_delayed,1}.
|
{emqx_delayed,1}.
|
||||||
{emqx_exhook,1}.
|
{emqx_exhook,1}.
|
||||||
|
|
|
@ -66,7 +66,8 @@ get_override_config_file() ->
|
||||||
conf => Conf,
|
conf => Conf,
|
||||||
tnx_id => TnxId,
|
tnx_id => TnxId,
|
||||||
node => Node,
|
node => Node,
|
||||||
has_deprecated_file => HasDeprecateFile
|
has_deprecated_file => HasDeprecateFile,
|
||||||
|
release => emqx_app:get_release()
|
||||||
}
|
}
|
||||||
end,
|
end,
|
||||||
case mria:ro_transaction(?CLUSTER_RPC_SHARD, Fun) of
|
case mria:ro_transaction(?CLUSTER_RPC_SHARD, Fun) of
|
||||||
|
@ -180,6 +181,8 @@ copy_override_conf_from_core_node() ->
|
||||||
msg => "copy_cluster_conf_from_core_node_success",
|
msg => "copy_cluster_conf_from_core_node_success",
|
||||||
node => Node,
|
node => Node,
|
||||||
has_deprecated_file => HasDeprecatedFile,
|
has_deprecated_file => HasDeprecatedFile,
|
||||||
|
local_release => emqx_app:get_release(),
|
||||||
|
remote_release => maps:get(release, Info, "before_v5.0.24|e5.0.3"),
|
||||||
data_dir => emqx:data_dir(),
|
data_dir => emqx:data_dir(),
|
||||||
tnx_id => TnxId
|
tnx_id => TnxId
|
||||||
}),
|
}),
|
||||||
|
@ -228,13 +231,12 @@ sync_data_from_node(Node) ->
|
||||||
error(Error)
|
error(Error)
|
||||||
end.
|
end.
|
||||||
|
|
||||||
has_deprecated_file(#{node := Node} = Info) ->
|
has_deprecated_file(#{conf := Conf} = Info) ->
|
||||||
case maps:find(has_deprecated_file, Info) of
|
case maps:find(has_deprecated_file, Info) of
|
||||||
{ok, HasDeprecatedFile} ->
|
{ok, HasDeprecatedFile} ->
|
||||||
HasDeprecatedFile;
|
HasDeprecatedFile;
|
||||||
error ->
|
error ->
|
||||||
%% The old version don't have emqx_config:has_deprecated_file/0
|
%% The old version don't have emqx_config:has_deprecated_file/0
|
||||||
DataDir = emqx_conf_proto_v2:get_config(Node, [node, data_dir]),
|
%% Conf is not empty if deprecated file is found.
|
||||||
File = filename:join([DataDir, "configs", "cluster-override.conf"]),
|
Conf =/= #{}
|
||||||
emqx_conf_proto_v3:file_exist(Node, File)
|
|
||||||
end.
|
end.
|
||||||
|
|
|
@ -20,7 +20,6 @@
|
||||||
|
|
||||||
-export([
|
-export([
|
||||||
introduced_in/0,
|
introduced_in/0,
|
||||||
deprecated_since/0,
|
|
||||||
sync_data_from_node/1,
|
sync_data_from_node/1,
|
||||||
get_config/2,
|
get_config/2,
|
||||||
get_config/3,
|
get_config/3,
|
||||||
|
@ -42,9 +41,6 @@
|
||||||
introduced_in() ->
|
introduced_in() ->
|
||||||
"5.0.1".
|
"5.0.1".
|
||||||
|
|
||||||
deprecated_since() ->
|
|
||||||
"5.0.23".
|
|
||||||
|
|
||||||
-spec sync_data_from_node(node()) -> {ok, binary()} | emqx_rpc:badrpc().
|
-spec sync_data_from_node(node()) -> {ok, binary()} | emqx_rpc:badrpc().
|
||||||
sync_data_from_node(Node) ->
|
sync_data_from_node(Node) ->
|
||||||
rpc:call(Node, emqx_conf_app, sync_data_from_node, [], 20000).
|
rpc:call(Node, emqx_conf_app, sync_data_from_node, [], 20000).
|
||||||
|
|
|
@ -1,114 +0,0 @@
|
||||||
%%--------------------------------------------------------------------
|
|
||||||
%% Copyright (c) 2022-2023 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_v3).
|
|
||||||
|
|
||||||
-behaviour(emqx_bpapi).
|
|
||||||
|
|
||||||
-export([
|
|
||||||
introduced_in/0,
|
|
||||||
sync_data_from_node/1,
|
|
||||||
get_config/2,
|
|
||||||
get_config/3,
|
|
||||||
get_all/1,
|
|
||||||
|
|
||||||
update/3,
|
|
||||||
update/4,
|
|
||||||
remove_config/2,
|
|
||||||
remove_config/3,
|
|
||||||
|
|
||||||
reset/2,
|
|
||||||
reset/3,
|
|
||||||
|
|
||||||
get_override_config_file/1,
|
|
||||||
file_exist/2
|
|
||||||
]).
|
|
||||||
|
|
||||||
-include_lib("emqx/include/bpapi.hrl").
|
|
||||||
|
|
||||||
introduced_in() ->
|
|
||||||
"5.0.24".
|
|
||||||
|
|
||||||
-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).
|
|
||||||
-type update_config_key_path() :: [emqx_utils_maps:config_key(), ...].
|
|
||||||
|
|
||||||
-spec get_config(node(), emqx_utils_maps:config_key_path()) ->
|
|
||||||
term() | emqx_rpc:badrpc().
|
|
||||||
get_config(Node, KeyPath) ->
|
|
||||||
rpc:call(Node, emqx, get_config, [KeyPath]).
|
|
||||||
|
|
||||||
-spec get_config(node(), emqx_utils_maps:config_key_path(), _Default) ->
|
|
||||||
term() | emqx_rpc:badrpc().
|
|
||||||
get_config(Node, KeyPath, Default) ->
|
|
||||||
rpc:call(Node, emqx, get_config, [KeyPath, Default]).
|
|
||||||
|
|
||||||
-spec get_all(emqx_utils_maps:config_key_path()) -> emqx_rpc:multicall_result().
|
|
||||||
get_all(KeyPath) ->
|
|
||||||
rpc:multicall(emqx_conf, get_node_and_config, [KeyPath], 5000).
|
|
||||||
|
|
||||||
-spec update(
|
|
||||||
update_config_key_path(),
|
|
||||||
emqx_config:update_request(),
|
|
||||||
emqx_config:update_opts()
|
|
||||||
) -> {ok, emqx_config:update_result()} | {error, emqx_config:update_error()}.
|
|
||||||
update(KeyPath, UpdateReq, Opts) ->
|
|
||||||
emqx_cluster_rpc:multicall(emqx, update_config, [KeyPath, UpdateReq, Opts]).
|
|
||||||
|
|
||||||
-spec update(
|
|
||||||
node(),
|
|
||||||
update_config_key_path(),
|
|
||||||
emqx_config:update_request(),
|
|
||||||
emqx_config:update_opts()
|
|
||||||
) ->
|
|
||||||
{ok, emqx_config:update_result()}
|
|
||||||
| {error, emqx_config:update_error()}
|
|
||||||
| emqx_rpc:badrpc().
|
|
||||||
update(Node, KeyPath, UpdateReq, Opts) ->
|
|
||||||
rpc:call(Node, emqx, update_config, [KeyPath, UpdateReq, Opts], 5000).
|
|
||||||
|
|
||||||
-spec remove_config(update_config_key_path(), emqx_config:update_opts()) ->
|
|
||||||
{ok, emqx_config:update_result()} | {error, emqx_config:update_error()}.
|
|
||||||
remove_config(KeyPath, Opts) ->
|
|
||||||
emqx_cluster_rpc:multicall(emqx, remove_config, [KeyPath, Opts]).
|
|
||||||
|
|
||||||
-spec remove_config(node(), update_config_key_path(), emqx_config:update_opts()) ->
|
|
||||||
{ok, emqx_config:update_result()}
|
|
||||||
| {error, emqx_config:update_error()}
|
|
||||||
| emqx_rpc:badrpc().
|
|
||||||
remove_config(Node, KeyPath, Opts) ->
|
|
||||||
rpc:call(Node, emqx, remove_config, [KeyPath, Opts], 5000).
|
|
||||||
|
|
||||||
-spec reset(update_config_key_path(), emqx_config:update_opts()) ->
|
|
||||||
{ok, emqx_config:update_result()} | {error, emqx_config:update_error()}.
|
|
||||||
reset(KeyPath, Opts) ->
|
|
||||||
emqx_cluster_rpc:multicall(emqx, reset_config, [KeyPath, Opts]).
|
|
||||||
|
|
||||||
-spec reset(node(), update_config_key_path(), emqx_config:update_opts()) ->
|
|
||||||
{ok, emqx_config:update_result()}
|
|
||||||
| {error, emqx_config:update_error()}
|
|
||||||
| emqx_rpc:badrpc().
|
|
||||||
reset(Node, KeyPath, Opts) ->
|
|
||||||
rpc:call(Node, emqx, reset_config, [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 file_exist(node(), string()) -> emqx_rpc:badrpc() | boolean().
|
|
||||||
file_exist(Node, File) ->
|
|
||||||
rpc:call(Node, filelib, is_regular, [File], 5000).
|
|
Loading…
Reference in New Issue