summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2010-06-08 14:48:44 +0100
committerSimon MacMullen <simon@rabbitmq.com>2010-06-08 14:48:44 +0100
commit755c4ad125938778eac7b5013f85dd010b5c38f3 (patch)
tree85e652be4566f014a48d3f73778130dc4521e2aa
parente729c1b0d31c4e8e528643c7b72199bf2108ad29 (diff)
downloadrabbitmq-server-755c4ad125938778eac7b5013f85dd010b5c38f3.tar.gz
Start bug22597 again.
-rw-r--r--src/rabbit.erl3
-rw-r--r--src/rabbit_mnesia.erl14
2 files changed, 14 insertions, 3 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl
index c389178a..7a2faa68 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -185,6 +185,7 @@
-type(log_location() :: 'tty' | 'undefined' | string()).
-type(file_suffix() :: binary()).
+-type(node_type() :: disc_only | disc | ram).
-spec(prepare/0 :: () -> 'ok').
-spec(start/0 :: () -> 'ok').
@@ -193,7 +194,7 @@
-spec(rotate_logs/1 :: (file_suffix()) -> 'ok' | {'error', any()}).
-spec(status/0 :: () ->
[{running_applications, [{atom(), string(), string()}]} |
- {nodes, [erlang_node()]} |
+ {nodes, [{node_type(), [erlang_node()]}]} |
{running_nodes, [erlang_node()]}]).
-spec(log_location/1 :: ('sasl' | 'kernel') -> log_location()).
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl
index a0b7aa4e..20ee5232 100644
--- a/src/rabbit_mnesia.erl
+++ b/src/rabbit_mnesia.erl
@@ -47,7 +47,10 @@
-ifdef(use_specs).
--spec(status/0 :: () -> [{'nodes' | 'running_nodes', [erlang_node()]}]).
+-type(node_type() :: disc_only | disc | ram).
+
+-spec(status/0 :: () -> [{'nodes', [{node_type(), [erlang_node()]}]} |
+ {'running_nodes', [erlang_node()]}]).
-spec(dir/0 :: () -> file_path()).
-spec(ensure_mnesia_dir/0 :: () -> 'ok').
-spec(init/0 :: () -> 'ok').
@@ -64,7 +67,14 @@
%%----------------------------------------------------------------------------
status() ->
- [{nodes, mnesia:system_info(db_nodes)},
+ [{nodes, [{Key, Nodes} ||
+ {Key, CopyType} <- [{disc_only, disc_only_copies},
+ {disc, disc_copies},
+ {ram, ram_copies}],
+ begin
+ Nodes = mnesia:table_info(schema, CopyType),
+ Nodes =/= []
+ end]},
{running_nodes, mnesia:system_info(running_db_nodes)}].
init() ->