fix: bp_api for relup
This commit is contained in:
parent
f11dfce292
commit
fc3405fe4c
|
@ -47,6 +47,7 @@
|
|||
{emqx_mgmt_api_plugins,1}.
|
||||
{emqx_mgmt_api_plugins,2}.
|
||||
{emqx_mgmt_api_plugins,3}.
|
||||
{emqx_mgmt_api_relup,1}.
|
||||
{emqx_mgmt_cluster,1}.
|
||||
{emqx_mgmt_cluster,2}.
|
||||
{emqx_mgmt_cluster,3}.
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
-include_lib("typerefl/include/types.hrl").
|
||||
-include_lib("emqx/include/logger.hrl").
|
||||
|
||||
-export([get_upgrade_status/0]).
|
||||
-export([get_upgrade_status/0, emqx_relup_upgrade/1]).
|
||||
|
||||
-export([
|
||||
api_spec/0,
|
||||
|
@ -55,7 +55,7 @@
|
|||
|
||||
-define(ASSERT_PKG_READY(EXPR),
|
||||
case code:is_loaded(emqx_relup_main) of
|
||||
false -> return_bad_request(<<"No relup package is installed">>);
|
||||
false -> return_package_not_installed();
|
||||
{file, _} -> EXPR
|
||||
end
|
||||
).
|
||||
|
@ -546,7 +546,7 @@ upgrade_with_targe_vsn(Fun) ->
|
|||
{ok, TargetVsn} ->
|
||||
Fun(TargetVsn);
|
||||
{error, no_relup_package_installed} ->
|
||||
return_bad_request(<<"No relup package is installed">>);
|
||||
return_package_not_installed();
|
||||
{error, multiple_relup_packages_installed} ->
|
||||
return_internal_error(<<"Multiple relup package installed">>)
|
||||
end.
|
||||
|
@ -557,22 +557,24 @@ run_upgrade_on_nodes(Nodes, TargetVsn) ->
|
|||
[] ->
|
||||
{204};
|
||||
Filtered ->
|
||||
upgrade_return(
|
||||
case hd(Filtered) of
|
||||
{badrpc, Reason} -> Reason;
|
||||
{error, Reason} -> Reason;
|
||||
Reason -> Reason
|
||||
no_pkg_installed -> return_package_not_installed();
|
||||
{badrpc, Reason} -> return_internal_error(Reason);
|
||||
{error, Reason} -> upgrade_return(Reason);
|
||||
Reason -> return_internal_error(Reason)
|
||||
end
|
||||
)
|
||||
end.
|
||||
|
||||
run_upgrade(TargetVsn) ->
|
||||
case call_emqx_relup_main(upgrade, [TargetVsn], no_pkg_installed) of
|
||||
no_pkg_installed -> return_bad_request(<<"No relup package is installed">>);
|
||||
case emqx_relup_upgrade(TargetVsn) of
|
||||
no_pkg_installed -> return_package_not_installed();
|
||||
ok -> {204};
|
||||
{error, Reason} -> upgrade_return(Reason)
|
||||
end.
|
||||
|
||||
emqx_relup_upgrade(TargetVsn) ->
|
||||
call_emqx_relup_main(upgrade, [TargetVsn], no_pkg_installed).
|
||||
|
||||
get_target_vsn() ->
|
||||
case get_installed_packages() of
|
||||
[PackageInfo] -> {ok, target_vsn_from_rel_vsn(maps_get(rel_vsn, PackageInfo))};
|
||||
|
@ -647,6 +649,9 @@ return_not_found(Reason) ->
|
|||
message => emqx_utils:readable_error_msg(Reason)
|
||||
}}.
|
||||
|
||||
return_package_not_installed() ->
|
||||
return_bad_request(<<"No relup package is installed">>).
|
||||
|
||||
return_bad_request(Reason) ->
|
||||
{400, #{
|
||||
code => 'BAD_REQUEST',
|
||||
|
|
|
@ -34,10 +34,12 @@ introduced_in() ->
|
|||
|
||||
-spec run_upgrade([node()], string()) -> emqx_rpc:multicall_result().
|
||||
run_upgrade(Nodes, TargetVsn) ->
|
||||
rpc:multicall(Nodes, emqx_relup_main, upgrade, [TargetVsn], ?RPC_TIMEOUT_OP).
|
||||
rpc:multicall(Nodes, emqx_mgmt_api_relup, emqx_relup_upgrade, [TargetVsn], ?RPC_TIMEOUT_OP).
|
||||
|
||||
-spec get_upgrade_status_from_all_nodes() -> emqx_rpc:multicall_result().
|
||||
get_upgrade_status_from_all_nodes() ->
|
||||
rpc:multicall(emqx_mgmt_api_relup, get_upgrade_status, [], ?RPC_TIMEOUT_INFO).
|
||||
|
||||
-spec get_upgrade_status(node()) -> emqx_rpc:call_result(map()).
|
||||
get_upgrade_status(Node) ->
|
||||
rpc:call(Node, emqx_mgmt_api_relup, get_upgrade_status, [], ?RPC_TIMEOUT_INFO).
|
||||
|
|
Loading…
Reference in New Issue