summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2013-07-29 16:04:02 +0100
committerSimon MacMullen <simon@rabbitmq.com>2013-07-29 16:04:02 +0100
commitd99108bf76d3ddb972683217ae3e3e62583d036c (patch)
treef75beb8f0c0f29d81d8a172505384f01ce03a5fb
parent302f0438a53f60cdb1760de76915d227e30bc9cc (diff)
parent91d408869fee0ca21834ebcf3c308b5e19ac72fd (diff)
downloadrabbitmq-server-d99108bf76d3ddb972683217ae3e3e62583d036c.tar.gz
Merge heads of stable
-rw-r--r--src/rabbit_autoheal.erl3
-rw-r--r--src/rabbit_mnesia.erl3
-rw-r--r--src/rabbit_node_monitor.erl11
3 files changed, 10 insertions, 7 deletions
diff --git a/src/rabbit_autoheal.erl b/src/rabbit_autoheal.erl
index f903677b..6cbfcce3 100644
--- a/src/rabbit_autoheal.erl
+++ b/src/rabbit_autoheal.erl
@@ -181,8 +181,7 @@ partition_value(Partition) ->
all_partitions(PartitionedWith) ->
Nodes = rabbit_mnesia:cluster_nodes(all),
Partitions = [{node(), PartitionedWith} |
- [rpc:call(Node, rabbit_node_monitor, partitions, [])
- || Node <- Nodes -- [node()]]],
+ rabbit_node_monitor:partitions(Nodes -- [node()])],
all_partitions(Partitions, [Nodes]).
all_partitions([], Partitions) ->
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl
index d282dad0..9602f0ff 100644
--- a/src/rabbit_mnesia.erl
+++ b/src/rabbit_mnesia.erl
@@ -332,8 +332,7 @@ status() ->
end.
mnesia_partitions(Nodes) ->
- {Replies, _BadNodes} = rpc:multicall(
- Nodes, rabbit_node_monitor, partitions, []),
+ Replies = rabbit_node_monitor:partitions(Nodes),
[Reply || Reply = {_, R} <- Replies, R =/= []].
is_running() -> mnesia:system_info(is_running) =:= yes.
diff --git a/src/rabbit_node_monitor.erl b/src/rabbit_node_monitor.erl
index 7fcd1f99..1cafb50f 100644
--- a/src/rabbit_node_monitor.erl
+++ b/src/rabbit_node_monitor.erl
@@ -24,7 +24,7 @@
write_cluster_status/1, read_cluster_status/0,
update_cluster_status/0, reset_cluster_status/0]).
-export([notify_node_up/0, notify_joined_cluster/0, notify_left_cluster/1]).
--export([partitions/0, subscribe/1]).
+-export([partitions/0, partitions/1, subscribe/1]).
%% gen_server callbacks
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2,
@@ -57,7 +57,8 @@
-spec(notify_joined_cluster/0 :: () -> 'ok').
-spec(notify_left_cluster/1 :: (node()) -> 'ok').
--spec(partitions/0 :: () -> {node(), [node()]}).
+-spec(partitions/0 :: () -> [node()]).
+-spec(partitions/1 :: ([node()]) -> [{node(), [node()]}]).
-spec(subscribe/1 :: (pid()) -> 'ok').
-spec(all_rabbit_nodes_up/0 :: () -> boolean()).
@@ -187,6 +188,10 @@ notify_left_cluster(Node) ->
partitions() ->
gen_server:call(?SERVER, partitions, infinity).
+partitions(Nodes) ->
+ {Replies, _} = gen_server:multi_call(Nodes, ?SERVER, partitions, infinity),
+ Replies.
+
subscribe(Pid) ->
gen_server:cast(?SERVER, {subscribe, Pid}).
@@ -208,7 +213,7 @@ init([]) ->
autoheal = rabbit_autoheal:init()}}.
handle_call(partitions, _From, State = #state{partitions = Partitions}) ->
- {reply, {node(), Partitions}, State};
+ {reply, Partitions, State};
handle_call(_Request, _From, State) ->
{noreply, State}.