fix(listeners): test case emqx_mgmt_listeners_api_SUITE failed

This commit is contained in:
Shawn 2021-08-30 17:54:01 +08:00
parent 8c36b7879f
commit 7390d2bb36
4 changed files with 23 additions and 16 deletions

View File

@ -480,20 +480,19 @@ list_listeners(Node) when Node =:= node() ->
list_listeners(Node) -> list_listeners(Node) ->
rpc_call(Node, list_listeners, [Node]). rpc_call(Node, list_listeners, [Node]).
list_listeners_by_id(Identifier) -> list_listeners_by_id(Id) ->
listener_id_filter(Identifier, list_listeners()). listener_id_filter(Id, list_listeners()).
get_listener(Node, Identifier) -> get_listener(Node, Id) ->
case listener_id_filter(Identifier, list_listeners(Node)) of case listener_id_filter(Id, list_listeners(Node)) of
[] -> [] ->
{error, not_found}; {error, not_found};
[Listener] -> [Listener] ->
Listener Listener
end. end.
listener_id_filter(Identifier, Listeners) -> listener_id_filter(Id, Listeners) ->
Filter = Filter = fun(#{id := Id0}) -> Id0 =:= Id end,
fun({Id, _}) -> Id =:= Identifier end,
lists:filter(Filter, Listeners). lists:filter(Filter, Listeners).
-spec manage_listener(Operation :: start_listener|stop_listener|restart_listener, Param :: map()) -> -spec manage_listener(Operation :: start_listener|stop_listener|restart_listener, Param :: map()) ->

View File

@ -132,7 +132,7 @@ api_get_update_listener_by_id_on_node() ->
api_manage_listeners() -> api_manage_listeners() ->
Metadata = #{ Metadata = #{
get => #{ post => #{
description => <<"Restart listeners on all nodes in the cluster">>, description => <<"Restart listeners on all nodes in the cluster">>,
parameters => [ parameters => [
param_path_id(), param_path_id(),

View File

@ -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, []).
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 NewUrl = case QueryParams of
"" -> Url; "" -> Url;
_ -> Url ++ "?" ++ QueryParams _ -> Url ++ "?" ++ QueryParams
end, end,
do_request_api(Method, {NewUrl, [Auth]}); 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 NewUrl = case QueryParams of
"" -> Url; "" -> Url;
_ -> Url ++ "?" ++ QueryParams _ -> Url ++ "?" ++ QueryParams

View File

@ -58,8 +58,8 @@ t_manage_listener(_) ->
manage_listener(ID, "restart", true). manage_listener(ID, "restart", true).
manage_listener(ID, Operation, Running) -> manage_listener(ID, Operation, Running) ->
Path = emqx_mgmt_api_test_util:api_path(["listeners", ID, Operation]), Path = emqx_mgmt_api_test_util:api_path(["listeners", ID, "operation", Operation]),
{ok, _} = emqx_mgmt_api_test_util:request_api(get, Path), {ok, _} = emqx_mgmt_api_test_util:request_api(post, Path),
timer:sleep(500), timer:sleep(500),
GetPath = emqx_mgmt_api_test_util:api_path(["listeners", ID]), GetPath = emqx_mgmt_api_test_util:api_path(["listeners", ID]),
{ok, ListenersResponse} = emqx_mgmt_api_test_util:request_api(get, GetPath), {ok, ListenersResponse} = emqx_mgmt_api_test_util:request_api(get, GetPath),
@ -106,10 +106,8 @@ comparison_listener(Local, Response) ->
?assertEqual(maps:get(id, Local), binary_to_atom(maps:get(<<"id">>, 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(node, Local), binary_to_atom(maps:get(<<"node">>, Response))),
?assertEqual(maps:get(acceptors, Local), maps:get(<<"acceptors">>, 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)). ?assertEqual(maps:get(running, Local), maps:get(<<"running">>, Response)).
listener_stats(Listener, Stats) -> listener_stats(Listener, ExpectedStats) ->
?assertEqual(maps:get(<<"running">>, Listener), Stats). ?assertEqual(ExpectedStats, maps:get(<<"running">>, Listener)).