diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_control.erl | 15 | ||||
| -rw-r--r-- | src/rabbit_mnesia.erl | 11 |
2 files changed, 17 insertions, 9 deletions
diff --git a/src/rabbit_control.erl b/src/rabbit_control.erl index a498a68a5e..76ac8ce2e9 100644 --- a/src/rabbit_control.erl +++ b/src/rabbit_control.erl @@ -154,16 +154,17 @@ action(force_reset, Node, [], Inform) -> Inform("Forcefully resetting node ~p", [Node]), call(Node, {rabbit_mnesia, force_reset, []}); -action(cluster, Node, Args, Inform) -> - {Force, ClusterNodeSs} = - case Args of - ["-f" | Rest] -> {true, Rest}; - _ -> {false, Args} - end, +action(cluster, Node, ClusterNodeSs, Inform) -> ClusterNodes = lists:map(fun list_to_atom/1, ClusterNodeSs), Inform("Clustering node ~p with ~p", [Node, ClusterNodes]), - rpc_call(Node, rabbit_mnesia, cluster, [ClusterNodes, Force]); + rpc_call(Node, rabbit_mnesia, cluster, [ClusterNodes]); + +action(force_cluster, Node, ClusterNodeSs, Inform) -> + ClusterNodes = lists:map(fun list_to_atom/1, ClusterNodeSs), + Inform("Forcefully clustering node ~p with ~p (ignoring offline nodes)", + [Node, ClusterNodes]), + rpc_call(Node, rabbit_mnesia, force_cluster, [ClusterNodes]); action(status, Node, [], Inform) -> Inform("Status of node ~p", [Node]), diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl index 53028c2b83..83390c41b6 100644 --- a/src/rabbit_mnesia.erl +++ b/src/rabbit_mnesia.erl @@ -32,8 +32,8 @@ -module(rabbit_mnesia). -export([ensure_mnesia_dir/0, dir/0, status/0, init/0, is_db_empty/0, - cluster/2, reset/0, force_reset/0, is_clustered/0, - empty_ram_only_tables/0]). + cluster/1, force_cluster/1, reset/0, force_reset/0, + is_clustered/0, empty_ram_only_tables/0]). -export([table_names/0]). @@ -53,6 +53,8 @@ -spec(ensure_mnesia_dir/0 :: () -> 'ok'). -spec(init/0 :: () -> 'ok'). -spec(is_db_empty/0 :: () -> boolean()). +-spec(cluster/1 :: ([erlang_node()]) -> 'ok'). +-spec(force_cluster/1 :: ([erlang_node()]) -> 'ok'). -spec(cluster/2 :: ([erlang_node()], boolean()) -> 'ok'). -spec(reset/0 :: () -> 'ok'). -spec(force_reset/0 :: () -> 'ok'). @@ -92,6 +94,11 @@ is_db_empty() -> lists:all(fun (Tab) -> mnesia:dirty_first(Tab) == '$end_of_table' end, table_names()). +cluster(ClusterNodes) -> + cluster(ClusterNodes, false). +force_cluster(ClusterNodes) -> + cluster(ClusterNodes, true). + %% Alter which disk nodes this node is clustered with. This can be a %% subset of all the disk nodes in the cluster but can (and should) %% include the node itself if it is to be a disk rather than a ram |
