diff --git a/apps/emqx_management/src/emqx_mgmt_api_status.erl b/apps/emqx_management/src/emqx_mgmt_api_status.erl index a34c8b757..882fd271c 100644 --- a/apps/emqx_management/src/emqx_mgmt_api_status.erl +++ b/apps/emqx_management/src/emqx_mgmt_api_status.erl @@ -53,12 +53,18 @@ schema("/status") -> %%-------------------------------------------------------------------- running_status(get, _Params) -> - {InternalStatus, _ProvidedStatus} = init:get_status(), + BrokerStatus = + case emqx:is_running() of + true -> + started; + false -> + stopped + end, AppStatus = case lists:keysearch(emqx, 1, application:which_applications()) of false -> not_running; {value, _Val} -> running end, - Status = io_lib:format("Node ~ts is ~ts~nemqx is ~ts", [node(), InternalStatus, AppStatus]), + Status = io_lib:format("Node ~ts is ~ts~nemqx is ~ts", [node(), BrokerStatus, AppStatus]), Body = list_to_binary(Status), {200, #{<<"content-type">> => <<"text/plain">>}, Body}. diff --git a/apps/emqx_management/test/emqx_mgmt_api_status_SUITE.erl b/apps/emqx_management/test/emqx_mgmt_api_status_SUITE.erl new file mode 100644 index 000000000..3e7f77a31 --- /dev/null +++ b/apps/emqx_management/test/emqx_mgmt_api_status_SUITE.erl @@ -0,0 +1,37 @@ +%%-------------------------------------------------------------------- +%% Copyright (c) 2020-2022 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_mgmt_api_status_SUITE). + +-compile(export_all). +-compile(nowarn_export_all). + +-include_lib("eunit/include/eunit.hrl"). + +all() -> + emqx_common_test_helpers:all(?MODULE). + +init_per_suite(Config) -> + emqx_mgmt_api_test_util:init_suite(), + Config. + +end_per_suite(_) -> + emqx_mgmt_api_test_util:end_suite(). + +t_status(_Config) -> + Path = emqx_mgmt_api_test_util:api_path(["status"]), + Status = io_lib:format("Node ~ts is ~ts~nemqx is ~ts", [node(), started, running]), + {ok, Status} = emqx_mgmt_api_test_util:request_api(get, Path), + ok.