Skip to content

Commit

Permalink
fix(listeners): test case emqx_mgmt_listeners_api_SUITE failed
Browse files Browse the repository at this point in the history
  • Loading branch information
terry-xiaoyu committed Aug 30, 2021
1 parent 0889403 commit c84b0d9
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 16 deletions.
13 changes: 6 additions & 7 deletions apps/emqx_management/src/emqx_mgmt.erl
Expand Up @@ -480,20 +480,19 @@ list_listeners(Node) when Node =:= node() ->
list_listeners(Node) ->
rpc_call(Node, list_listeners, [Node]).

list_listeners_by_id(Identifier) ->
listener_id_filter(Identifier, list_listeners()).
list_listeners_by_id(Id) ->
listener_id_filter(Id, list_listeners()).

get_listener(Node, Identifier) ->
case listener_id_filter(Identifier, list_listeners(Node)) of
get_listener(Node, Id) ->
case listener_id_filter(Id, list_listeners(Node)) of
[] ->
{error, not_found};
[Listener] ->
Listener
end.

listener_id_filter(Identifier, Listeners) ->
Filter =
fun({Id, _}) -> Id =:= Identifier end,
listener_id_filter(Id, Listeners) ->
Filter = fun(#{id := Id0}) -> Id0 =:= Id end,
lists:filter(Filter, Listeners).

-spec manage_listener(Operation :: start_listener|stop_listener|restart_listener, Param :: map()) ->
Expand Down
2 changes: 1 addition & 1 deletion apps/emqx_management/src/emqx_mgmt_api_listeners.erl
Expand Up @@ -132,7 +132,7 @@ api_get_update_listener_by_id_on_node() ->

api_manage_listeners() ->
Metadata = #{
get => #{
post => #{
description => <<"Restart listeners on all nodes in the cluster">>,
parameters => [
param_path_id(),
Expand Down
14 changes: 12 additions & 2 deletions apps/emqx_management/test/emqx_mgmt_api_test_util.erl
Expand Up @@ -52,13 +52,23 @@ request_api(Method, Url, Auth) ->
request_api(Method, Url, QueryParams, Auth) ->
request_api(Method, Url, QueryParams, Auth, []).

request_api(Method, Url, QueryParams, Auth, []) ->
request_api(Method, Url, QueryParams, Auth, [])
when (Method =:= options) orelse
(Method =:= get) orelse
(Method =:= put) orelse
(Method =:= head) orelse
(Method =:= delete) orelse
(Method =:= trace) ->
NewUrl = case QueryParams of
"" -> Url;
_ -> Url ++ "?" ++ QueryParams
end,
do_request_api(Method, {NewUrl, [Auth]});
request_api(Method, Url, QueryParams, Auth, Body) ->
request_api(Method, Url, QueryParams, Auth, Body)
when (Method =:= post) orelse
(Method =:= patch) orelse
(Method =:= put) orelse
(Method =:= delete) ->
NewUrl = case QueryParams of
"" -> Url;
_ -> Url ++ "?" ++ QueryParams
Expand Down
10 changes: 4 additions & 6 deletions apps/emqx_management/test/emqx_mgmt_listeners_api_SUITE.erl
Expand Up @@ -58,8 +58,8 @@ t_manage_listener(_) ->
manage_listener(ID, "restart", true).

manage_listener(ID, Operation, Running) ->
Path = emqx_mgmt_api_test_util:api_path(["listeners", ID, Operation]),
{ok, _} = emqx_mgmt_api_test_util:request_api(get, Path),
Path = emqx_mgmt_api_test_util:api_path(["listeners", ID, "operation", Operation]),
{ok, _} = emqx_mgmt_api_test_util:request_api(post, Path),
timer:sleep(500),
GetPath = emqx_mgmt_api_test_util:api_path(["listeners", ID]),
{ok, ListenersResponse} = emqx_mgmt_api_test_util:request_api(get, GetPath),
Expand Down Expand Up @@ -106,10 +106,8 @@ comparison_listener(Local, Response) ->
?assertEqual(maps:get(id, Local), binary_to_atom(maps:get(<<"id">>, Response))),
?assertEqual(maps:get(node, Local), binary_to_atom(maps:get(<<"node">>, Response))),
?assertEqual(maps:get(acceptors, Local), maps:get(<<"acceptors">>, Response)),
?assertEqual(maps:get(max_conn, Local), maps:get(<<"max_conn">>, Response)),
?assertEqual(maps:get(listen_on, Local), maps:get(<<"listen_on">>, Response)),
?assertEqual(maps:get(running, Local), maps:get(<<"running">>, Response)).


listener_stats(Listener, Stats) ->
?assertEqual(maps:get(<<"running">>, Listener), Stats).
listener_stats(Listener, ExpectedStats) ->
?assertEqual(ExpectedStats, maps:get(<<"running">>, Listener)).

0 comments on commit c84b0d9

Please sign in to comment.