summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@lshift.net>2009-10-29 13:54:11 +0000
committerMatthew Sackman <matthew@lshift.net>2009-10-29 13:54:11 +0000
commit5cff5d8bf0cdd8475043dcb53a12ab2e52e66da3 (patch)
tree60d59652f88ea6e9406e0e91c541032066858418
parent932e608a4db2c30c283b46a5dab4233f1a85901b (diff)
downloadrabbitmq-server-5cff5d8bf0cdd8475043dcb53a12ab2e52e66da3.tar.gz
placation of Matthias - more sensible rabbit_mnesia API
-rw-r--r--src/rabbit.erl5
-rw-r--r--src/rabbit_mnesia.erl40
2 files changed, 22 insertions, 23 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl
index 1db85f4e..c66a44a7 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -210,7 +210,10 @@ start(normal, []) ->
stop(_State) ->
terminated_ok = error_logger:delete_report_handler(rabbit_error_logger),
ok = rabbit_alarm:stop(),
- ok = rabbit_mnesia:maybe_empty_ram_only_tables(),
+ ok = case rabbit_mnesia:is_clustered() of
+ true -> ok;
+ false -> rabbit_mnesia:empty_ram_only_tables()
+ end,
ok.
%---------------------------------------------------------------------------
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl
index 03054ece..749038db 100644
--- a/src/rabbit_mnesia.erl
+++ b/src/rabbit_mnesia.erl
@@ -32,7 +32,8 @@
-module(rabbit_mnesia).
-export([ensure_mnesia_dir/0, dir/0, status/0, init/0, is_db_empty/0,
- cluster/1, reset/0, force_reset/0, maybe_empty_ram_only_tables/0]).
+ cluster/1, reset/0, force_reset/0, is_clustered/0,
+ empty_ram_only_tables/0]).
-export([table_names/0]).
@@ -54,7 +55,8 @@
-spec(cluster/1 :: ([erlang_node()]) -> 'ok').
-spec(reset/0 :: () -> 'ok').
-spec(force_reset/0 :: () -> 'ok').
--spec(maybe_empty_ram_only_tables/0 :: () -> 'ok').
+-spec(is_clustered/0 :: () -> boolean()).
+-spec(empty_ram_only_tables/0 :: () -> 'ok').
-spec(create_tables/0 :: () -> 'ok').
-endif.
@@ -99,11 +101,20 @@ cluster(ClusterNodes) ->
reset() -> reset(false).
force_reset() -> reset(true).
-maybe_empty_ram_only_tables() ->
- case is_clustered() of
- true -> ok;
- false -> empty_ram_only_tables()
- end.
+is_clustered() ->
+ RunningNodes = mnesia:system_info(running_db_nodes),
+ [node()] /= RunningNodes andalso [] /= RunningNodes.
+
+empty_ram_only_tables() ->
+ Node = node(),
+ lists:foreach(
+ fun (TabName) ->
+ case lists:member(Node, mnesia:table_info(TabName, ram_copies)) of
+ true -> {atomic, ok} = mnesia:clear_table(TabName);
+ false -> ok
+ end
+ end, table_names()),
+ ok.
%%--------------------------------------------------------------------
@@ -440,18 +451,3 @@ leave_cluster(Nodes, RunningNodes) ->
false -> throw({error, {no_running_cluster_nodes,
Nodes, RunningNodes}})
end.
-
-is_clustered() ->
- RunningNodes = mnesia:system_info(running_db_nodes),
- [node()] /= RunningNodes andalso [] /= RunningNodes.
-
-empty_ram_only_tables() ->
- Node = node(),
- lists:foreach(
- fun (TabName) ->
- case lists:member(Node, mnesia:table_info(TabName, ram_copies)) of
- true -> {atomic, ok} = mnesia:clear_table(TabName);
- false -> ok
- end
- end, table_names()),
- ok.