fix(bridge_v2): downgrade bridge type for GET api results

This commit is contained in:
Zaiming (Stone) Shi 2023-10-30 12:09:53 +01:00
parent 19554850a9
commit 350e8433ab
2 changed files with 24 additions and 19 deletions

View File

@ -902,7 +902,7 @@ format_resource(
redact(
maps:merge(
RawConfFull#{
type => Type,
type => downgrade_type(Type),
name => maps:get(<<"name">>, RawConf, BridgeName),
node => Node
},
@ -1156,3 +1156,6 @@ non_compat_bridge_msg() ->
upgrade_type(Type) ->
emqx_bridge_lib:upgrade_type(Type).
downgrade_type(Type) ->
emqx_bridge_lib:downgrade_type(Type).

View File

@ -255,6 +255,18 @@ pre_create_atoms() ->
kafka__probe_
].
http_get_bridges(UrlPath, Name0) ->
Name = iolist_to_binary(Name0),
{ok, _Code, BridgesData} = http_get(UrlPath),
Bridges = json(BridgesData),
lists:filter(
fun
(#{<<"name">> := N}) when N =:= Name -> true;
(_) -> false
end,
Bridges
).
kafka_bridge_rest_api_helper(Config) ->
BridgeType = ?BRIDGE_TYPE,
BridgeName = "my_kafka_bridge",
@ -274,27 +286,16 @@ kafka_bridge_rest_api_helper(Config) ->
BridgesPartsOpRestart = OpUrlFun("restart"),
BridgesPartsOpStop = OpUrlFun("stop"),
%% List bridges
MyKafkaBridgeExists = fun() ->
{ok, _Code, BridgesData} = http_get(BridgesParts),
Bridges = json(BridgesData),
lists:any(
fun
(#{<<"name">> := <<"my_kafka_bridge">>}) -> true;
(_) -> false
end,
Bridges
)
end,
%% Delete if my_kafka_bridge exists
case MyKafkaBridgeExists() of
true ->
case http_get_bridges(BridgesParts, BridgeName) of
[_] ->
%% Delete the bridge my_kafka_bridge
{ok, 204, <<>>} = http_delete(BridgesPartsIdDeleteAlsoActions);
false ->
[] ->
ok
end,
try
false = MyKafkaBridgeExists(),
?assertEqual([], http_get_bridges(BridgesParts, BridgeName)),
%% Create new Kafka bridge
KafkaTopic = test_topic_one_partition(),
CreateBodyTmp = #{
@ -316,7 +317,7 @@ kafka_bridge_rest_api_helper(Config) ->
CreateBody = CreateBodyTmp#{<<"ssl">> => maps:get(<<"ssl">>, Config)},
{ok, 201, _Data} = http_post(BridgesParts, CreateBody),
%% Check that the new bridge is in the list of bridges
true = MyKafkaBridgeExists(),
?assertMatch([#{<<"type">> := <<"kafka">>}], http_get_bridges(BridgesParts, BridgeName)),
%% Probe should work
%% no extra atoms should be created when probing
%% See pre_create_atoms() above
@ -416,8 +417,9 @@ kafka_bridge_rest_api_helper(Config) ->
% this delete should not be necessary beause of the also_delete_dep_actions flag
% {ok, 204, _} = http_delete(["rules", RuleId]),
{ok, 204, _} = http_delete(BridgesPartsIdDeleteAlsoActions),
false = MyKafkaBridgeExists(),
delete_all_bridges()
Remain = http_get_bridges(BridgesParts, BridgeName),
delete_all_bridges(),
?assertEqual([], Remain)
end,
ok.