fix(emqx_management): return 404 if plugin does not exist

This commit is contained in:
Stefan Strigler 2023-07-07 13:17:52 +02:00
parent 3fd28f9e18
commit 80e4ffff75
2 changed files with 11 additions and 0 deletions

View File

@ -132,6 +132,7 @@ schema("/plugins/:name") ->
parameters => [hoconsc:ref(name)], parameters => [hoconsc:ref(name)],
responses => #{ responses => #{
204 => <<"Uninstall successfully">>, 204 => <<"Uninstall successfully">>,
400 => emqx_dashboard_swagger:error_codes(['PARAM_ERROR'], <<"Bad parameter">>),
404 => emqx_dashboard_swagger:error_codes(['NOT_FOUND'], <<"Plugin Not Found">>) 404 => emqx_dashboard_swagger:error_codes(['NOT_FOUND'], <<"Plugin Not Found">>)
} }
} }
@ -484,6 +485,8 @@ ensure_action(Name, restart) ->
return(Code, ok) -> return(Code, ok) ->
{Code}; {Code};
return(_, {error, #{error := "bad_info_file", return := {enoent, _} = Reason}}) ->
{404, #{code => 'NOT_FOUND', message => iolist_to_binary(io_lib:format("~p", [Reason]))}};
return(_, {error, Reason}) -> return(_, {error, Reason}) ->
{400, #{code => 'PARAM_ERROR', message => iolist_to_binary(io_lib:format("~p", [Reason]))}}. {400, #{code => 'PARAM_ERROR', message => iolist_to_binary(io_lib:format("~p", [Reason]))}}.

View File

@ -133,6 +133,14 @@ t_bad_plugin(Config) ->
) )
). ).
t_delete_non_existing(_Config) ->
Path = emqx_mgmt_api_test_util:api_path(["plugins", "non_exists"]),
?assertMatch(
{error, {_, 404, _}},
emqx_mgmt_api_test_util:request_api(delete, Path)
),
ok.
list_plugins() -> list_plugins() ->
Path = emqx_mgmt_api_test_util:api_path(["plugins"]), Path = emqx_mgmt_api_test_util:api_path(["plugins"]),
case emqx_mgmt_api_test_util:request_api(get, Path) of case emqx_mgmt_api_test_util:request_api(get, Path) of