Merge pull request #12098 from thalesmg/revert-downgrade-bridge-id-m-20231205

chore: stop downgrading action id in rule API responses
This commit is contained in:
Thales Macedo Garitezi 2023-12-05 14:26:23 -03:00 committed by GitHub
commit 99399c6e95
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 28 deletions

View File

@ -521,8 +521,7 @@ format_action(Actions) ->
do_format_action({bridge, BridgeType, BridgeName, _ResId}) ->
emqx_bridge_resource:bridge_id(BridgeType, BridgeName);
do_format_action({bridge_v2, BridgeType0, BridgeName}) ->
BridgeType = try_downgrade(BridgeType0, BridgeName),
do_format_action({bridge_v2, BridgeType, BridgeName}) ->
emqx_bridge_resource:bridge_id(BridgeType, BridgeName);
do_format_action(#{mod := Mod, func := Func, args := Args}) ->
#{
@ -534,25 +533,6 @@ do_format_action(#{mod := Mod, func := Func}) ->
function => printable_function_name(Mod, Func)
}.
try_downgrade(BridgeType, BridgeName) ->
Conf = try_get_conf(BridgeType, BridgeName),
try emqx_bridge_lib:downgrade_type(BridgeType, Conf) of
DowngradedBridgeType ->
DowngradedBridgeType
catch
error:{config_not_found, _} ->
BridgeType
end.
try_get_conf(BridgeType, BridgeName) ->
try emqx_conf:get_raw([actions, BridgeType, BridgeName]) of
RawConf ->
RawConf
catch
error:{config_not_found, _} ->
#{}
end.
printable_function_name(emqx_rule_actions, Func) ->
Func;
printable_function_name(Mod, Func) ->

View File

@ -310,25 +310,26 @@ t_rule_engine(_) ->
}),
{400, _} = emqx_rule_engine_api:'/rule_engine'(put, #{body => #{<<"something">> => <<"weird">>}}).
t_downgrade_bridge_type(_) ->
t_dont_downgrade_bridge_type(_) ->
case emqx_release:edition() of
ee ->
do_test_downgrade_bridge_type();
do_t_dont_downgrade_bridge_type();
ce ->
%% downgrade is not supported in CE
ok
end.
do_test_downgrade_bridge_type() ->
do_t_dont_downgrade_bridge_type() ->
%% Create a rule using a bridge V1 ID
#{id := RuleId} = create_rule((?SIMPLE_RULE(<<>>))#{<<"actions">> => [<<"kafka:name">>]}),
?assertMatch(
%% returns a bridges_v2 ID
{200, #{data := [#{actions := [<<"kafka:name">>]}]}},
%% returns an action ID
{200, #{data := [#{actions := [<<"kafka_producer:name">>]}]}},
emqx_rule_engine_api:'/rules'(get, #{query_string => #{}})
),
?assertMatch(
%% returns a bridges_v2 ID
{200, #{actions := [<<"kafka:name">>]}},
%% returns an action ID
{200, #{actions := [<<"kafka_producer:name">>]}},
emqx_rule_engine_api:'/rules/:id'(get, #{bindings => #{id => RuleId}})
),
ok.