From c6cd3adccbca63697035dc36ac914da61c113484 Mon Sep 17 00:00:00 2001 From: Kjell Winblad Date: Tue, 16 Jan 2024 11:51:53 +0100 Subject: [PATCH] refactor: fix type upgrade calls and move compatiblitly logic Some bridge V1 to V2 calls were wrong but did not seem to cause issues (perhaps due to locking test coverage). This commit also move compatibility logic from the API module to the emqx_bridge_v2 module where most of the compatibility logic exists. --- apps/emqx_bridge/src/emqx_bridge.erl | 4 ++-- apps/emqx_bridge/src/emqx_bridge_api.erl | 6 +----- apps/emqx_bridge/src/emqx_bridge_resource.erl | 2 +- apps/emqx_bridge/src/emqx_bridge_v2.erl | 8 ++++++++ 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/apps/emqx_bridge/src/emqx_bridge.erl b/apps/emqx_bridge/src/emqx_bridge.erl index 7df55c81c..e27748610 100644 --- a/apps/emqx_bridge/src/emqx_bridge.erl +++ b/apps/emqx_bridge/src/emqx_bridge.erl @@ -352,10 +352,10 @@ get_metrics(ActionType, Name) -> true -> case emqx_bridge_v2:bridge_v1_is_valid(ActionType, Name) of true -> - BridgeV2Type = emqx_bridge_v2:bridge_v2_type_to_connector_type(ActionType), + BridgeV2Type = emqx_bridge_v2:bridge_v1_type_to_bridge_v2_type(ActionType), try ConfRootKey = emqx_bridge_v2:get_conf_root_key_if_only_one( - ActionType, Name + BridgeV2Type, Name ), emqx_bridge_v2:get_metrics(ConfRootKey, BridgeV2Type, Name) catch diff --git a/apps/emqx_bridge/src/emqx_bridge_api.erl b/apps/emqx_bridge/src/emqx_bridge_api.erl index 262ada984..7e929a233 100644 --- a/apps/emqx_bridge/src/emqx_bridge_api.erl +++ b/apps/emqx_bridge/src/emqx_bridge_api.erl @@ -554,11 +554,7 @@ schema("/bridges_probe") -> case emqx_bridge_v2:is_bridge_v2_type(BridgeType) of true -> try - ConfRootKey = emqx_bridge_v2:get_conf_root_key_if_only_one( - BridgeType, BridgeName - ), - BridgeV2Type = emqx_bridge_v2:bridge_v1_type_to_bridge_v2_type(BridgeType), - ok = emqx_bridge_v2:reset_metrics(ConfRootKey, BridgeV2Type, BridgeName), + ok = emqx_bridge_v2:bridge_v1_reset_metrics(BridgeType, BridgeName), ?NO_CONTENT catch error:Reason -> diff --git a/apps/emqx_bridge/src/emqx_bridge_resource.erl b/apps/emqx_bridge/src/emqx_bridge_resource.erl index ec7a7431b..143956b5d 100644 --- a/apps/emqx_bridge/src/emqx_bridge_resource.erl +++ b/apps/emqx_bridge/src/emqx_bridge_resource.erl @@ -147,7 +147,7 @@ reset_metrics(ResourceId) -> true -> case emqx_bridge_v2:bridge_v1_is_valid(Type, Name) of true -> - BridgeV2Type = emqx_bridge_v2:bridge_v2_type_to_connector_type(Type), + BridgeV2Type = emqx_bridge_v2:bridge_v1_type_to_bridge_v2_type(Type), emqx_bridge_v2:reset_metrics(BridgeV2Type, Name); false -> {error, not_bridge_v1_compatible} diff --git a/apps/emqx_bridge/src/emqx_bridge_v2.erl b/apps/emqx_bridge/src/emqx_bridge_v2.erl index 32034f774..d76f737b5 100644 --- a/apps/emqx_bridge/src/emqx_bridge_v2.erl +++ b/apps/emqx_bridge/src/emqx_bridge_v2.erl @@ -135,6 +135,7 @@ bridge_v1_restart/2, bridge_v1_stop/2, bridge_v1_start/2, + bridge_v1_reset_metrics/2, %% For test cases only bridge_v1_remove/2, get_conf_root_key_if_only_one/2 @@ -1815,6 +1816,13 @@ bridge_v1_operation_helper(BridgeV1Type, Name, ConnectorOpFun, DoHealthCheck) -> {error, not_bridge_v1_compatible} end. +bridge_v1_reset_metrics(BridgeV1Type, BridgeName) -> + BridgeV2Type = bridge_v1_type_to_bridge_v2_type(BridgeV1Type), + ConfRootKey = get_conf_root_key_if_only_one( + BridgeV2Type, BridgeName + ), + ok = reset_metrics(ConfRootKey, BridgeV2Type, BridgeName). + %%==================================================================== %% Misc helper functions %%====================================================================