From 17440b2b53da924343e8d58c64d29fa3ad70630d Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Sun, 27 Feb 2022 10:23:14 +0800 Subject: [PATCH] fix(relup): add module emqx_relup --- scripts/inject-relup.escript | 3 ++- src/emqx_relup.erl | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 src/emqx_relup.erl diff --git a/scripts/inject-relup.escript b/scripts/inject-relup.escript index 86c541ada..e414b9c31 100755 --- a/scripts/inject-relup.escript +++ b/scripts/inject-relup.escript @@ -49,13 +49,14 @@ inject_relup_instrs(Type, CurrRelVsn, RUs) -> %% the instruction lists. append_emqx_relup_instrs(Type, CurrRelVsn, Vsn, Instrs) -> CallbackFun = relup_callback_func(Type), + Extra = #{}, %% we may need some extended args case lists:reverse(Instrs) of [{apply, {emqx_relup, CallbackFun, _}} | _] -> Instrs; RInstrs -> lists:reverse([ {load_object_code, {emqx, CurrRelVsn, [emqx_relup]}} , {load, {emqx_relup, brutal_purge, soft_purge}} - , {apply, {emqx_relup, CallbackFun, [CurrRelVsn, Vsn]}} + , {apply, {emqx_relup, CallbackFun, [CurrRelVsn, Vsn, Extra]}} | RInstrs]) end. diff --git a/src/emqx_relup.erl b/src/emqx_relup.erl new file mode 100644 index 000000000..e844ea0ba --- /dev/null +++ b/src/emqx_relup.erl @@ -0,0 +1,17 @@ +-module(emqx_relup). + +-export([ post_release_upgrade/3 + , post_release_downgrade/3 + ]). + +post_release_upgrade(_CurrRelVsn, _FromVsn, _) -> + reload_components(). + +post_release_downgrade(_CurrRelVsn, _ToVsn, _) -> + reload_components(). + +reload_components() -> + io:format("reloading resource providers ..."), + emqx_rule_engine:load_providers(), + io:format("loading plugins ..."), + emqx_plugins:load().