Просмотр исходного кода

feat: don't do rpc call to check deprecated file

Zhongwen Deng 2 лет назад
Родитель
Сommit
db0c951e30

+ 0 - 1
apps/emqx/priv/bpapi.versions

@@ -11,7 +11,6 @@
 {emqx_cm,1}.
 {emqx_conf,1}.
 {emqx_conf,2}.
-{emqx_conf,3}.
 {emqx_dashboard,1}.
 {emqx_delayed,1}.
 {emqx_exhook,1}.

+ 7 - 5
apps/emqx_conf/src/emqx_conf_app.erl

@@ -66,7 +66,8 @@ get_override_config_file() ->
                             conf => Conf,
                             tnx_id => TnxId,
                             node => Node,
-                            has_deprecated_file => HasDeprecateFile
+                            has_deprecated_file => HasDeprecateFile,
+                            release => emqx_app:get_release()
                         }
                     end,
                     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",
                         node => Node,
                         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(),
                         tnx_id => TnxId
                     }),
@@ -228,13 +231,12 @@ sync_data_from_node(Node) ->
             error(Error)
     end.
 
-has_deprecated_file(#{node := Node} = Info) ->
+has_deprecated_file(#{conf := Conf} = Info) ->
     case maps:find(has_deprecated_file, Info) of
         {ok, HasDeprecatedFile} ->
             HasDeprecatedFile;
         error ->
             %% The old version don't have emqx_config:has_deprecated_file/0
-            DataDir = emqx_conf_proto_v2:get_config(Node, [node, data_dir]),
-            File = filename:join([DataDir, "configs", "cluster-override.conf"]),
-            emqx_conf_proto_v3:file_exist(Node, File)
+            %% Conf is not empty if deprecated file is found.
+            Conf =/= #{}
     end.

+ 0 - 4
apps/emqx_conf/src/proto/emqx_conf_proto_v2.erl

@@ -20,7 +20,6 @@
 
 -export([
     introduced_in/0,
-    deprecated_since/0,
     sync_data_from_node/1,
     get_config/2,
     get_config/3,
@@ -42,9 +41,6 @@
 introduced_in() ->
     "5.0.1".
 
-deprecated_since() ->
-    "5.0.23".
-
 -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).

+ 0 - 114
apps/emqx_conf/src/proto/emqx_conf_proto_v3.erl

@@ -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).