summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <klishinm@vmware.com>2021-09-20 23:08:03 +0300
committerGitHub <noreply@github.com>2021-09-20 23:08:03 +0300
commitddbd56b1d9614bb4acc957f5777c98e47e2af9e9 (patch)
treeffe681225bf1db0228e2b5250322f1ee0e900788
parente4bda83b8ec81e2efe44ffa3d7111cd9f401b5af (diff)
parent0f6a9dac27dd7912e88f7533b5f750c9d211a75e (diff)
downloadrabbitmq-server-git-ddbd56b1d9614bb4acc957f5777c98e47e2af9e9.tar.gz
Merge pull request #3462 from rabbitmq/mk-rabbit-nodes-all
Introduce rabbit_nodes:all/0
-rw-r--r--deps/rabbit/src/rabbit_amqqueue.erl2
-rw-r--r--deps/rabbit/src/rabbit_autoheal.erl4
-rw-r--r--deps/rabbit/src/rabbit_core_metrics_gc.erl2
-rw-r--r--deps/rabbit/src/rabbit_mnesia_rename.erl4
-rw-r--r--deps/rabbit/src/rabbit_node_monitor.erl14
-rw-r--r--deps/rabbit/src/rabbit_nodes.erl7
-rw-r--r--deps/rabbit/src/rabbit_quorum_queue.erl4
-rw-r--r--deps/rabbit/src/rabbit_stream_coordinator.erl2
-rw-r--r--deps/rabbit/src/rabbit_stream_queue.erl2
-rw-r--r--deps/rabbit/src/rabbit_table.erl4
-rw-r--r--deps/rabbit/src/rabbit_upgrade.erl2
-rw-r--r--deps/rabbitmq_management_agent/src/rabbit_mgmt_gc.erl2
-rw-r--r--deps/rabbitmq_mqtt/src/mqtt_node.erl2
-rw-r--r--deps/rabbitmq_stream/src/rabbit_stream_sup.erl2
14 files changed, 28 insertions, 25 deletions
diff --git a/deps/rabbit/src/rabbit_amqqueue.erl b/deps/rabbit/src/rabbit_amqqueue.erl
index 2f0ff6fc00..410105e310 100644
--- a/deps/rabbit/src/rabbit_amqqueue.erl
+++ b/deps/rabbit/src/rabbit_amqqueue.erl
@@ -1779,7 +1779,7 @@ forget_node_for_queue(DeadNode, [H|T], Q) when ?is_amqqueue(Q) ->
node_permits_offline_promotion(Node) ->
case node() of
Node -> not rabbit:is_running(); %% [1]
- _ -> All = rabbit_mnesia:cluster_nodes(all),
+ _ -> All = rabbit_nodes:all(),
Running = rabbit_nodes:all_running(),
lists:member(Node, All) andalso
not lists:member(Node, Running) %% [2]
diff --git a/deps/rabbit/src/rabbit_autoheal.erl b/deps/rabbit/src/rabbit_autoheal.erl
index ae2888c9f7..cdf430b973 100644
--- a/deps/rabbit/src/rabbit_autoheal.erl
+++ b/deps/rabbit/src/rabbit_autoheal.erl
@@ -144,7 +144,7 @@ enabled() ->
end.
leader() ->
- [Leader | _] = lists:usort(rabbit_mnesia:cluster_nodes(all)),
+ [Leader | _] = lists:usort(rabbit_nodes:all()),
Leader.
%% This is the winner receiving its last notification that a node has
@@ -410,7 +410,7 @@ partition_value(Partition) ->
%% only know which nodes we have been partitioned from, not which
%% nodes are partitioned from each other.
check_other_nodes(LocalPartitions) ->
- Nodes = rabbit_mnesia:cluster_nodes(all),
+ Nodes = rabbit_nodes:all(),
{Results, Bad} = rabbit_node_monitor:status(Nodes -- [node()]),
RemotePartitions = [{Node, proplists:get_value(partitions, Res)}
|| {Node, Res} <- Results],
diff --git a/deps/rabbit/src/rabbit_core_metrics_gc.erl b/deps/rabbit/src/rabbit_core_metrics_gc.erl
index fd1a8cc7e1..156517c97e 100644
--- a/deps/rabbit/src/rabbit_core_metrics_gc.erl
+++ b/deps/rabbit/src/rabbit_core_metrics_gc.erl
@@ -102,7 +102,7 @@ gc_exchanges() ->
gc_process_and_entity(channel_exchange_metrics, GbSet).
gc_nodes() ->
- Nodes = rabbit_mnesia:cluster_nodes(all),
+ Nodes = rabbit_nodes:all(),
GbSet = gb_sets:from_list(Nodes),
gc_entity(node_node_metrics, GbSet).
diff --git a/deps/rabbit/src/rabbit_mnesia_rename.erl b/deps/rabbit/src/rabbit_mnesia_rename.erl
index d8f6237e42..842662db42 100644
--- a/deps/rabbit/src/rabbit_mnesia_rename.erl
+++ b/deps/rabbit/src/rabbit_mnesia_rename.erl
@@ -100,7 +100,7 @@ prepare(Node, NodeMapList) ->
%% Check that we are in the cluster, all old nodes are in the
%% cluster, and no new nodes are.
- Nodes = rabbit_mnesia:cluster_nodes(all),
+ Nodes = rabbit_nodes:all(),
case {FromNodes -- Nodes, ToNodes -- (ToNodes -- Nodes),
lists:member(Node, Nodes ++ ToNodes)} of
{[], [], true} -> ok;
@@ -232,7 +232,7 @@ update_term(_NodeMap, Term) ->
Term.
rename_in_running_mnesia(FromNode, ToNode) ->
- All = rabbit_mnesia:cluster_nodes(all),
+ All = rabbit_nodes:all(),
Running = rabbit_nodes:all_running(),
case {lists:member(FromNode, Running), lists:member(ToNode, All)} of
{false, true} -> ok;
diff --git a/deps/rabbit/src/rabbit_node_monitor.erl b/deps/rabbit/src/rabbit_node_monitor.erl
index 72ed13743f..4de4e4f1ca 100644
--- a/deps/rabbit/src/rabbit_node_monitor.erl
+++ b/deps/rabbit/src/rabbit_node_monitor.erl
@@ -876,7 +876,7 @@ majority() ->
majority([]).
majority(NodesDown) ->
- Nodes = rabbit_mnesia:cluster_nodes(all),
+ Nodes = rabbit_nodes:all(),
AliveNodes = alive_nodes(Nodes) -- NodesDown,
length(AliveNodes) / length(Nodes) > 0.5.
@@ -889,28 +889,28 @@ in_preferred_partition(PreferredNodes) ->
in_preferred_partition(PreferredNodes, []).
in_preferred_partition(PreferredNodes, NodesDown) ->
- Nodes = rabbit_mnesia:cluster_nodes(all),
+ Nodes = rabbit_nodes:all(),
RealPreferredNodes = [N || N <- PreferredNodes, lists:member(N, Nodes)],
AliveNodes = alive_nodes(RealPreferredNodes) -- NodesDown,
RealPreferredNodes =:= [] orelse AliveNodes =/= [].
all_nodes_up() ->
- Nodes = rabbit_mnesia:cluster_nodes(all),
+ Nodes = rabbit_nodes:all(),
length(alive_nodes(Nodes)) =:= length(Nodes).
-spec all_rabbit_nodes_up() -> boolean().
all_rabbit_nodes_up() ->
- Nodes = rabbit_mnesia:cluster_nodes(all),
+ Nodes = rabbit_nodes:all(),
length(alive_rabbit_nodes(Nodes)) =:= length(Nodes).
-alive_nodes() -> alive_nodes(rabbit_mnesia:cluster_nodes(all)).
+alive_nodes() -> alive_nodes(rabbit_nodes:all()).
-spec alive_nodes([node()]) -> [node()].
alive_nodes(Nodes) -> [N || N <- Nodes, lists:member(N, [node()|nodes()])].
-alive_rabbit_nodes() -> alive_rabbit_nodes(rabbit_mnesia:cluster_nodes(all)).
+alive_rabbit_nodes() -> alive_rabbit_nodes(rabbit_nodes:all()).
-spec alive_rabbit_nodes([node()]) -> [node()].
@@ -922,7 +922,7 @@ alive_rabbit_nodes(Nodes) ->
-spec ping_all() -> 'ok'.
ping_all() ->
- [net_adm:ping(N) || N <- rabbit_mnesia:cluster_nodes(all)],
+ [net_adm:ping(N) || N <- rabbit_nodes:all()],
ok.
possibly_partitioned_nodes() ->
diff --git a/deps/rabbit/src/rabbit_nodes.erl b/deps/rabbit/src/rabbit_nodes.erl
index ac9d996ef1..eecf04f13e 100644
--- a/deps/rabbit/src/rabbit_nodes.erl
+++ b/deps/rabbit/src/rabbit_nodes.erl
@@ -14,7 +14,7 @@
await_running_count/2, is_single_node_cluster/0,
boot/0]).
-export([persistent_cluster_id/0, seed_internal_cluster_id/0, seed_user_provided_cluster_name/0]).
--export([all_running_with_hashes/0]).
+-export([all/0, all_running_with_hashes/0]).
-export([lock_id/1, lock_retries/0]).
-include_lib("kernel/include/inet.hrl").
@@ -137,6 +137,9 @@ set_cluster_name(Name, Username) ->
ensure_epmd() ->
rabbit_nodes_common:ensure_epmd().
+-spec all() -> [node()].
+all() -> rabbit_mnesia:cluster_nodes(all).
+
-spec all_running() -> [node()].
all_running() -> rabbit_mnesia:cluster_nodes(running).
@@ -144,7 +147,7 @@ all_running() -> rabbit_mnesia:cluster_nodes(running).
running_count() -> length(all_running()).
-spec total_count() -> integer().
-total_count() -> length(rabbit_mnesia:cluster_nodes(all)).
+total_count() -> length(rabbit_nodes:all()).
-spec is_single_node_cluster() -> boolean().
is_single_node_cluster() ->
diff --git a/deps/rabbit/src/rabbit_quorum_queue.erl b/deps/rabbit/src/rabbit_quorum_queue.erl
index 1305327758..0131d1538b 100644
--- a/deps/rabbit/src/rabbit_quorum_queue.erl
+++ b/deps/rabbit/src/rabbit_quorum_queue.erl
@@ -176,7 +176,7 @@ start_cluster(Q) ->
rabbit_data_coercion:to_atom(ra:new_uid(N))
end,
Id = {RaName, node()},
- Nodes = select_quorum_nodes(QuorumSize, rabbit_mnesia:cluster_nodes(all)),
+ Nodes = select_quorum_nodes(QuorumSize, rabbit_nodes:all()),
NewQ0 = amqqueue:set_pid(Q, Id),
NewQ1 = amqqueue:set_type_state(NewQ0, #{nodes => Nodes}),
@@ -440,7 +440,7 @@ handle_tick(QName,
{messages_unacknowledged, MU},
{reductions, R}]),
ok = repair_leader_record(QName, Self),
- ExpectedNodes = rabbit_mnesia:cluster_nodes(all),
+ ExpectedNodes = rabbit_nodes:all(),
case Nodes -- ExpectedNodes of
[] ->
ok;
diff --git a/deps/rabbit/src/rabbit_stream_coordinator.erl b/deps/rabbit/src/rabbit_stream_coordinator.erl
index c2767cffb1..70989e383b 100644
--- a/deps/rabbit/src/rabbit_stream_coordinator.erl
+++ b/deps/rabbit/src/rabbit_stream_coordinator.erl
@@ -475,7 +475,7 @@ maybe_resize_coordinator_cluster() ->
{_, Members, _} ->
MemberNodes = [Node || {_, Node} <- Members],
Running = rabbit_mnesia:cluster_nodes(running),
- All = rabbit_mnesia:cluster_nodes(all),
+ All = rabbit_nodes:all(),
case Running -- MemberNodes of
[] ->
ok;
diff --git a/deps/rabbit/src/rabbit_stream_queue.erl b/deps/rabbit/src/rabbit_stream_queue.erl
index 6f9f245624..20166bfa9c 100644
--- a/deps/rabbit/src/rabbit_stream_queue.erl
+++ b/deps/rabbit/src/rabbit_stream_queue.erl
@@ -750,7 +750,7 @@ make_stream_conf(Node, Q) ->
InitialClusterSize = initial_cluster_size(
args_policy_lookup(<<"initial-cluster-size">>,
fun policy_precedence/2, Q)),
- Replicas0 = rabbit_mnesia:cluster_nodes(all) -- [Node],
+ Replicas0 = rabbit_nodes:all() -- [Node],
%% TODO: try to avoid nodes that are not connected
Replicas = select_stream_nodes(InitialClusterSize - 1, Replicas0),
Formatter = {?MODULE, format_osiris_event, [QName]},
diff --git a/deps/rabbit/src/rabbit_table.erl b/deps/rabbit/src/rabbit_table.erl
index a274eb0da4..291adc740b 100644
--- a/deps/rabbit/src/rabbit_table.erl
+++ b/deps/rabbit/src/rabbit_table.erl
@@ -107,10 +107,10 @@ wait(TableNames, Timeout, Retries) ->
ok ->
ok;
{timeout, BadTabs} ->
- AllNodes = rabbit_mnesia:cluster_nodes(all),
+ AllNodes = rabbit_nodes:all(),
{error, {timeout_waiting_for_tables, AllNodes, BadTabs}};
{error, Reason} ->
- AllNodes = rabbit_mnesia:cluster_nodes(all),
+ AllNodes = rabbit_nodes:all(),
{error, {failed_waiting_for_tables, AllNodes, Reason}}
end,
case {Retries, Result} of
diff --git a/deps/rabbit/src/rabbit_upgrade.erl b/deps/rabbit/src/rabbit_upgrade.erl
index 7f3d2e9b8e..03aa6854de 100644
--- a/deps/rabbit/src/rabbit_upgrade.erl
+++ b/deps/rabbit/src/rabbit_upgrade.erl
@@ -111,7 +111,7 @@ remove_backup() ->
-spec maybe_upgrade_mnesia() -> 'ok'.
maybe_upgrade_mnesia() ->
- AllNodes = rabbit_mnesia:cluster_nodes(all),
+ AllNodes = rabbit_nodes:all(),
ok = rabbit_mnesia_rename:maybe_finish(AllNodes),
%% Mnesia upgrade is the first upgrade scope,
%% so we should create a backup here if there are any upgrades
diff --git a/deps/rabbitmq_management_agent/src/rabbit_mgmt_gc.erl b/deps/rabbitmq_management_agent/src/rabbit_mgmt_gc.erl
index 4ce43d0fd7..8231f804a3 100644
--- a/deps/rabbitmq_management_agent/src/rabbit_mgmt_gc.erl
+++ b/deps/rabbitmq_management_agent/src/rabbit_mgmt_gc.erl
@@ -105,7 +105,7 @@ gc_exchanges() ->
gc_process_and_entity(channel_exchange_stats_fine_stats, GbSet).
gc_nodes() ->
- Nodes = rabbit_mnesia:cluster_nodes(all),
+ Nodes = rabbit_nodes:all(),
GbSet = gb_sets:from_list(Nodes),
gc_entity(node_stats, GbSet),
gc_entity(node_coarse_stats, GbSet),
diff --git a/deps/rabbitmq_mqtt/src/mqtt_node.erl b/deps/rabbitmq_mqtt/src/mqtt_node.erl
index f2f6b04ee1..3c74499ed8 100644
--- a/deps/rabbitmq_mqtt/src/mqtt_node.erl
+++ b/deps/rabbitmq_mqtt/src/mqtt_node.erl
@@ -24,7 +24,7 @@ server_id(Node) ->
{?ID_NAME, Node}.
all_node_ids() ->
- [server_id(N) || N <- rabbit_mnesia:cluster_nodes(all),
+ [server_id(N) || N <- rabbit_nodes:all(),
can_participate_in_clientid_tracking(N)].
start() ->
diff --git a/deps/rabbitmq_stream/src/rabbit_stream_sup.erl b/deps/rabbitmq_stream/src/rabbit_stream_sup.erl
index 9a79e56f88..dc9d528fe8 100644
--- a/deps/rabbitmq_stream/src/rabbit_stream_sup.erl
+++ b/deps/rabbitmq_stream/src/rabbit_stream_sup.erl
@@ -52,7 +52,7 @@ init([]) ->
end}
end,
- Nodes = rabbit_mnesia:cluster_nodes(all),
+ Nodes = rabbit_nodes:all(),
OsirisConf = #{nodes => Nodes},
ServerConfiguration =