summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandru Scvortov <alexandru@rabbitmq.com>2011-07-28 16:30:48 +0100
committerAlexandru Scvortov <alexandru@rabbitmq.com>2011-07-28 16:30:48 +0100
commitce55070fd5ac38b74e6bbdd72efe08006eff04b5 (patch)
tree1a946f37aaaba50dd06db98ed5b8cb6f5eface8d
parenteeb689c2cddf9c456ae6991905128e9a8ff47f06 (diff)
downloadrabbitmq-server-bug24227.tar.gz
abstract out mnesia:start and mnesia:stopbug24227
-rw-r--r--src/rabbit_mnesia.erl27
1 files changed, 16 insertions, 11 deletions
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl
index b52ad3f9..d398cd87 100644
--- a/src/rabbit_mnesia.erl
+++ b/src/rabbit_mnesia.erl
@@ -151,13 +151,13 @@ cluster(ClusterNodes, Force) ->
end,
%% Join the cluster
- rabbit_misc:ensure_ok(mnesia:start(), cannot_start_mnesia),
+ start_mnesia(),
try
ok = init_db(ClusterNodes, Force,
fun maybe_upgrade_local_or_record_desired/0),
ok = create_cluster_nodes_config(ClusterNodes)
after
- mnesia:stop()
+ stop_mnesia()
end,
ok.
@@ -522,9 +522,7 @@ init_db(ClusterNodes, Force, SecondaryPostMnesiaFun) ->
%% We've taken down mnesia, so ram nodes will need
%% to re-sync
case is_disc_node() of
- false -> rabbit_misc:ensure_ok(mnesia:start(),
- cannot_start_mnesia),
- ensure_mnesia_running(),
+ false -> start_mnesia(),
mnesia:change_config(extra_db_nodes,
ProperClusterNodes),
wait_for_replicated_tables();
@@ -574,7 +572,7 @@ ensure_version_ok({error, _}) ->
ok = rabbit_version:record_desired().
create_schema(Type) ->
- mnesia:stop(),
+ stop_mnesia(),
case Type of
disc -> rabbit_misc:ensure_ok(mnesia:create_schema([node()]),
cannot_create_schema);
@@ -582,7 +580,7 @@ create_schema(Type) ->
rabbit_misc:ensure_ok(mnesia:delete_schema([node()]),
cannot_delete_schema)
end,
- rabbit_misc:ensure_ok(mnesia:start(), cannot_start_mnesia),
+ start_mnesia(),
ok = create_tables(Type),
ensure_schema_integrity(),
ok = rabbit_version:record_desired().
@@ -593,7 +591,7 @@ should_be_disc_node(ClusterNodes) ->
ClusterNodes == [] orelse lists:member(node(), ClusterNodes).
move_db() ->
- mnesia:stop(),
+ stop_mnesia(),
MnesiaDir = filename:dirname(dir() ++ "/"),
{{Year, Month, Day}, {Hour, Minute, Second}} = erlang:universaltime(),
BackupDir = lists:flatten(
@@ -611,7 +609,7 @@ move_db() ->
MnesiaDir, BackupDir, Reason}})
end,
ensure_mnesia_dir(),
- rabbit_misc:ensure_ok(mnesia:start(), cannot_start_mnesia),
+ start_mnesia(),
ok.
copy_db(Destination) ->
@@ -702,14 +700,14 @@ reset(Force) ->
true -> ok;
false ->
ensure_mnesia_dir(),
- rabbit_misc:ensure_ok(mnesia:start(), cannot_start_mnesia),
+ start_mnesia(),
{Nodes, RunningNodes} =
try
ok = init(),
{all_clustered_nodes() -- [Node],
running_clustered_nodes() -- [Node]}
after
- mnesia:stop()
+ stop_mnesia()
end,
leave_cluster(Nodes, RunningNodes),
rabbit_misc:ensure_ok(mnesia:delete_schema([Node]),
@@ -744,3 +742,10 @@ leave_cluster(Nodes, RunningNodes) ->
Nodes, RunningNodes}})
end.
+start_mnesia() ->
+ rabbit_misc:ensure_ok(mnesia:start(), cannot_start_mnesia),
+ ensure_mnesia_running().
+
+stop_mnesia() ->
+ stopped = mnesia:stop(),
+ ensure_mnesia_not_running().