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}) -> do_format_action({bridge, BridgeType, BridgeName, _ResId}) ->
emqx_bridge_resource:bridge_id(BridgeType, BridgeName); emqx_bridge_resource:bridge_id(BridgeType, BridgeName);
do_format_action({bridge_v2, BridgeType0, BridgeName}) -> do_format_action({bridge_v2, BridgeType, BridgeName}) ->
BridgeType = try_downgrade(BridgeType0, BridgeName),
emqx_bridge_resource:bridge_id(BridgeType, BridgeName); emqx_bridge_resource:bridge_id(BridgeType, BridgeName);
do_format_action(#{mod := Mod, func := Func, args := Args}) -> 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) 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) -> printable_function_name(emqx_rule_actions, Func) ->
Func; Func;
printable_function_name(Mod, 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">>}}). {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 case emqx_release:edition() of
ee -> ee ->
do_test_downgrade_bridge_type(); do_t_dont_downgrade_bridge_type();
ce -> ce ->
%% downgrade is not supported in CE %% downgrade is not supported in CE
ok ok
end. 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">>]}), #{id := RuleId} = create_rule((?SIMPLE_RULE(<<>>))#{<<"actions">> => [<<"kafka:name">>]}),
?assertMatch( ?assertMatch(
%% returns a bridges_v2 ID %% returns an action ID
{200, #{data := [#{actions := [<<"kafka:name">>]}]}}, {200, #{data := [#{actions := [<<"kafka_producer:name">>]}]}},
emqx_rule_engine_api:'/rules'(get, #{query_string => #{}}) emqx_rule_engine_api:'/rules'(get, #{query_string => #{}})
), ),
?assertMatch( ?assertMatch(
%% returns a bridges_v2 ID %% returns an action ID
{200, #{actions := [<<"kafka:name">>]}}, {200, #{actions := [<<"kafka_producer:name">>]}},
emqx_rule_engine_api:'/rules/:id'(get, #{bindings => #{id => RuleId}}) emqx_rule_engine_api:'/rules/:id'(get, #{bindings => #{id => RuleId}})
), ),
ok. ok.