diff options
| author | Alexandru Scvortov <alexandru@rabbitmq.com> | 2011-08-03 10:37:50 +0100 |
|---|---|---|
| committer | Alexandru Scvortov <alexandru@rabbitmq.com> | 2011-08-03 10:37:50 +0100 |
| commit | 0f56bb08552bb6bda110c14ad7f242393fb62667 (patch) | |
| tree | e7255253426dbdff5eab1d096034a0c692175040 | |
| parent | d3509448afcd1f6f0783c13bc877560b43c9b5f5 (diff) | |
| download | rabbitmq-server-git-0f56bb08552bb6bda110c14ad7f242393fb62667.tar.gz | |
warn when removing the last disc node from a cluster
| -rw-r--r-- | src/rabbit_mnesia.erl | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl index ab553a8b07..6c372b745d 100644 --- a/src/rabbit_mnesia.erl +++ b/src/rabbit_mnesia.erl @@ -28,6 +28,8 @@ -export([table_names/0]). +-compile([export_all]). + %% create_tables/0 exported for helping embed RabbitMQ in or alongside %% other mnesia-using Erlang applications, such as ejabberd -export([create_tables/0]). @@ -118,6 +120,21 @@ cluster(ClusterNodes, Force) -> ensure_mnesia_not_running(), ensure_mnesia_dir(), + DiscNodes = case is_disc_node() of + true -> start_mnesia(), + Nodes = nodes_of_type(disc_copies), + stop_mnesia(), + Nodes; + _ -> [] + end, + Node = node(), + case {should_be_disc_node(ClusterNodes), DiscNodes} of + {false, [Node]} -> Warning = "Warning: no disc nodes in cluster~n", + io:format(Warning), + error_logger:warning_msg(Warning); + _ -> ok + end, + %% Wipe mnesia if we're changing type from disc to ram case {is_disc_node(), should_be_disc_node(ClusterNodes)} of {true, false} -> error_logger:warning_msg( @@ -159,6 +176,7 @@ cluster(ClusterNodes, Force) -> after stop_mnesia() end, + ok. %% return node to its virgin state, where it is not member of any |
