fix(bridges_v2): check bridge name length before attempting atom conversion
Fixes https://emqx.atlassian.net/browse/EMQX-11289
This commit is contained in:
parent
8eb822d898
commit
b420b53075
|
@ -703,7 +703,7 @@ atom(Bin) when is_binary(Bin), size(Bin) > 255 ->
|
|||
erlang:throw(
|
||||
iolist_to_binary(
|
||||
io_lib:format(
|
||||
"Name is is too long."
|
||||
"Name is too long."
|
||||
" Please provide a shorter name (<= 255 bytes)."
|
||||
" The name that is too long: \"~s\"",
|
||||
[Bin]
|
||||
|
|
|
@ -1092,15 +1092,13 @@ split_bridge_v1_config_and_create_helper(BridgeV1Type, BridgeName, RawConf) ->
|
|||
bridge_v2_conf := NewBridgeV2RawConf
|
||||
} =
|
||||
split_and_validate_bridge_v1_config(BridgeV1Type, BridgeName, RawConf),
|
||||
%% TODO should we really create an atom here?
|
||||
ConnectorNameAtom = binary_to_atom(NewConnectorName),
|
||||
case emqx_connector:create(ConnectorType, ConnectorNameAtom, NewConnectorRawConf) of
|
||||
case emqx_connector:create(ConnectorType, NewConnectorName, NewConnectorRawConf) of
|
||||
{ok, _} ->
|
||||
case create(BridgeType, BridgeName, NewBridgeV2RawConf) of
|
||||
{ok, _} = Result ->
|
||||
Result;
|
||||
{error, Reason1} ->
|
||||
case emqx_connector:remove(ConnectorType, ConnectorNameAtom) of
|
||||
case emqx_connector:remove(ConnectorType, NewConnectorName) of
|
||||
ok ->
|
||||
{error, Reason1};
|
||||
{error, Reason2} ->
|
||||
|
|
|
@ -444,6 +444,15 @@ bridge_node_operation_http_api_v2(Name, Node0, Op0) ->
|
|||
%% Test cases
|
||||
%%------------------------------------------------------------------------------
|
||||
|
||||
t_name_too_long(_Config) ->
|
||||
LongName = list_to_binary(lists:duplicate(256, $a)),
|
||||
?assertMatch(
|
||||
{error,
|
||||
{{_, 400, _}, _, #{<<"message">> := #{<<"reason">> := <<"Name is too long", _/binary>>}}}},
|
||||
create_bridge_http_api_v1(#{name => LongName})
|
||||
),
|
||||
ok.
|
||||
|
||||
t_scenario_1(_Config) ->
|
||||
%% ===================================================================================
|
||||
%% Pre-conditions
|
||||
|
|
Loading…
Reference in New Issue