summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2014-09-17 11:13:30 +0100
committerSimon MacMullen <simon@rabbitmq.com>2014-09-17 11:13:30 +0100
commit8b568a8ea5812df577c0af2901081c63abe47d96 (patch)
tree31f5f3bf630295d04b17a0c1b4a7fe6212d59525
parent8faf835e65520045bb67538b86e4660db804dde3 (diff)
parentce22572cfc40fe84742f64e1d4720b4d9c06e05a (diff)
downloadrabbitmq-server-8b568a8ea5812df577c0af2901081c63abe47d96.tar.gz
Merge bug26370
-rw-r--r--src/rabbit.erl4
-rw-r--r--src/rabbit_table.erl11
2 files changed, 10 insertions, 5 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl
index bd34cf8b..a698e4ba 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -650,8 +650,8 @@ recover() ->
rabbit_amqqueue:start(Qs).
maybe_insert_default_data() ->
- case rabbit_table:is_empty() of
- true -> insert_default_data();
+ case rabbit_table:needs_default_data() of
+ true -> insert_default_data();
false -> ok
end.
diff --git a/src/rabbit_table.erl b/src/rabbit_table.erl
index fe2c3b58..41bf9585 100644
--- a/src/rabbit_table.erl
+++ b/src/rabbit_table.erl
@@ -17,7 +17,7 @@
-module(rabbit_table).
-export([create/0, create_local_copy/1, wait_for_replicated/0, wait/1,
- force_load/0, is_present/0, is_empty/0,
+ force_load/0, is_present/0, is_empty/0, needs_default_data/0,
check_schema_integrity/0, clear_ram_only_tables/0]).
-include("rabbit.hrl").
@@ -33,6 +33,7 @@
-spec(force_load/0 :: () -> 'ok').
-spec(is_present/0 :: () -> boolean()).
-spec(is_empty/0 :: () -> boolean()).
+-spec(needs_default_data/0 :: () -> boolean()).
-spec(check_schema_integrity/0 :: () -> rabbit_types:ok_or_error(any())).
-spec(clear_ram_only_tables/0 :: () -> 'ok').
@@ -89,9 +90,13 @@ force_load() -> [mnesia:force_load_table(T) || T <- names()], ok.
is_present() -> names() -- mnesia:system_info(tables) =:= [].
-is_empty() ->
+is_empty() -> is_empty(names()).
+needs_default_data() -> is_empty([rabbit_user, rabbit_user_permission,
+ rabbit_vhost]).
+
+is_empty(Names) ->
lists:all(fun (Tab) -> mnesia:dirty_first(Tab) == '$end_of_table' end,
- names()).
+ Names).
check_schema_integrity() ->
Tables = mnesia:system_info(tables),