From bbff1d6ae9156ad5c133321c209f8c928b6f33f0 Mon Sep 17 00:00:00 2001 From: Thales Macedo Garitezi Date: Wed, 12 Jul 2023 10:02:05 -0300 Subject: [PATCH] fix(bridge_api): return 400 for all ecpool start errors Fixes https://emqx.atlassian.net/browse/EMQX-10460 (https://emqx.atlassian.net/browse/EMQX-10460?focusedCommentId=30126) --- apps/emqx_bridge/src/emqx_bridge_api.erl | 9 ++------- apps/emqx_bridge/test/emqx_bridge_api_SUITE.erl | 3 ++- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/apps/emqx_bridge/src/emqx_bridge_api.erl b/apps/emqx_bridge/src/emqx_bridge_api.erl index a71315a27..8bfc9feb1 100644 --- a/apps/emqx_bridge/src/emqx_bridge_api.erl +++ b/apps/emqx_bridge/src/emqx_bridge_api.erl @@ -983,15 +983,10 @@ call_operation(NodeOrAll, OperFunc, Args = [_Nodes, BridgeType, BridgeName]) -> %% still on an older bpapi version that doesn't support it. maybe_try_restart(NodeOrAll, OperFunc, Args); {error, timeout} -> - ?SERVICE_UNAVAILABLE(<<"Request timeout">>); + ?BAD_REQUEST(<<"Request timeout">>); {error, {start_pool_failed, Name, Reason}} -> Msg = bin(io_lib:format("Failed to start ~p pool for reason ~p", [Name, Reason])), - case Reason of - nxdomain -> - ?BAD_REQUEST(Msg); - _ -> - ?SERVICE_UNAVAILABLE(Msg) - end; + ?BAD_REQUEST(Msg); {error, not_found} -> BridgeId = emqx_bridge_resource:bridge_id(BridgeType, BridgeName), ?SLOG(warning, #{ diff --git a/apps/emqx_bridge/test/emqx_bridge_api_SUITE.erl b/apps/emqx_bridge/test/emqx_bridge_api_SUITE.erl index bc27afda2..d8e697987 100644 --- a/apps/emqx_bridge/test/emqx_bridge_api_SUITE.erl +++ b/apps/emqx_bridge/test/emqx_bridge_api_SUITE.erl @@ -834,7 +834,8 @@ do_start_stop_bridges(Type, Config) -> ), BadBridgeID = emqx_bridge_resource:bridge_id(?BRIDGE_TYPE_MQTT, BadName), ?assertMatch( - {ok, SC, _} when SC == 500 orelse SC == 503, + %% request from product: return 400 on such errors + {ok, SC, _} when SC == 500 orelse SC == 400, request(post, {operation, Type, start, BadBridgeID}, Config) ), ok = gen_tcp:close(Sock),