|
@@ -747,7 +747,7 @@ schema("/source_types") ->
|
|
|
%%------------------------------------------------------------------------------
|
|
%%------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
handle_list(ConfRootKey) ->
|
|
handle_list(ConfRootKey) ->
|
|
|
- Nodes = emqx:running_nodes(),
|
|
|
|
|
|
|
+ Nodes = nodes_supporting_bpapi_version(6),
|
|
|
NodeReplies = emqx_bridge_proto_v6:v2_list_bridges_on_nodes_v6(Nodes, ConfRootKey),
|
|
NodeReplies = emqx_bridge_proto_v6:v2_list_bridges_on_nodes_v6(Nodes, ConfRootKey),
|
|
|
case is_ok(NodeReplies) of
|
|
case is_ok(NodeReplies) of
|
|
|
{ok, NodeBridges} ->
|
|
{ok, NodeBridges} ->
|
|
@@ -942,7 +942,7 @@ is_ok(ResL) ->
|
|
|
%% bridge helpers
|
|
%% bridge helpers
|
|
|
-spec lookup_from_all_nodes(emqx_bridge_v2:root_cfg_key(), _, _, _) -> _.
|
|
-spec lookup_from_all_nodes(emqx_bridge_v2:root_cfg_key(), _, _, _) -> _.
|
|
|
lookup_from_all_nodes(ConfRootKey, BridgeType, BridgeName, SuccCode) ->
|
|
lookup_from_all_nodes(ConfRootKey, BridgeType, BridgeName, SuccCode) ->
|
|
|
- Nodes = emqx:running_nodes(),
|
|
|
|
|
|
|
+ Nodes = nodes_supporting_bpapi_version(6),
|
|
|
case
|
|
case
|
|
|
is_ok(
|
|
is_ok(
|
|
|
emqx_bridge_proto_v6:v2_lookup_from_all_nodes_v6(
|
|
emqx_bridge_proto_v6:v2_lookup_from_all_nodes_v6(
|
|
@@ -959,7 +959,7 @@ lookup_from_all_nodes(ConfRootKey, BridgeType, BridgeName, SuccCode) ->
|
|
|
end.
|
|
end.
|
|
|
|
|
|
|
|
get_metrics_from_all_nodes(ConfRootKey, Type, Name) ->
|
|
get_metrics_from_all_nodes(ConfRootKey, Type, Name) ->
|
|
|
- Nodes = emqx:running_nodes(),
|
|
|
|
|
|
|
+ Nodes = nodes_supporting_bpapi_version(6),
|
|
|
Result = maybe_unwrap(
|
|
Result = maybe_unwrap(
|
|
|
emqx_bridge_proto_v6:v2_get_metrics_from_all_nodes_v6(Nodes, ConfRootKey, Type, Name)
|
|
emqx_bridge_proto_v6:v2_get_metrics_from_all_nodes_v6(Nodes, ConfRootKey, Type, Name)
|
|
|
),
|
|
),
|
|
@@ -1058,6 +1058,16 @@ supported_versions(_Call) -> bpapi_version_range(6, 6).
|
|
|
bpapi_version_range(From, To) ->
|
|
bpapi_version_range(From, To) ->
|
|
|
lists:seq(From, To).
|
|
lists:seq(From, To).
|
|
|
|
|
|
|
|
|
|
+nodes_supporting_bpapi_version(Vsn) ->
|
|
|
|
|
+ [
|
|
|
|
|
+ N
|
|
|
|
|
+ || N <- emqx:running_nodes(),
|
|
|
|
|
+ case emqx_bpapi:supported_version(N, ?BPAPI_NAME) of
|
|
|
|
|
+ undefined -> false;
|
|
|
|
|
+ NVsn when is_number(NVsn) -> NVsn >= Vsn
|
|
|
|
|
+ end
|
|
|
|
|
+ ].
|
|
|
|
|
+
|
|
|
maybe_unwrap({error, not_implemented}) ->
|
|
maybe_unwrap({error, not_implemented}) ->
|
|
|
{error, not_implemented};
|
|
{error, not_implemented};
|
|
|
maybe_unwrap(RpcMulticallResult) ->
|
|
maybe_unwrap(RpcMulticallResult) ->
|