fix(gateway): change the `/gateway` API path to plural form

This commit is contained in:
firest 2022-08-29 14:20:02 +08:00
parent d74564a7f0
commit 527ea23ec8
10 changed files with 132 additions and 132 deletions

View File

@ -28,7 +28,7 @@
-export([request/2]). -export([request/2]).
-define(PREFIX, "/gateway/coap/clients/:clientid"). -define(PREFIX, "/gateways/coap/clients/:clientid").
-import(hoconsc, [mk/2, enum/1]). -import(hoconsc, [mk/2, enum/1]).
-import(emqx_dashboard_swagger, [error_codes/2]). -import(emqx_dashboard_swagger, [error_codes/2]).

View File

@ -62,8 +62,8 @@ api_spec() ->
paths() -> paths() ->
[ [
"/gateway", "/gateways",
"/gateway/:name" "/gateways/:name"
]. ].
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
@ -159,7 +159,7 @@ gateway_insta(put, #{
%% Swagger defines %% Swagger defines
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
schema("/gateway") -> schema("/gateways") ->
#{ #{
'operationId' => gateway, 'operationId' => gateway,
get => get =>
@ -185,7 +185,7 @@ schema("/gateway") ->
?STANDARD_RESP(#{201 => schema_gateways_conf()}) ?STANDARD_RESP(#{201 => schema_gateways_conf()})
} }
}; };
schema("/gateway/:name") -> schema("/gateways/:name") ->
#{ #{
'operationId' => gateway_insta, 'operationId' => gateway_insta,
get => get =>

View File

@ -61,9 +61,9 @@ api_spec() ->
paths() -> paths() ->
[ [
"/gateway/:name/authentication", "/gateways/:name/authentication",
"/gateway/:name/authentication/users", "/gateways/:name/authentication/users",
"/gateway/:name/authentication/users/:uid" "/gateways/:name/authentication/users/:uid"
]. ].
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
@ -176,7 +176,7 @@ parse_qstring(Qs) ->
%% Swagger defines %% Swagger defines
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
schema("/gateway/:name/authentication") -> schema("/gateways/:name/authentication") ->
#{ #{
'operationId' => authn, 'operationId' => authn,
get => get =>
@ -215,7 +215,7 @@ schema("/gateway/:name/authentication") ->
?STANDARD_RESP(#{204 => <<"Deleted">>}) ?STANDARD_RESP(#{204 => <<"Deleted">>})
} }
}; };
schema("/gateway/:name/authentication/users") -> schema("/gateways/:name/authentication/users") ->
#{ #{
'operationId' => users, 'operationId' => users,
get => get =>
@ -253,7 +253,7 @@ schema("/gateway/:name/authentication/users") ->
) )
} }
}; };
schema("/gateway/:name/authentication/users/:uid") -> schema("/gateways/:name/authentication/users/:uid") ->
#{ #{
'operationId' => users_insta, 'operationId' => users_insta,
get => get =>

View File

@ -54,8 +54,8 @@ api_spec() ->
paths() -> paths() ->
[ [
"/gateway/:name/authentication/import_users", "/gateways/:name/authentication/import_users",
"/gateway/:name/listeners/:id/authentication/import_users" "/gateways/:name/listeners/:id/authentication/import_users"
]. ].
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
@ -117,7 +117,7 @@ import_listener_users(post, #{
%% Swagger defines %% Swagger defines
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
schema("/gateway/:name/authentication/import_users") -> schema("/gateways/:name/authentication/import_users") ->
#{ #{
'operationId' => import_users, 'operationId' => import_users,
post => post =>
@ -129,7 +129,7 @@ schema("/gateway/:name/authentication/import_users") ->
?STANDARD_RESP(#{204 => <<"Imported">>}) ?STANDARD_RESP(#{204 => <<"Imported">>})
} }
}; };
schema("/gateway/:name/listeners/:id/authentication/import_users") -> schema("/gateways/:name/listeners/:id/authentication/import_users") ->
#{ #{
'operationId' => import_listener_users, 'operationId' => import_listener_users,
post => post =>

View File

@ -68,10 +68,10 @@ api_spec() ->
paths() -> paths() ->
[ [
"/gateway/:name/clients", "/gateways/:name/clients",
"/gateway/:name/clients/:clientid", "/gateways/:name/clients/:clientid",
"/gateway/:name/clients/:clientid/subscriptions", "/gateways/:name/clients/:clientid/subscriptions",
"/gateway/:name/clients/:clientid/subscriptions/:topic" "/gateways/:name/clients/:clientid/subscriptions/:topic"
]. ].
-define(CLIENT_QSCHEMA, [ -define(CLIENT_QSCHEMA, [
@ -462,7 +462,7 @@ conn_state_to_connected(_) -> false.
%% Swagger defines %% Swagger defines
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
schema("/gateway/:name/clients") -> schema("/gateways/:name/clients") ->
#{ #{
'operationId' => clients, 'operationId' => clients,
get => get =>
@ -473,7 +473,7 @@ schema("/gateway/:name/clients") ->
?STANDARD_RESP(#{200 => schema_client_list()}) ?STANDARD_RESP(#{200 => schema_client_list()})
} }
}; };
schema("/gateway/:name/clients/:clientid") -> schema("/gateways/:name/clients/:clientid") ->
#{ #{
'operationId' => clients_insta, 'operationId' => clients_insta,
get => get =>
@ -491,7 +491,7 @@ schema("/gateway/:name/clients/:clientid") ->
?STANDARD_RESP(#{204 => <<"Kicked">>}) ?STANDARD_RESP(#{204 => <<"Kicked">>})
} }
}; };
schema("/gateway/:name/clients/:clientid/subscriptions") -> schema("/gateways/:name/clients/:clientid/subscriptions") ->
#{ #{
'operationId' => subscriptions, 'operationId' => subscriptions,
get => get =>
@ -527,7 +527,7 @@ schema("/gateway/:name/clients/:clientid/subscriptions") ->
) )
} }
}; };
schema("/gateway/:name/clients/:clientid/subscriptions/:topic") -> schema("/gateways/:name/clients/:clientid/subscriptions/:topic") ->
#{ #{
'operationId' => subscriptions, 'operationId' => subscriptions,
delete => delete =>

View File

@ -69,11 +69,11 @@ api_spec() ->
paths() -> paths() ->
[ [
"/gateway/:name/listeners", "/gateways/:name/listeners",
"/gateway/:name/listeners/:id", "/gateways/:name/listeners/:id",
"/gateway/:name/listeners/:id/authentication", "/gateways/:name/listeners/:id/authentication",
"/gateway/:name/listeners/:id/authentication/users", "/gateways/:name/listeners/:id/authentication/users",
"/gateway/:name/listeners/:id/authentication/users/:uid" "/gateways/:name/listeners/:id/authentication/users/:uid"
]. ].
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
@ -353,7 +353,7 @@ bind2str(Listener = #{<<"bind">> := Bind}) ->
%% Swagger defines %% Swagger defines
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
schema("/gateway/:name/listeners") -> schema("/gateways/:name/listeners") ->
#{ #{
'operationId' => listeners, 'operationId' => listeners,
get => get =>
@ -391,7 +391,7 @@ schema("/gateway/:name/listeners") ->
) )
} }
}; };
schema("/gateway/:name/listeners/:id") -> schema("/gateways/:name/listeners/:id") ->
#{ #{
'operationId' => listeners_insta, 'operationId' => listeners_insta,
get => get =>
@ -437,7 +437,7 @@ schema("/gateway/:name/listeners/:id") ->
) )
} }
}; };
schema("/gateway/:name/listeners/:id/authentication") -> schema("/gateways/:name/listeners/:id/authentication") ->
#{ #{
'operationId' => listeners_insta_authn, 'operationId' => listeners_insta_authn,
get => get =>
@ -480,7 +480,7 @@ schema("/gateway/:name/listeners/:id/authentication") ->
?STANDARD_RESP(#{200 => <<"Deleted">>}) ?STANDARD_RESP(#{200 => <<"Deleted">>})
} }
}; };
schema("/gateway/:name/listeners/:id/authentication/users") -> schema("/gateways/:name/listeners/:id/authentication/users") ->
#{ #{
'operationId' => users, 'operationId' => users,
get => get =>
@ -519,7 +519,7 @@ schema("/gateway/:name/listeners/:id/authentication/users") ->
) )
} }
}; };
schema("/gateway/:name/listeners/:id/authentication/users/:uid") -> schema("/gateways/:name/listeners/:id/authentication/users/:uid") ->
#{ #{
'operationId' => users_insta, 'operationId' => users_insta,
get => get =>

View File

@ -25,7 +25,7 @@
-export([lookup/2, observe/2, read/2, write/2]). -export([lookup/2, observe/2, read/2, write/2]).
-define(PATH(Suffix), "/gateway/lwm2m/clients/:clientid" Suffix). -define(PATH(Suffix), "/gateways/lwm2m/clients/:clientid" Suffix).
-define(DATA_TYPE, ['Integer', 'Float', 'Time', 'String', 'Boolean', 'Opaque', 'Objlnk']). -define(DATA_TYPE, ['Integer', 'Float', 'Time', 'String', 'Boolean', 'Opaque', 'Objlnk']).
-import(hoconsc, [mk/2, ref/1, ref/2]). -import(hoconsc, [mk/2, ref/1, ref/2]).

View File

@ -71,7 +71,7 @@ end_per_suite(Config) ->
t_send_request_api(_) -> t_send_request_api(_) ->
ClientId = start_client(), ClientId = start_client(),
timer:sleep(200), timer:sleep(200),
Path = emqx_mgmt_api_test_util:api_path(["gateway/coap/clients/client1/request"]), Path = emqx_mgmt_api_test_util:api_path(["gateways/coap/clients/client1/request"]),
Token = <<"atoken">>, Token = <<"atoken">>,
Payload = <<"simple echo this">>, Payload = <<"simple echo this">>,
Req = #{ Req = #{

View File

@ -60,23 +60,23 @@ end_per_suite(Conf) ->
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
t_gateway(_) -> t_gateway(_) ->
{200, Gateways} = request(get, "/gateway"), {200, Gateways} = request(get, "/gateways"),
lists:foreach(fun assert_gw_unloaded/1, Gateways), lists:foreach(fun assert_gw_unloaded/1, Gateways),
{400, BadReq} = request(get, "/gateway/uname_gateway"), {400, BadReq} = request(get, "/gateways/uname_gateway"),
assert_bad_request(BadReq), assert_bad_request(BadReq),
{201, _} = request(post, "/gateway", #{name => <<"stomp">>}), {201, _} = request(post, "/gateways", #{name => <<"stomp">>}),
{200, StompGw1} = request(get, "/gateway/stomp"), {200, StompGw1} = request(get, "/gateways/stomp"),
assert_feilds_apperence( assert_feilds_apperence(
[name, status, enable, created_at, started_at], [name, status, enable, created_at, started_at],
StompGw1 StompGw1
), ),
{204, _} = request(delete, "/gateway/stomp"), {204, _} = request(delete, "/gateways/stomp"),
{200, StompGw2} = request(get, "/gateway/stomp"), {200, StompGw2} = request(get, "/gateways/stomp"),
assert_gw_unloaded(StompGw2), assert_gw_unloaded(StompGw2),
ok. ok.
t_gateway_stomp(_) -> t_gateway_stomp(_) ->
{200, Gw} = request(get, "/gateway/stomp"), {200, Gw} = request(get, "/gateways/stomp"),
assert_gw_unloaded(Gw), assert_gw_unloaded(Gw),
%% post %% post
GwConf = #{ GwConf = #{
@ -90,18 +90,18 @@ t_gateway_stomp(_) ->
#{name => <<"def">>, type => <<"tcp">>, bind => <<"61613">>} #{name => <<"def">>, type => <<"tcp">>, bind => <<"61613">>}
] ]
}, },
{201, _} = request(post, "/gateway", GwConf), {201, _} = request(post, "/gateways", GwConf),
{200, ConfResp} = request(get, "/gateway/stomp"), {200, ConfResp} = request(get, "/gateways/stomp"),
assert_confs(GwConf, ConfResp), assert_confs(GwConf, ConfResp),
%% put %% put
GwConf2 = emqx_map_lib:deep_merge(GwConf, #{frame => #{max_headers => 10}}), GwConf2 = emqx_map_lib:deep_merge(GwConf, #{frame => #{max_headers => 10}}),
{200, _} = request(put, "/gateway/stomp", maps:without([name, listeners], GwConf2)), {200, _} = request(put, "/gateways/stomp", maps:without([name, listeners], GwConf2)),
{200, ConfResp2} = request(get, "/gateway/stomp"), {200, ConfResp2} = request(get, "/gateways/stomp"),
assert_confs(GwConf2, ConfResp2), assert_confs(GwConf2, ConfResp2),
{204, _} = request(delete, "/gateway/stomp"). {204, _} = request(delete, "/gateways/stomp").
t_gateway_mqttsn(_) -> t_gateway_mqttsn(_) ->
{200, Gw} = request(get, "/gateway/mqttsn"), {200, Gw} = request(get, "/gateways/mqttsn"),
assert_gw_unloaded(Gw), assert_gw_unloaded(Gw),
%% post %% post
GwConf = #{ GwConf = #{
@ -114,18 +114,18 @@ t_gateway_mqttsn(_) ->
#{name => <<"def">>, type => <<"udp">>, bind => <<"1884">>} #{name => <<"def">>, type => <<"udp">>, bind => <<"1884">>}
] ]
}, },
{201, _} = request(post, "/gateway", GwConf), {201, _} = request(post, "/gateways", GwConf),
{200, ConfResp} = request(get, "/gateway/mqttsn"), {200, ConfResp} = request(get, "/gateways/mqttsn"),
assert_confs(GwConf, ConfResp), assert_confs(GwConf, ConfResp),
%% put %% put
GwConf2 = emqx_map_lib:deep_merge(GwConf, #{predefined => []}), GwConf2 = emqx_map_lib:deep_merge(GwConf, #{predefined => []}),
{200, _} = request(put, "/gateway/mqttsn", maps:without([name, listeners], GwConf2)), {200, _} = request(put, "/gateways/mqttsn", maps:without([name, listeners], GwConf2)),
{200, ConfResp2} = request(get, "/gateway/mqttsn"), {200, ConfResp2} = request(get, "/gateways/mqttsn"),
assert_confs(GwConf2, ConfResp2), assert_confs(GwConf2, ConfResp2),
{204, _} = request(delete, "/gateway/mqttsn"). {204, _} = request(delete, "/gateways/mqttsn").
t_gateway_coap(_) -> t_gateway_coap(_) ->
{200, Gw} = request(get, "/gateway/coap"), {200, Gw} = request(get, "/gateways/coap"),
assert_gw_unloaded(Gw), assert_gw_unloaded(Gw),
%% post %% post
GwConf = #{ GwConf = #{
@ -136,18 +136,18 @@ t_gateway_coap(_) ->
#{name => <<"def">>, type => <<"udp">>, bind => <<"5683">>} #{name => <<"def">>, type => <<"udp">>, bind => <<"5683">>}
] ]
}, },
{201, _} = request(post, "/gateway", GwConf), {201, _} = request(post, "/gateways", GwConf),
{200, ConfResp} = request(get, "/gateway/coap"), {200, ConfResp} = request(get, "/gateways/coap"),
assert_confs(GwConf, ConfResp), assert_confs(GwConf, ConfResp),
%% put %% put
GwConf2 = emqx_map_lib:deep_merge(GwConf, #{heartbeat => <<"10s">>}), GwConf2 = emqx_map_lib:deep_merge(GwConf, #{heartbeat => <<"10s">>}),
{200, _} = request(put, "/gateway/coap", maps:without([name, listeners], GwConf2)), {200, _} = request(put, "/gateways/coap", maps:without([name, listeners], GwConf2)),
{200, ConfResp2} = request(get, "/gateway/coap"), {200, ConfResp2} = request(get, "/gateways/coap"),
assert_confs(GwConf2, ConfResp2), assert_confs(GwConf2, ConfResp2),
{204, _} = request(delete, "/gateway/coap"). {204, _} = request(delete, "/gateways/coap").
t_gateway_lwm2m(_) -> t_gateway_lwm2m(_) ->
{200, Gw} = request(get, "/gateway/lwm2m"), {200, Gw} = request(get, "/gateways/lwm2m"),
assert_gw_unloaded(Gw), assert_gw_unloaded(Gw),
%% post %% post
GwConf = #{ GwConf = #{
@ -168,18 +168,18 @@ t_gateway_lwm2m(_) ->
#{name => <<"def">>, type => <<"udp">>, bind => <<"5783">>} #{name => <<"def">>, type => <<"udp">>, bind => <<"5783">>}
] ]
}, },
{201, _} = request(post, "/gateway", GwConf), {201, _} = request(post, "/gateways", GwConf),
{200, ConfResp} = request(get, "/gateway/lwm2m"), {200, ConfResp} = request(get, "/gateways/lwm2m"),
assert_confs(GwConf, ConfResp), assert_confs(GwConf, ConfResp),
%% put %% put
GwConf2 = emqx_map_lib:deep_merge(GwConf, #{qmode_time_window => <<"10s">>}), GwConf2 = emqx_map_lib:deep_merge(GwConf, #{qmode_time_window => <<"10s">>}),
{200, _} = request(put, "/gateway/lwm2m", maps:without([name, listeners], GwConf2)), {200, _} = request(put, "/gateways/lwm2m", maps:without([name, listeners], GwConf2)),
{200, ConfResp2} = request(get, "/gateway/lwm2m"), {200, ConfResp2} = request(get, "/gateways/lwm2m"),
assert_confs(GwConf2, ConfResp2), assert_confs(GwConf2, ConfResp2),
{204, _} = request(delete, "/gateway/lwm2m"). {204, _} = request(delete, "/gateways/lwm2m").
t_gateway_exproto(_) -> t_gateway_exproto(_) ->
{200, Gw} = request(get, "/gateway/exproto"), {200, Gw} = request(get, "/gateways/exproto"),
assert_gw_unloaded(Gw), assert_gw_unloaded(Gw),
%% post %% post
GwConf = #{ GwConf = #{
@ -190,18 +190,18 @@ t_gateway_exproto(_) ->
#{name => <<"def">>, type => <<"tcp">>, bind => <<"7993">>} #{name => <<"def">>, type => <<"tcp">>, bind => <<"7993">>}
] ]
}, },
{201, _} = request(post, "/gateway", GwConf), {201, _} = request(post, "/gateways", GwConf),
{200, ConfResp} = request(get, "/gateway/exproto"), {200, ConfResp} = request(get, "/gateways/exproto"),
assert_confs(GwConf, ConfResp), assert_confs(GwConf, ConfResp),
%% put %% put
GwConf2 = emqx_map_lib:deep_merge(GwConf, #{server => #{bind => <<"9200">>}}), GwConf2 = emqx_map_lib:deep_merge(GwConf, #{server => #{bind => <<"9200">>}}),
{200, _} = request(put, "/gateway/exproto", maps:without([name, listeners], GwConf2)), {200, _} = request(put, "/gateways/exproto", maps:without([name, listeners], GwConf2)),
{200, ConfResp2} = request(get, "/gateway/exproto"), {200, ConfResp2} = request(get, "/gateways/exproto"),
assert_confs(GwConf2, ConfResp2), assert_confs(GwConf2, ConfResp2),
{204, _} = request(delete, "/gateway/exproto"). {204, _} = request(delete, "/gateways/exproto").
t_gateway_exproto_with_ssl(_) -> t_gateway_exproto_with_ssl(_) ->
{200, Gw} = request(get, "/gateway/exproto"), {200, Gw} = request(get, "/gateways/exproto"),
assert_gw_unloaded(Gw), assert_gw_unloaded(Gw),
SslSvrOpts = ssl_server_opts(), SslSvrOpts = ssl_server_opts(),
@ -221,8 +221,8 @@ t_gateway_exproto_with_ssl(_) ->
#{name => <<"def">>, type => <<"tcp">>, bind => <<"7993">>} #{name => <<"def">>, type => <<"tcp">>, bind => <<"7993">>}
] ]
}, },
{201, _} = request(post, "/gateway", GwConf), {201, _} = request(post, "/gateways", GwConf),
{200, ConfResp} = request(get, "/gateway/exproto"), {200, ConfResp} = request(get, "/gateways/exproto"),
assert_confs(GwConf, ConfResp), assert_confs(GwConf, ConfResp),
%% put %% put
GwConf2 = emqx_map_lib:deep_merge(GwConf, #{ GwConf2 = emqx_map_lib:deep_merge(GwConf, #{
@ -231,50 +231,50 @@ t_gateway_exproto_with_ssl(_) ->
ssl_options => SslCliOpts ssl_options => SslCliOpts
} }
}), }),
{200, _} = request(put, "/gateway/exproto", maps:without([name, listeners], GwConf2)), {200, _} = request(put, "/gateways/exproto", maps:without([name, listeners], GwConf2)),
{200, ConfResp2} = request(get, "/gateway/exproto"), {200, ConfResp2} = request(get, "/gateways/exproto"),
assert_confs(GwConf2, ConfResp2), assert_confs(GwConf2, ConfResp2),
{204, _} = request(delete, "/gateway/exproto"). {204, _} = request(delete, "/gateways/exproto").
t_authn(_) -> t_authn(_) ->
GwConf = #{name => <<"stomp">>}, GwConf = #{name => <<"stomp">>},
{201, _} = request(post, "/gateway", GwConf), {201, _} = request(post, "/gateways", GwConf),
ct:sleep(500), ct:sleep(500),
{204, _} = request(get, "/gateway/stomp/authentication"), {204, _} = request(get, "/gateways/stomp/authentication"),
AuthConf = #{ AuthConf = #{
mechanism => <<"password_based">>, mechanism => <<"password_based">>,
backend => <<"built_in_database">>, backend => <<"built_in_database">>,
user_id_type => <<"clientid">> user_id_type => <<"clientid">>
}, },
{201, _} = request(post, "/gateway/stomp/authentication", AuthConf), {201, _} = request(post, "/gateways/stomp/authentication", AuthConf),
{200, ConfResp} = request(get, "/gateway/stomp/authentication"), {200, ConfResp} = request(get, "/gateways/stomp/authentication"),
assert_confs(AuthConf, ConfResp), assert_confs(AuthConf, ConfResp),
AuthConf2 = maps:merge(AuthConf, #{user_id_type => <<"username">>}), AuthConf2 = maps:merge(AuthConf, #{user_id_type => <<"username">>}),
{200, _} = request(put, "/gateway/stomp/authentication", AuthConf2), {200, _} = request(put, "/gateways/stomp/authentication", AuthConf2),
{200, ConfResp2} = request(get, "/gateway/stomp/authentication"), {200, ConfResp2} = request(get, "/gateways/stomp/authentication"),
assert_confs(AuthConf2, ConfResp2), assert_confs(AuthConf2, ConfResp2),
{204, _} = request(delete, "/gateway/stomp/authentication"), {204, _} = request(delete, "/gateways/stomp/authentication"),
{204, _} = request(get, "/gateway/stomp/authentication"), {204, _} = request(get, "/gateways/stomp/authentication"),
{204, _} = request(delete, "/gateway/stomp"). {204, _} = request(delete, "/gateways/stomp").
t_authn_data_mgmt(_) -> t_authn_data_mgmt(_) ->
GwConf = #{name => <<"stomp">>}, GwConf = #{name => <<"stomp">>},
{201, _} = request(post, "/gateway", GwConf), {201, _} = request(post, "/gateways", GwConf),
ct:sleep(500), ct:sleep(500),
{204, _} = request(get, "/gateway/stomp/authentication"), {204, _} = request(get, "/gateways/stomp/authentication"),
AuthConf = #{ AuthConf = #{
mechanism => <<"password_based">>, mechanism => <<"password_based">>,
backend => <<"built_in_database">>, backend => <<"built_in_database">>,
user_id_type => <<"clientid">> user_id_type => <<"clientid">>
}, },
{201, _} = request(post, "/gateway/stomp/authentication", AuthConf), {201, _} = request(post, "/gateways/stomp/authentication", AuthConf),
ct:sleep(500), ct:sleep(500),
{200, ConfResp} = request(get, "/gateway/stomp/authentication"), {200, ConfResp} = request(get, "/gateways/stomp/authentication"),
assert_confs(AuthConf, ConfResp), assert_confs(AuthConf, ConfResp),
User1 = #{ User1 = #{
@ -282,19 +282,19 @@ t_authn_data_mgmt(_) ->
password => <<"123456">>, password => <<"123456">>,
is_superuser => false is_superuser => false
}, },
{201, _} = request(post, "/gateway/stomp/authentication/users", User1), {201, _} = request(post, "/gateways/stomp/authentication/users", User1),
{200, #{data := [UserRespd1]}} = request(get, "/gateway/stomp/authentication/users"), {200, #{data := [UserRespd1]}} = request(get, "/gateways/stomp/authentication/users"),
assert_confs(UserRespd1, User1), assert_confs(UserRespd1, User1),
{200, UserRespd2} = request( {200, UserRespd2} = request(
get, get,
"/gateway/stomp/authentication/users/test" "/gateways/stomp/authentication/users/test"
), ),
assert_confs(UserRespd2, User1), assert_confs(UserRespd2, User1),
{200, UserRespd3} = request( {200, UserRespd3} = request(
put, put,
"/gateway/stomp/authentication/users/test", "/gateways/stomp/authentication/users/test",
#{ #{
password => <<"654321">>, password => <<"654321">>,
is_superuser => true is_superuser => true
@ -304,19 +304,19 @@ t_authn_data_mgmt(_) ->
{200, UserRespd4} = request( {200, UserRespd4} = request(
get, get,
"/gateway/stomp/authentication/users/test" "/gateways/stomp/authentication/users/test"
), ),
assert_confs(UserRespd4, User1#{is_superuser => true}), assert_confs(UserRespd4, User1#{is_superuser => true}),
{204, _} = request(delete, "/gateway/stomp/authentication/users/test"), {204, _} = request(delete, "/gateways/stomp/authentication/users/test"),
{200, #{data := []}} = request( {200, #{data := []}} = request(
get, get,
"/gateway/stomp/authentication/users" "/gateways/stomp/authentication/users"
), ),
ImportUri = emqx_dashboard_api_test_helpers:uri( ImportUri = emqx_dashboard_api_test_helpers:uri(
["gateway", "stomp", "authentication", "import_users"] ["gateways", "stomp", "authentication", "import_users"]
), ),
Dir = code:lib_dir(emqx_authn, test), Dir = code:lib_dir(emqx_authn, test),
@ -332,38 +332,38 @@ t_authn_data_mgmt(_) ->
{filename, "user-credentials.csv", CSVData} {filename, "user-credentials.csv", CSVData}
]), ]),
{204, _} = request(delete, "/gateway/stomp/authentication"), {204, _} = request(delete, "/gateways/stomp/authentication"),
{204, _} = request(get, "/gateway/stomp/authentication"), {204, _} = request(get, "/gateways/stomp/authentication"),
{204, _} = request(delete, "/gateway/stomp"). {204, _} = request(delete, "/gateways/stomp").
t_listeners_tcp(_) -> t_listeners_tcp(_) ->
GwConf = #{name => <<"stomp">>}, GwConf = #{name => <<"stomp">>},
{201, _} = request(post, "/gateway", GwConf), {201, _} = request(post, "/gateways", GwConf),
{404, _} = request(get, "/gateway/stomp/listeners"), {404, _} = request(get, "/gateways/stomp/listeners"),
LisConf = #{ LisConf = #{
name => <<"def">>, name => <<"def">>,
type => <<"tcp">>, type => <<"tcp">>,
bind => <<"127.0.0.1:61613">> bind => <<"127.0.0.1:61613">>
}, },
{201, _} = request(post, "/gateway/stomp/listeners", LisConf), {201, _} = request(post, "/gateways/stomp/listeners", LisConf),
{200, ConfResp} = request(get, "/gateway/stomp/listeners"), {200, ConfResp} = request(get, "/gateways/stomp/listeners"),
assert_confs([LisConf], ConfResp), assert_confs([LisConf], ConfResp),
{200, ConfResp1} = request(get, "/gateway/stomp/listeners/stomp:tcp:def"), {200, ConfResp1} = request(get, "/gateways/stomp/listeners/stomp:tcp:def"),
assert_confs(LisConf, ConfResp1), assert_confs(LisConf, ConfResp1),
LisConf2 = maps:merge(LisConf, #{bind => <<"127.0.0.1:61614">>}), LisConf2 = maps:merge(LisConf, #{bind => <<"127.0.0.1:61614">>}),
{200, _} = request( {200, _} = request(
put, put,
"/gateway/stomp/listeners/stomp:tcp:def", "/gateways/stomp/listeners/stomp:tcp:def",
LisConf2 LisConf2
), ),
{200, ConfResp2} = request(get, "/gateway/stomp/listeners/stomp:tcp:def"), {200, ConfResp2} = request(get, "/gateways/stomp/listeners/stomp:tcp:def"),
assert_confs(LisConf2, ConfResp2), assert_confs(LisConf2, ConfResp2),
{204, _} = request(delete, "/gateway/stomp/listeners/stomp:tcp:def"), {204, _} = request(delete, "/gateways/stomp/listeners/stomp:tcp:def"),
{404, _} = request(get, "/gateway/stomp/listeners/stomp:tcp:def"), {404, _} = request(get, "/gateways/stomp/listeners/stomp:tcp:def"),
{204, _} = request(delete, "/gateway/stomp"). {204, _} = request(delete, "/gateways/stomp").
t_listeners_authn(_) -> t_listeners_authn(_) ->
GwConf = #{ GwConf = #{
@ -376,9 +376,9 @@ t_listeners_authn(_) ->
} }
] ]
}, },
{201, _} = request(post, "/gateway", GwConf), {201, _} = request(post, "/gateways", GwConf),
ct:sleep(500), ct:sleep(500),
{200, ConfResp} = request(get, "/gateway/stomp"), {200, ConfResp} = request(get, "/gateways/stomp"),
assert_confs(GwConf, ConfResp), assert_confs(GwConf, ConfResp),
AuthConf = #{ AuthConf = #{
@ -386,7 +386,7 @@ t_listeners_authn(_) ->
backend => <<"built_in_database">>, backend => <<"built_in_database">>,
user_id_type => <<"clientid">> user_id_type => <<"clientid">>
}, },
Path = "/gateway/stomp/listeners/stomp:tcp:def/authentication", Path = "/gateways/stomp/listeners/stomp:tcp:def/authentication",
{201, _} = request(post, Path, AuthConf), {201, _} = request(post, Path, AuthConf),
{200, ConfResp2} = request(get, Path), {200, ConfResp2} = request(get, Path),
assert_confs(AuthConf, ConfResp2), assert_confs(AuthConf, ConfResp2),
@ -400,7 +400,7 @@ t_listeners_authn(_) ->
{204, _} = request(delete, Path), {204, _} = request(delete, Path),
%% FIXME: 204? %% FIXME: 204?
{204, _} = request(get, Path), {204, _} = request(get, Path),
{204, _} = request(delete, "/gateway/stomp"). {204, _} = request(delete, "/gateways/stomp").
t_listeners_authn_data_mgmt(_) -> t_listeners_authn_data_mgmt(_) ->
GwConf = #{ GwConf = #{
@ -413,8 +413,8 @@ t_listeners_authn_data_mgmt(_) ->
} }
] ]
}, },
{201, _} = request(post, "/gateway", GwConf), {201, _} = request(post, "/gateways", GwConf),
{200, ConfResp} = request(get, "/gateway/stomp"), {200, ConfResp} = request(get, "/gateways/stomp"),
assert_confs(GwConf, ConfResp), assert_confs(GwConf, ConfResp),
AuthConf = #{ AuthConf = #{
@ -422,7 +422,7 @@ t_listeners_authn_data_mgmt(_) ->
backend => <<"built_in_database">>, backend => <<"built_in_database">>,
user_id_type => <<"clientid">> user_id_type => <<"clientid">>
}, },
Path = "/gateway/stomp/listeners/stomp:tcp:def/authentication", Path = "/gateways/stomp/listeners/stomp:tcp:def/authentication",
{201, _} = request(post, Path, AuthConf), {201, _} = request(post, Path, AuthConf),
{200, ConfResp2} = request(get, Path), {200, ConfResp2} = request(get, Path),
assert_confs(AuthConf, ConfResp2), assert_confs(AuthConf, ConfResp2),
@ -434,7 +434,7 @@ t_listeners_authn_data_mgmt(_) ->
}, },
{201, _} = request( {201, _} = request(
post, post,
"/gateway/stomp/listeners/stomp:tcp:def/authentication/users", "/gateways/stomp/listeners/stomp:tcp:def/authentication/users",
User1 User1
), ),
@ -474,7 +474,7 @@ t_listeners_authn_data_mgmt(_) ->
), ),
ImportUri = emqx_dashboard_api_test_helpers:uri( ImportUri = emqx_dashboard_api_test_helpers:uri(
["gateway", "stomp", "listeners", "stomp:tcp:def", "authentication", "import_users"] ["gateways", "stomp", "listeners", "stomp:tcp:def", "authentication", "import_users"]
), ),
Dir = code:lib_dir(emqx_authn, test), Dir = code:lib_dir(emqx_authn, test),
@ -490,31 +490,31 @@ t_listeners_authn_data_mgmt(_) ->
{filename, "user-credentials.csv", CSVData} {filename, "user-credentials.csv", CSVData}
]), ]),
{204, _} = request(delete, "/gateway/stomp"). {204, _} = request(delete, "/gateways/stomp").
t_authn_fuzzy_search(_) -> t_authn_fuzzy_search(_) ->
GwConf = #{name => <<"stomp">>}, GwConf = #{name => <<"stomp">>},
{201, _} = request(post, "/gateway", GwConf), {201, _} = request(post, "/gateways", GwConf),
{204, _} = request(get, "/gateway/stomp/authentication"), {204, _} = request(get, "/gateways/stomp/authentication"),
AuthConf = #{ AuthConf = #{
mechanism => <<"password_based">>, mechanism => <<"password_based">>,
backend => <<"built_in_database">>, backend => <<"built_in_database">>,
user_id_type => <<"clientid">> user_id_type => <<"clientid">>
}, },
{201, _} = request(post, "/gateway/stomp/authentication", AuthConf), {201, _} = request(post, "/gateways/stomp/authentication", AuthConf),
{200, ConfResp} = request(get, "/gateway/stomp/authentication"), {200, ConfResp} = request(get, "/gateways/stomp/authentication"),
assert_confs(AuthConf, ConfResp), assert_confs(AuthConf, ConfResp),
Checker = fun({User, Fuzzy}) -> Checker = fun({User, Fuzzy}) ->
{200, #{data := [UserRespd]}} = request( {200, #{data := [UserRespd]}} = request(
get, "/gateway/stomp/authentication/users", Fuzzy get, "/gateways/stomp/authentication/users", Fuzzy
), ),
assert_confs(UserRespd, User) assert_confs(UserRespd, User)
end, end,
Create = fun(User) -> Create = fun(User) ->
{201, _} = request(post, "/gateway/stomp/authentication/users", User) {201, _} = request(post, "/gateways/stomp/authentication/users", User)
end, end,
UserDatas = [ UserDatas = [
@ -535,9 +535,9 @@ t_authn_fuzzy_search(_) ->
lists:foreach(Create, UserDatas), lists:foreach(Create, UserDatas),
lists:foreach(Checker, lists:zip(UserDatas, FuzzyDatas)), lists:foreach(Checker, lists:zip(UserDatas, FuzzyDatas)),
{204, _} = request(delete, "/gateway/stomp/authentication"), {204, _} = request(delete, "/gateways/stomp/authentication"),
{204, _} = request(get, "/gateway/stomp/authentication"), {204, _} = request(get, "/gateways/stomp/authentication"),
{204, _} = request(delete, "/gateway/stomp"). {204, _} = request(delete, "/gateways/stomp").
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
%% Asserts %% Asserts

View File

@ -338,7 +338,7 @@ t_observe(Config) ->
%%% Internal Functions %%% Internal Functions
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
call_lookup_api(ClientId, Path, Action) -> call_lookup_api(ClientId, Path, Action) ->
ApiPath = emqx_mgmt_api_test_util:api_path(["gateway/lwm2m/clients", ClientId, "lookup"]), ApiPath = emqx_mgmt_api_test_util:api_path(["gateways/lwm2m/clients", ClientId, "lookup"]),
Auth = emqx_mgmt_api_test_util:auth_header_(), Auth = emqx_mgmt_api_test_util:auth_header_(),
Query = io_lib:format("path=~ts&action=~ts", [Path, Action]), Query = io_lib:format("path=~ts&action=~ts", [Path, Action]),
{ok, Response} = emqx_mgmt_api_test_util:request_api(get, ApiPath, Query, Auth), {ok, Response} = emqx_mgmt_api_test_util:request_api(get, ApiPath, Query, Auth),
@ -346,7 +346,7 @@ call_lookup_api(ClientId, Path, Action) ->
Response. Response.
call_send_api(ClientId, Cmd, Query) -> call_send_api(ClientId, Cmd, Query) ->
ApiPath = emqx_mgmt_api_test_util:api_path(["gateway/lwm2m/clients", ClientId, Cmd]), ApiPath = emqx_mgmt_api_test_util:api_path(["gateways/lwm2m/clients", ClientId, Cmd]),
Auth = emqx_mgmt_api_test_util:auth_header_(), Auth = emqx_mgmt_api_test_util:auth_header_(),
{ok, Response} = emqx_mgmt_api_test_util:request_api(post, ApiPath, Query, Auth), {ok, Response} = emqx_mgmt_api_test_util:request_api(post, ApiPath, Query, Auth),
?LOGT("rest api response:~ts~n", [Response]), ?LOGT("rest api response:~ts~n", [Response]),