Merge pull request #9026 from zhongwencool/sync-back-from-e4.3-to-v4.3

chore: sync from release-e4.3
This commit is contained in:
zhongwencool 2022-09-23 07:41:02 +08:00 committed by GitHub
commit 92356b85f3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 37 additions and 6 deletions

View File

@ -13,6 +13,7 @@
{load_module,emqx_tracer,brutal_purge,soft_purge,[]}, {load_module,emqx_tracer,brutal_purge,soft_purge,[]},
{load_module,emqx_channel,brutal_purge,soft_purge,[]}, {load_module,emqx_channel,brutal_purge,soft_purge,[]},
{load_module,emqx_misc,brutal_purge,soft_purge,[]}, {load_module,emqx_misc,brutal_purge,soft_purge,[]},
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
{load_module,emqx,brutal_purge,soft_purge,[]}]}, {load_module,emqx,brutal_purge,soft_purge,[]}]},
{"4.3.20", {"4.3.20",
[{load_module,emqx_plugins,brutal_purge,soft_purge,[]}, [{load_module,emqx_plugins,brutal_purge,soft_purge,[]},
@ -28,6 +29,7 @@
{load_module,emqx_message,brutal_purge,soft_purge,[]}, {load_module,emqx_message,brutal_purge,soft_purge,[]},
{load_module,emqx_cm,brutal_purge,soft_purge,[]}, {load_module,emqx_cm,brutal_purge,soft_purge,[]},
{load_module,emqx_misc,brutal_purge,soft_purge,[]}, {load_module,emqx_misc,brutal_purge,soft_purge,[]},
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
{load_module,emqx,brutal_purge,soft_purge,[]}]}, {load_module,emqx,brutal_purge,soft_purge,[]}]},
{"4.3.19", {"4.3.19",
[{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, [{load_module,emqx_listeners,brutal_purge,soft_purge,[]},
@ -44,6 +46,7 @@
{load_module,emqx,brutal_purge,soft_purge,[]}, {load_module,emqx,brutal_purge,soft_purge,[]},
{load_module,emqx_cm,brutal_purge,soft_purge,[]}, {load_module,emqx_cm,brutal_purge,soft_purge,[]},
{load_module,emqx_plugins,brutal_purge,soft_purge,[]}, {load_module,emqx_plugins,brutal_purge,soft_purge,[]},
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
{load_module,emqx_channel,brutal_purge,soft_purge,[]}]}, {load_module,emqx_channel,brutal_purge,soft_purge,[]}]},
{"4.3.18", {"4.3.18",
[{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, [{load_module,emqx_listeners,brutal_purge,soft_purge,[]},
@ -60,6 +63,7 @@
{load_module,emqx_channel,brutal_purge,soft_purge,[]}, {load_module,emqx_channel,brutal_purge,soft_purge,[]},
{load_module,emqx_app,brutal_purge,soft_purge,[]}, {load_module,emqx_app,brutal_purge,soft_purge,[]},
{load_module,emqx,brutal_purge,soft_purge,[]}, {load_module,emqx,brutal_purge,soft_purge,[]},
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
{load_module,emqx_plugins,brutal_purge,soft_purge,[]}]}, {load_module,emqx_plugins,brutal_purge,soft_purge,[]}]},
{"4.3.17", {"4.3.17",
[{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, [{load_module,emqx_listeners,brutal_purge,soft_purge,[]},
@ -80,6 +84,7 @@
{update,emqx_broker_sup,supervisor}, {update,emqx_broker_sup,supervisor},
{load_module,emqx_app,brutal_purge,soft_purge,[]}, {load_module,emqx_app,brutal_purge,soft_purge,[]},
{load_module,emqx_plugins,brutal_purge,soft_purge,[]}, {load_module,emqx_plugins,brutal_purge,soft_purge,[]},
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
{load_module,emqx_access_control,brutal_purge,soft_purge,[]}]}, {load_module,emqx_access_control,brutal_purge,soft_purge,[]}]},
{"4.3.16", {"4.3.16",
[{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, [{load_module,emqx_listeners,brutal_purge,soft_purge,[]},
@ -107,6 +112,7 @@
{load_module,emqx_channel,brutal_purge,soft_purge,[]}, {load_module,emqx_channel,brutal_purge,soft_purge,[]},
{load_module,emqx_ctl,brutal_purge,soft_purge,[]}, {load_module,emqx_ctl,brutal_purge,soft_purge,[]},
{load_module,emqx_mqtt_caps,brutal_purge,soft_purge,[]}, {load_module,emqx_mqtt_caps,brutal_purge,soft_purge,[]},
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
{load_module,emqx_topic,brutal_purge,soft_purge,[]}]}, {load_module,emqx_topic,brutal_purge,soft_purge,[]}]},
{"4.3.15", {"4.3.15",
[{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, [{load_module,emqx_listeners,brutal_purge,soft_purge,[]},
@ -141,6 +147,7 @@
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]}, {load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module,emqx_alarm,brutal_purge,soft_purge,[]}, {load_module,emqx_alarm,brutal_purge,soft_purge,[]},
{update,emqx_os_mon,{advanced,[]}}, {update,emqx_os_mon,{advanced,[]}},
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
{load_module,emqx_app,brutal_purge,soft_purge,[]}]}, {load_module,emqx_app,brutal_purge,soft_purge,[]}]},
{"4.3.14", {"4.3.14",
[{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, [{load_module,emqx_listeners,brutal_purge,soft_purge,[]},
@ -177,6 +184,7 @@
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]}, {load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module,emqx_alarm,brutal_purge,soft_purge,[]}, {load_module,emqx_alarm,brutal_purge,soft_purge,[]},
{update,emqx_os_mon,{advanced,[]}}, {update,emqx_os_mon,{advanced,[]}},
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
{load_module,emqx_hooks,brutal_purge,soft_purge,[]}]}, {load_module,emqx_hooks,brutal_purge,soft_purge,[]}]},
{"4.3.13", {"4.3.13",
[{load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, [{load_module,emqx_router_helper,brutal_purge,soft_purge,[]},
@ -216,6 +224,7 @@
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]}, {load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module,emqx_alarm,brutal_purge,soft_purge,[]}, {load_module,emqx_alarm,brutal_purge,soft_purge,[]},
{update,emqx_os_mon,{advanced,[]}}, {update,emqx_os_mon,{advanced,[]}},
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
{load_module,emqx_connection,brutal_purge,soft_purge,[]}]}, {load_module,emqx_connection,brutal_purge,soft_purge,[]}]},
{"4.3.12", {"4.3.12",
[{load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, [{load_module,emqx_router_helper,brutal_purge,soft_purge,[]},
@ -258,6 +267,7 @@
{load_module,emqx,brutal_purge,soft_purge,[]}, {load_module,emqx,brutal_purge,soft_purge,[]},
{load_module,emqx_app,brutal_purge,soft_purge,[]}, {load_module,emqx_app,brutal_purge,soft_purge,[]},
{load_module,emqx_message,brutal_purge,soft_purge,[]}, {load_module,emqx_message,brutal_purge,soft_purge,[]},
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
{load_module,emqx_limiter,brutal_purge,soft_purge,[]}]}, {load_module,emqx_limiter,brutal_purge,soft_purge,[]}]},
{"4.3.11", {"4.3.11",
[{load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, [{load_module,emqx_router_helper,brutal_purge,soft_purge,[]},
@ -838,6 +848,7 @@
{load_module,emqx_tracer,brutal_purge,soft_purge,[]}, {load_module,emqx_tracer,brutal_purge,soft_purge,[]},
{load_module,emqx_channel,brutal_purge,soft_purge,[]}, {load_module,emqx_channel,brutal_purge,soft_purge,[]},
{load_module,emqx_misc,brutal_purge,soft_purge,[]}, {load_module,emqx_misc,brutal_purge,soft_purge,[]},
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
{load_module,emqx,brutal_purge,soft_purge,[]}]}, {load_module,emqx,brutal_purge,soft_purge,[]}]},
{"4.3.20", {"4.3.20",
[{load_module,emqx_plugins,brutal_purge,soft_purge,[]}, [{load_module,emqx_plugins,brutal_purge,soft_purge,[]},
@ -853,6 +864,7 @@
{load_module,emqx_message,brutal_purge,soft_purge,[]}, {load_module,emqx_message,brutal_purge,soft_purge,[]},
{load_module,emqx_cm,brutal_purge,soft_purge,[]}, {load_module,emqx_cm,brutal_purge,soft_purge,[]},
{load_module,emqx_misc,brutal_purge,soft_purge,[]}, {load_module,emqx_misc,brutal_purge,soft_purge,[]},
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
{load_module,emqx,brutal_purge,soft_purge,[]}]}, {load_module,emqx,brutal_purge,soft_purge,[]}]},
{"4.3.19", {"4.3.19",
[{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, [{load_module,emqx_listeners,brutal_purge,soft_purge,[]},
@ -869,6 +881,7 @@
{load_module,emqx,brutal_purge,soft_purge,[]}, {load_module,emqx,brutal_purge,soft_purge,[]},
{load_module,emqx_cm,brutal_purge,soft_purge,[]}, {load_module,emqx_cm,brutal_purge,soft_purge,[]},
{load_module,emqx_plugins,brutal_purge,soft_purge,[]}, {load_module,emqx_plugins,brutal_purge,soft_purge,[]},
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
{load_module,emqx_channel,brutal_purge,soft_purge,[]}]}, {load_module,emqx_channel,brutal_purge,soft_purge,[]}]},
{"4.3.18", {"4.3.18",
[{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, [{load_module,emqx_listeners,brutal_purge,soft_purge,[]},
@ -885,6 +898,7 @@
{load_module,emqx_channel,brutal_purge,soft_purge,[]}, {load_module,emqx_channel,brutal_purge,soft_purge,[]},
{load_module,emqx_app,brutal_purge,soft_purge,[]}, {load_module,emqx_app,brutal_purge,soft_purge,[]},
{load_module,emqx,brutal_purge,soft_purge,[]}, {load_module,emqx,brutal_purge,soft_purge,[]},
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
{load_module,emqx_plugins,brutal_purge,soft_purge,[]}]}, {load_module,emqx_plugins,brutal_purge,soft_purge,[]}]},
{"4.3.17", {"4.3.17",
[{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, [{load_module,emqx_listeners,brutal_purge,soft_purge,[]},
@ -905,6 +919,7 @@
{update,emqx_broker_sup,supervisor}, {update,emqx_broker_sup,supervisor},
{load_module,emqx_app,brutal_purge,soft_purge,[]}, {load_module,emqx_app,brutal_purge,soft_purge,[]},
{load_module,emqx_plugins,brutal_purge,soft_purge,[]}, {load_module,emqx_plugins,brutal_purge,soft_purge,[]},
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
{load_module,emqx_access_control,brutal_purge,soft_purge,[]}]}, {load_module,emqx_access_control,brutal_purge,soft_purge,[]}]},
{"4.3.16", {"4.3.16",
[{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, [{load_module,emqx_listeners,brutal_purge,soft_purge,[]},
@ -932,6 +947,7 @@
{load_module,emqx_mqtt_caps,brutal_purge,soft_purge,[]}, {load_module,emqx_mqtt_caps,brutal_purge,soft_purge,[]},
{load_module,emqx_topic,brutal_purge,soft_purge,[]}, {load_module,emqx_topic,brutal_purge,soft_purge,[]},
{apply,{emqx_exclusive_subscription,on_delete_module,[]}}, {apply,{emqx_exclusive_subscription,on_delete_module,[]}},
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
{delete_module,emqx_exclusive_subscription}]}, {delete_module,emqx_exclusive_subscription}]},
{"4.3.15", {"4.3.15",
[{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, [{load_module,emqx_listeners,brutal_purge,soft_purge,[]},
@ -965,6 +981,7 @@
{load_module,emqx_access_rule,brutal_purge,soft_purge,[]}, {load_module,emqx_access_rule,brutal_purge,soft_purge,[]},
{load_module,emqx_access_control,brutal_purge,soft_purge,[]}, {load_module,emqx_access_control,brutal_purge,soft_purge,[]},
{load_module,emqx_os_mon,brutal_purge,soft_purge,[]}, {load_module,emqx_os_mon,brutal_purge,soft_purge,[]},
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
{load_module,emqx_app,brutal_purge,soft_purge,[]}]}, {load_module,emqx_app,brutal_purge,soft_purge,[]}]},
{"4.3.14", {"4.3.14",
[{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, [{load_module,emqx_listeners,brutal_purge,soft_purge,[]},
@ -1000,6 +1017,7 @@
{load_module,emqx_frame,brutal_purge,soft_purge,[]}, {load_module,emqx_frame,brutal_purge,soft_purge,[]},
{load_module,emqx_app,brutal_purge,soft_purge,[]}, {load_module,emqx_app,brutal_purge,soft_purge,[]},
{load_module,emqx_os_mon,brutal_purge,soft_purge,[]}, {load_module,emqx_os_mon,brutal_purge,soft_purge,[]},
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
{load_module,emqx_hooks,brutal_purge,soft_purge,[]}]}, {load_module,emqx_hooks,brutal_purge,soft_purge,[]}]},
{"4.3.13", {"4.3.13",
[{load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, [{load_module,emqx_router_helper,brutal_purge,soft_purge,[]},
@ -1038,6 +1056,7 @@
{load_module,emqx_app,brutal_purge,soft_purge,[]}, {load_module,emqx_app,brutal_purge,soft_purge,[]},
{load_module,emqx_ctl,brutal_purge,soft_purge,[]}, {load_module,emqx_ctl,brutal_purge,soft_purge,[]},
{load_module,emqx_cm,brutal_purge,soft_purge,[]}, {load_module,emqx_cm,brutal_purge,soft_purge,[]},
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
{load_module,emqx_connection,brutal_purge,soft_purge,[]}]}, {load_module,emqx_connection,brutal_purge,soft_purge,[]}]},
{"4.3.12", {"4.3.12",
[{load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, [{load_module,emqx_router_helper,brutal_purge,soft_purge,[]},
@ -1078,6 +1097,7 @@
{load_module,emqx,brutal_purge,soft_purge,[]}, {load_module,emqx,brutal_purge,soft_purge,[]},
{load_module,emqx_app,brutal_purge,soft_purge,[]}, {load_module,emqx_app,brutal_purge,soft_purge,[]},
{load_module,emqx_message,brutal_purge,soft_purge,[]}, {load_module,emqx_message,brutal_purge,soft_purge,[]},
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
{load_module,emqx_limiter,brutal_purge,soft_purge,[]}]}, {load_module,emqx_limiter,brutal_purge,soft_purge,[]}]},
{"4.3.11", {"4.3.11",
[{load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, [{load_module,emqx_router_helper,brutal_purge,soft_purge,[]},

View File

@ -96,8 +96,8 @@ do_parse(URI) ->
%% underscores replaced with hyphens %% underscores replaced with hyphens
%% NOTE: assuming the input Headers list is a proplists, %% NOTE: assuming the input Headers list is a proplists,
%% that is, when a key is duplicated, list header overrides tail %% that is, when a key is duplicated, list header overrides tail
%% e.g. [{"Content_Type", "applicaiton/binary"}, {<<"content-type">>, "applicaiton/json"}] %% e.g. [{"Content_Type", "applicaiton/binary"}, {"content-type", "applicaiton/json"}]
%% results in: [{"content-type", "applicaiton/binary"}] %% results in: [{<<"content-type">>, "applicaiton/binary"}]
normalise_headers(Headers0) -> normalise_headers(Headers0) ->
F = fun({K0, V}) -> F = fun({K0, V}) ->
K = re:replace(K0, "_", "-", [{return,binary}]), K = re:replace(K0, "_", "-", [{return,binary}]),

View File

@ -24,6 +24,7 @@
-export([init/0]). -export([init/0]).
-export([ load/0 -export([ load/0
, force_load/0
, load/1 , load/1
, unload/0 , unload/0
, unload/1 , unload/1
@ -59,12 +60,17 @@ init() ->
%% @doc Load all plugins when the broker started. %% @doc Load all plugins when the broker started.
-spec(load() -> ok | ignore | {error, term()}). -spec(load() -> ok | ignore | {error, term()}).
load() -> load() ->
do_load(#{force_load => false}).
force_load() ->
do_load(#{force_load => true}).
do_load(Options) ->
ok = load_ext_plugins(emqx:get_env(expand_plugins_dir)), ok = load_ext_plugins(emqx:get_env(expand_plugins_dir)),
case emqx:get_env(plugins_loaded_file) of case emqx:get_env(plugins_loaded_file) of
undefined -> ignore; %% No plugins available undefined -> ignore; %% No plugins available
File -> File ->
_ = ensure_file(File), _ = ensure_file(File),
with_loaded_file(File, fun(Names) -> load_plugins(Names, false) end) with_loaded_file(File, fun(Names) -> load_plugins(Names, Options, false) end)
end. end.
%% @doc Load a Plugin %% @doc Load a Plugin
@ -282,18 +288,23 @@ filter_plugins([{Name, Load} | Names], Plugins) ->
filter_plugins([Name | Names], Plugins) when is_atom(Name) -> filter_plugins([Name | Names], Plugins) when is_atom(Name) ->
filter_plugins([{Name, true} | Names], Plugins). filter_plugins([{Name, true} | Names], Plugins).
load_plugins(Names, Persistent) -> load_plugins(Names, Options, Persistent) ->
Plugins = list(), Plugins = list(),
NotFound = Names -- names(Plugins), NotFound = Names -- names(Plugins),
case NotFound of case NotFound of
[] -> ok; [] -> ok;
NotFound -> ?LOG(alert, "cannot_find_plugins: ~p", [NotFound]) NotFound -> ?LOG(alert, "cannot_find_plugins: ~p", [NotFound])
end, end,
NeedToLoad = (Names -- NotFound) -- names(started_app), NeedToLoad0 = Names -- NotFound,
NeedToLoad1 =
case Options of
#{force_load := true} -> NeedToLoad0;
_ -> NeedToLoad0 -- names(started_app)
end,
lists:foreach(fun(Name) -> lists:foreach(fun(Name) ->
Plugin = find_plugin(Name, Plugins), Plugin = find_plugin(Name, Plugins),
load_plugin(Plugin#plugin.name, Persistent) load_plugin(Plugin#plugin.name, Persistent)
end, NeedToLoad). end, NeedToLoad1).
generate_configs(App) -> generate_configs(App) ->
ConfigFile = filename:join([emqx:get_env(plugins_etc_dir), App]) ++ ".config", ConfigFile = filename:join([emqx:get_env(plugins_etc_dir), App]) ++ ".config",