fix: bridge v1 compatiblity layer enable/disable

This commit is contained in:
Kjell Winblad 2023-10-27 18:51:20 +02:00
parent d61d80f338
commit 886334e7b6
2 changed files with 28 additions and 16 deletions

View File

@ -353,12 +353,7 @@ disable_enable(Action, BridgeType, BridgeName) when
->
case emqx_bridge_v2:is_bridge_v2_type(BridgeType) of
true ->
case emqx_bridge_v2:is_valid_bridge_v1(BridgeType, BridgeName) of
true ->
do_disable_enable_bridge_v2_compatible(Action, BridgeType, BridgeName);
false ->
{error, not_bridge_v1_compatible}
end;
emqx_bridge_v2:bridge_v1_enable_disable(Action, BridgeType, BridgeName);
false ->
emqx_conf:update(
config_key_path() ++ [BridgeType, BridgeName],
@ -367,15 +362,6 @@ disable_enable(Action, BridgeType, BridgeName) when
)
end.
do_disable_enable_bridge_v2_compatible(enable, BridgeType, BridgeName) ->
BridgeV2Type = emqx_bridge_v2:bridge_v1_type_to_bridge_v2_type(BridgeType),
_ = emqx_connector:disable_enable(enable, BridgeType, BridgeName),
emqx_bridge_v2:disable_enable(enable, BridgeV2Type, BridgeName);
do_disable_enable_bridge_v2_compatible(disable, BridgeType, BridgeName) ->
BridgeV2Type = emqx_bridge_v2:bridge_v1_type_to_bridge_v2_type(BridgeType),
_ = emqx_bridge_v2:disable_enable(disable, BridgeV2Type, BridgeName),
emqx_connector:disable_enable(disable, BridgeType, BridgeName).
create(BridgeType, BridgeName, RawConf) ->
?SLOG(debug, #{
bridge_action => create,

View File

@ -92,7 +92,8 @@
bridge_v1_create_dry_run/2,
extract_connector_id_from_bridge_v2_id/1,
bridge_v1_type_to_bridge_v2_type/1,
bridge_v1_id_to_connector_resource_id/1
bridge_v1_id_to_connector_resource_id/1,
bridge_v1_enable_disable/3
]).
%%====================================================================
@ -1214,6 +1215,31 @@ bridge_v1_id_to_connector_resource_id(BridgeId) ->
<<"connector:", ConnectorType/binary, ":", ConnectorName/binary>>
end.
bridge_v1_enable_disable(Action, BridgeType, BridgeName) ->
case emqx_bridge_v2:is_valid_bridge_v1(BridgeType, BridgeName) of
true ->
bridge_v1_enable_disable_helper(
Action,
BridgeType,
BridgeName,
lookup_raw_conf(BridgeType, BridgeName)
);
false ->
{error, not_bridge_v1_compatible}
end.
bridge_v1_enable_disable_helper(_Op, _BridgeType, _BridgeName, {error, bridge_not_found}) ->
{error, bridge_not_found};
bridge_v1_enable_disable_helper(enable, BridgeType, BridgeName, #{connector := ConnectorName}) ->
BridgeV2Type = ?MODULE:bridge_v1_type_to_bridge_v2_type(BridgeType),
ConnectorType = ?MODULE:bridge_v2_type_to_connector_type(BridgeV2Type),
{ok, _} = emqx_connector:disable_enable(enable, ConnectorType, ConnectorName),
emqx_bridge_v2:disable_enable(enable, BridgeV2Type, BridgeName);
bridge_v1_enable_disable_helper(disable, BridgeType, BridgeName, #{connector := ConnectorName}) ->
BridgeV2Type = emqx_bridge_v2:bridge_v1_type_to_bridge_v2_type(BridgeType),
ConnectorType = ?MODULE:bridge_v2_type_to_connector_type(BridgeV2Type),
{ok, _} = emqx_bridge_v2:disable_enable(disable, BridgeV2Type, BridgeName),
emqx_connector:disable_enable(disable, ConnectorType, ConnectorName).
%%====================================================================
%% Misc helper functions
%%====================================================================