Merge pull request #5907 from k32/mechanical-appup-update
chore(appup): Update appup scripts
This commit is contained in:
commit
4b098ce3af
|
@ -1,30 +1,22 @@
|
|||
%% -*-: erlang -*-
|
||||
|
||||
%% -*- mode: erlang -*-
|
||||
{VSN,
|
||||
[
|
||||
{"4.3.2", [
|
||||
{load_module,emqx_acl_mnesia_api, brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_auth_mnesia_api, brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{"4.3.1", [
|
||||
{load_module,emqx_auth_mnesia_api, brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{"4.3.0", [
|
||||
{load_module,emqx_auth_mnesia_api, brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{<<".*">>, []}
|
||||
],
|
||||
[
|
||||
{"4.3.2", [
|
||||
{load_module,emqx_acl_mnesia_api, brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_auth_mnesia_api, brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{"4.3.1", [
|
||||
{load_module,emqx_auth_mnesia_api, brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{"4.3.0", [
|
||||
{load_module,emqx_auth_mnesia_api, brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{<<".*">>, []}
|
||||
]
|
||||
}.
|
||||
[{"4.3.2",
|
||||
[{load_module,emqx_acl_mnesia_api,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_auth_mnesia_api,brutal_purge,soft_purge,[]}]},
|
||||
{"4.3.1",
|
||||
[{load_module,emqx_acl_mnesia_api,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_auth_mnesia_api,brutal_purge,soft_purge,[]}]},
|
||||
{"4.3.0",
|
||||
[{load_module,emqx_acl_mnesia_api,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_auth_mnesia_api,brutal_purge,soft_purge,[]}]},
|
||||
{<<".*">>,[]}],
|
||||
[{"4.3.2",
|
||||
[{load_module,emqx_acl_mnesia_api,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_auth_mnesia_api,brutal_purge,soft_purge,[]}]},
|
||||
{"4.3.1",
|
||||
[{load_module,emqx_acl_mnesia_api,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_auth_mnesia_api,brutal_purge,soft_purge,[]}]},
|
||||
{"4.3.0",
|
||||
[{load_module,emqx_acl_mnesia_api,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_auth_mnesia_api,brutal_purge,soft_purge,[]}]},
|
||||
{<<".*">>,[]}]}.
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
%% -*- mode: erlang -*-
|
||||
{VSN,
|
||||
[ {<<"4.3.[0-6]">>,
|
||||
[ {<<"4.3.[0-9]">>,
|
||||
[ {apply,{minirest,stop_http,['http:management']}},
|
||||
{apply,{minirest,stop_http,['https:management']}},
|
||||
{restart_application, emqx_management}
|
||||
]},
|
||||
{<<".*">>, []}
|
||||
],
|
||||
[ {<<"4.3.[0-6]">>,
|
||||
[ {<<"4.3.[0-9]">>,
|
||||
[ {apply,{minirest,stop_http,['http:management']}},
|
||||
{apply,{minirest,stop_http,['https:management']}},
|
||||
{restart_application, emqx_management}
|
||||
|
|
|
@ -1,28 +1,20 @@
|
|||
%% -*-: erlang -*-
|
||||
|
||||
%% -*- mode: erlang -*-
|
||||
{VSN,
|
||||
[
|
||||
{<<"4.3.[0-2]">>, [
|
||||
{apply, {application, stop,[emqx_web_hook]}},
|
||||
{load_module, emqx_web_hook_app, brutal_purge, soft_purge, []},
|
||||
{load_module, emqx_web_hook, brutal_purge, soft_purge, []},
|
||||
{load_module, emqx_web_hook_actions, brutal_purge, soft_purge, []}
|
||||
]},
|
||||
{<<"4.3.[3-5]">>, [
|
||||
{load_module, emqx_web_hook_actions, brutal_purge, soft_purge, []}
|
||||
]},
|
||||
{<<".*">>, []}
|
||||
],
|
||||
[
|
||||
{<<"4.3.[0-2]">>, [
|
||||
{apply, {application, stop, [emqx_web_hook]}},
|
||||
{load_module, emqx_web_hook_app, brutal_purge, soft_purge, []},
|
||||
{load_module, emqx_web_hook, brutal_purge, soft_purge, []},
|
||||
{load_module, emqx_web_hook_actions, brutal_purge, soft_purge, []}
|
||||
]},
|
||||
{<<"4.3.[3-5]">>, [
|
||||
{load_module, emqx_web_hook_actions, brutal_purge, soft_purge, []}
|
||||
]},
|
||||
{<<".*">>, []}
|
||||
]
|
||||
}.
|
||||
[{"4.3.5",[{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
|
||||
{<<"4.3.[0-2]">>,
|
||||
[{apply,{application,stop,[emqx_web_hook]}},
|
||||
{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_web_hook,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
|
||||
{<<"4.3.[3-4]">>,
|
||||
[{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
|
||||
{<<".*">>,[]}],
|
||||
[{"4.3.5",[{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
|
||||
{<<"4.3.[0-2]">>,
|
||||
[{apply,{application,stop,[emqx_web_hook]}},
|
||||
{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_web_hook,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
|
||||
{<<"4.3.[3-4]">>,
|
||||
[{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
|
||||
{<<".*">>,[]}]}.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%% -*- mode: erlang -*-
|
||||
{VSN,
|
||||
[ {<<"4.3.[0-4]">>,
|
||||
[ {<<"4.3.[0-9]">>,
|
||||
%% load all plugins
|
||||
%% NOTE: this depends on the fact that emqx_dashboard is always
|
||||
%% the last application gets upgraded
|
||||
|
@ -10,7 +10,7 @@
|
|||
]},
|
||||
{<<".*">>, []}
|
||||
],
|
||||
[ {<<"4.3.[0-4]">>,
|
||||
[ {<<"4.3.[0-9]">>,
|
||||
[ {apply, {emqx_rule_engine, load_providers, []}}
|
||||
, {restart_application, emqx_dashboard}
|
||||
, {apply, {emqx_plugins, load, []}}
|
||||
|
|
|
@ -49,6 +49,13 @@ default_options() ->
|
|||
, src_dirs => "{src,apps,lib-*}/**/"
|
||||
}.
|
||||
|
||||
%% App-specific actions that should be added unconditionally to any update/downgrade:
|
||||
app_specific_actions(_) ->
|
||||
[].
|
||||
|
||||
ignored_apps() ->
|
||||
[emqx_dashboard, emqx_management].
|
||||
|
||||
main(Args) ->
|
||||
#{current_release := CurrentRelease} = Options = parse_args(Args, default_options()),
|
||||
init_globals(Options),
|
||||
|
@ -172,8 +179,8 @@ find_appup_actions(_App, AppIdx, AppIdx) ->
|
|||
[];
|
||||
find_appup_actions(App, CurrAppIdx, PrevAppIdx = #app{version = PrevVersion}) ->
|
||||
{OldUpgrade, OldDowngrade} = find_old_appup_actions(App, PrevVersion),
|
||||
Upgrade = merge_update_actions(diff_app(App, CurrAppIdx, PrevAppIdx), OldUpgrade),
|
||||
Downgrade = merge_update_actions(diff_app(App, PrevAppIdx, CurrAppIdx), OldDowngrade),
|
||||
Upgrade = merge_update_actions(App, diff_app(App, CurrAppIdx, PrevAppIdx), OldUpgrade),
|
||||
Downgrade = merge_update_actions(App, diff_app(App, PrevAppIdx, CurrAppIdx), OldDowngrade),
|
||||
if OldUpgrade =:= Upgrade andalso OldDowngrade =:= Downgrade ->
|
||||
%% The appup file has been already updated:
|
||||
[];
|
||||
|
@ -192,22 +199,24 @@ find_old_appup_actions(App, PrevVersion) ->
|
|||
end,
|
||||
{ensure_version(PrevVersion, Upgrade0), ensure_version(PrevVersion, Downgrade0)}.
|
||||
|
||||
merge_update_actions(Changes, Vsns) ->
|
||||
merge_update_actions(App, Changes, Vsns) ->
|
||||
lists:map(fun(Ret = {<<".*">>, _}) ->
|
||||
Ret;
|
||||
({Vsn, Actions}) ->
|
||||
{Vsn, do_merge_update_actions(Changes, Actions)}
|
||||
{Vsn, do_merge_update_actions(App, Changes, Actions)}
|
||||
end,
|
||||
Vsns).
|
||||
|
||||
do_merge_update_actions({New0, Changed0, Deleted0}, OldActions) ->
|
||||
do_merge_update_actions(App, {New0, Changed0, Deleted0}, OldActions) ->
|
||||
AppSpecific = app_specific_actions(App) -- OldActions,
|
||||
AlreadyHandled = lists:flatten(lists:map(fun process_old_action/1, OldActions)),
|
||||
New = New0 -- AlreadyHandled,
|
||||
Changed = Changed0 -- AlreadyHandled,
|
||||
Deleted = Deleted0 -- AlreadyHandled,
|
||||
[{load_module, M, brutal_purge, soft_purge, []} || M <- Changed ++ New] ++
|
||||
OldActions ++
|
||||
[{delete_module, M} || M <- Deleted].
|
||||
[{delete_module, M} || M <- Deleted] ++
|
||||
AppSpecific.
|
||||
|
||||
|
||||
%% @doc Process the existing actions to exclude modules that are
|
||||
|
@ -222,12 +231,13 @@ process_old_action(LoadModule) when is_tuple(LoadModule) andalso
|
|||
process_old_action(_) ->
|
||||
[].
|
||||
|
||||
ensure_version(Version, Versions) ->
|
||||
case lists:keyfind(Version, 1, Versions) of
|
||||
ensure_version(Version, OldInstructions) ->
|
||||
OldVersions = [ensure_string(element(1, I)) || I <- OldInstructions],
|
||||
case lists:member(Version, OldVersions) of
|
||||
false ->
|
||||
[{Version, []}|Versions];
|
||||
[{Version, []}|OldInstructions];
|
||||
_ ->
|
||||
Versions
|
||||
OldInstructions
|
||||
end.
|
||||
|
||||
read_appup(File) ->
|
||||
|
@ -288,8 +298,9 @@ create_stub(App) ->
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
index_apps(ReleaseDir) ->
|
||||
maps:from_list([index_app(filename:join(ReleaseDir, AppFile)) ||
|
||||
AppFile <- filelib:wildcard("**/ebin/*.app", ReleaseDir)]).
|
||||
Apps0 = maps:from_list([index_app(filename:join(ReleaseDir, AppFile)) ||
|
||||
AppFile <- filelib:wildcard("**/ebin/*.app", ReleaseDir)]),
|
||||
maps:without(ignored_apps(), Apps0).
|
||||
|
||||
index_app(AppFile) ->
|
||||
{ok, [{application, App, Properties}]} = file:consult(AppFile),
|
||||
|
@ -320,7 +331,10 @@ diff_app(App, #app{version = NewVersion, modules = NewModules}, #app{version = O
|
|||
NChanges = length(New) + length(Changed) + length(Deleted),
|
||||
if NewVersion =:= OldVersion andalso NChanges > 0 ->
|
||||
set_invalid(),
|
||||
log("ERROR: Application '~p' contains changes, but its version is not updated", [App]);
|
||||
log("ERROR: Application '~p' contains changes, but its version is not updated~n", [App]);
|
||||
NewVersion > OldVersion ->
|
||||
log("INFO: Application '~p' has been updated: ~p -> ~p~n", [App, OldVersion, NewVersion]),
|
||||
ok;
|
||||
true ->
|
||||
ok
|
||||
end,
|
||||
|
@ -425,3 +439,8 @@ log(Msg) ->
|
|||
|
||||
log(Msg, Args) ->
|
||||
io:format(standard_error, Msg, Args).
|
||||
|
||||
ensure_string(Str) when is_binary(Str) ->
|
||||
binary_to_list(Str);
|
||||
ensure_string(Str) when is_list(Str) ->
|
||||
Str.
|
||||
|
|
|
@ -1,37 +1,36 @@
|
|||
%% -*- mode: erlang -*-
|
||||
Instructions =
|
||||
{"4.3.10",
|
||||
[
|
||||
%% app 4.3.9 was released in e4.3.4(enterprise) but not v4.3.9(opensource)
|
||||
{"4.3.9", [
|
||||
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{"4.3.8", [
|
||||
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||
{VSN,
|
||||
[{"4.3.9",
|
||||
[{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{"4.3.7", [
|
||||
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||
{"4.3.8",
|
||||
[{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||
{"4.3.7",
|
||||
[{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{"4.3.6", [
|
||||
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||
{"4.3.6",
|
||||
[{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_ctl,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{"4.3.5", [
|
||||
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||
{"4.3.5",
|
||||
[{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_access_rule,brutal_purge,soft_purge,[]},
|
||||
|
@ -39,10 +38,10 @@ Instructions =
|
|||
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{"4.3.4", [
|
||||
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||
{"4.3.4",
|
||||
[{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_shared_sub,brutal_purge,soft_purge,[]},
|
||||
|
@ -51,10 +50,10 @@ Instructions =
|
|||
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{"4.3.3", [
|
||||
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||
{"4.3.3",
|
||||
[{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_packet,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_shared_sub,brutal_purge,soft_purge,[]},
|
||||
|
@ -65,10 +64,10 @@ Instructions =
|
|||
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{"4.3.2", [
|
||||
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||
{"4.3.2",
|
||||
[{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_packet,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_shared_sub,brutal_purge,soft_purge,[]},
|
||||
|
@ -82,10 +81,10 @@ Instructions =
|
|||
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{"4.3.1", [
|
||||
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||
{"4.3.1",
|
||||
[{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_packet,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_shared_sub,brutal_purge,soft_purge,[]},
|
||||
|
@ -103,9 +102,11 @@ Instructions =
|
|||
{load_module,emqx_ctl,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{"4.3.0", [
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||
{"4.3.0",
|
||||
[{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_packet,brutal_purge,soft_purge,[]},
|
||||
|
@ -126,43 +127,52 @@ Instructions =
|
|||
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_access_rule,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_ctl,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||
{<<".*">>,[]}],
|
||||
[
|
||||
{"4.3.9", [
|
||||
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{"4.3.8", [
|
||||
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||
[{"4.3.9",
|
||||
[{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{"4.3.7", [
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||
{"4.3.8",
|
||||
[{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||
{"4.3.7",
|
||||
[{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{"4.3.6", [
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||
{"4.3.6",
|
||||
[{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_ctl,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{"4.3.5", [
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||
{"4.3.5",
|
||||
[{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_access_rule,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_ctl,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{"4.3.4", [
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||
{"4.3.4",
|
||||
[{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
||||
|
@ -170,9 +180,11 @@ Instructions =
|
|||
{load_module,emqx_access_rule,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_ctl,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{"4.3.3", [
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||
{"4.3.3",
|
||||
[{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_packet,brutal_purge,soft_purge,[]},
|
||||
|
@ -182,9 +194,11 @@ Instructions =
|
|||
{load_module,emqx_access_rule,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_ctl,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{"4.3.2", [
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||
{"4.3.2",
|
||||
[{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_packet,brutal_purge,soft_purge,[]},
|
||||
|
@ -197,9 +211,11 @@ Instructions =
|
|||
{load_module,emqx_access_rule,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_ctl,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{"4.3.1", [
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||
{"4.3.1",
|
||||
[{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_packet,brutal_purge,soft_purge,[]},
|
||||
|
@ -216,10 +232,10 @@ Instructions =
|
|||
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_access_rule,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_ctl,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{"4.3.0", [
|
||||
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||
{"4.3.0",
|
||||
[{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_packet,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_shared_sub,brutal_purge,soft_purge,[]},
|
||||
|
@ -240,23 +256,6 @@ Instructions =
|
|||
{load_module,emqx_ctl,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]}
|
||||
]},
|
||||
{<<".*">>,[]}]},
|
||||
|
||||
%% Always reload emqx_app for emqx_app:get_release/0 to return the correct version
|
||||
Mandatory = [{load_module,emqx_app,brutal_purge,soft_purge,[]}],
|
||||
|
||||
Append = fun
|
||||
({<<".*">>, Instrs}) ->
|
||||
{<<".*">>, Instrs};
|
||||
({Vsn, Instrs}) ->
|
||||
{Vsn, Instrs ++ Mandatory}
|
||||
end,
|
||||
|
||||
PostProcess = fun({Vsn, UpList, DownList}) ->
|
||||
{Vsn, [Append(Up) || Up <- UpList],
|
||||
[Append(Dn) || Dn <- DownList]}
|
||||
end,
|
||||
|
||||
PostProcess(Instructions).
|
||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||
{<<".*">>,[]}]}.
|
||||
|
|
Loading…
Reference in New Issue