Преглед изворни кода

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.
Kjell Winblad пре 2 година
родитељ
комит
c6cd3adccb

+ 2 - 2
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

+ 1 - 5
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 ->

+ 1 - 1
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}

+ 8 - 0
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
 %%====================================================================