fix: return 404 in case node is not found

This commit is contained in:
Stefan Strigler 2023-02-20 17:07:36 +01:00
parent 9ecf154a71
commit e78c2c2869
2 changed files with 14 additions and 14 deletions

View File

@ -51,7 +51,6 @@
-define(TO_BIN(_B_), iolist_to_binary(_B_)).
-define(NOT_FOUND(N), {404, #{code => 'NOT_FOUND', message => ?TO_BIN([N, " NOT FOUND"])}}).
-define(BAD_REQUEST(C, M), {400, #{code => C, message => ?TO_BIN(M)}}).
-define(SERVICE_UNAVAILABLE(C, M), {503, #{code => C, message => ?TO_BIN(M)}}).
-define(TAGS, [<<"Trace">>]).
@ -151,8 +150,9 @@ schema("/trace/:name/download") ->
#{schema => #{type => "string", format => "binary"}}
}
},
400 => emqx_dashboard_swagger:error_codes(['NODE_ERROR'], <<"Node Not Found">>),
404 => emqx_dashboard_swagger:error_codes(['NOT_FOUND'], <<"Trace Name Not Found">>)
404 => emqx_dashboard_swagger:error_codes(
['NOT_FOUND', 'NODE_ERROR'], <<"Trace Name or Node Not Found">>
)
}
}
};
@ -188,10 +188,10 @@ schema("/trace/:name/log") ->
{meta, fields(bytes) ++ fields(position)}
],
400 => emqx_dashboard_swagger:error_codes(
['BAD_REQUEST', 'NODE_ERROR'], <<"Bad input parameter">>
['BAD_REQUEST'], <<"Bad input parameter">>
),
404 => emqx_dashboard_swagger:error_codes(
['NOT_FOUND'], <<"Trace Name Not Found">>
['NOT_FOUND', 'NODE_ERROR'], <<"Trace Name or Node Not Found">>
),
503 => emqx_dashboard_swagger:error_codes(
['SERVICE_UNAVAILABLE'], <<"Requested chunk size too big">>
@ -509,7 +509,7 @@ download_trace_log(get, #{bindings := #{name := Name}, query_string := Query}) -
},
{200, Headers, {file_binary, ZipName, Binary}};
{error, not_found} ->
?BAD_REQUEST('NODE_ERROR', <<"Node not found">>)
?NOT_FOUND(<<"Node">>)
end;
{error, not_found} ->
?NOT_FOUND(Name)
@ -602,10 +602,10 @@ stream_log_file(get, #{bindings := #{name := Name}, query_string := Query}) ->
}),
?SERVICE_UNAVAILABLE('SERVICE_UNAVAILABLE', <<"Requested chunk size too big">>);
{badrpc, nodedown} ->
?BAD_REQUEST('NODE_ERROR', <<"Node not found">>)
?NOT_FOUND(<<"Node">>)
end;
{error, not_found} ->
?BAD_REQUEST('NODE_ERROR', <<"Node not found">>)
?NOT_FOUND(<<"Node">>)
end.
-spec get_trace_size() -> #{{node(), file:name_all()} => non_neg_integer()}.

View File

@ -223,12 +223,12 @@ t_log_file(_Config) ->
]},
zip:table(Binary2)
),
{error, {_, 400, _}} =
{error, {_, 404, _}} =
request_api(
get,
api_path("trace/test_client_id/download?node=unknonwn_node")
api_path("trace/test_client_id/download?node=unknown_node")
),
{error, {_, 400, _}} =
{error, {_, 404, _}} =
request_api(
get,
% known atom but unknown node
@ -303,12 +303,12 @@ t_stream_log(_Config) ->
meck:expect(file, read, 2, {error, enomem}),
{error, {_, 503, _}} = request_api(get, Path),
meck:unload(file),
{error, {_, 400, _}} =
{error, {_, 404, _}} =
request_api(
get,
api_path("trace/test_stream_log/log?node=unknonwn_node")
api_path("trace/test_stream_log/log?node=unknown_node")
),
{error, {_, 400, _}} =
{error, {_, 404, _}} =
request_api(
get,
% known atom but not a node