summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2010-10-25 17:03:57 +0100
committerSimon MacMullen <simon@rabbitmq.com>2010-10-25 17:03:57 +0100
commitfe9f8e23de8f28190b5336e0a7ba933b744853e2 (patch)
treeba740b204e75d910addfba9873f99a7bf029a5a6
parent71b0e77815e791ede56e479a8550684b5fd5804e (diff)
downloadrabbitmq-server-fe9f8e23de8f28190b5336e0a7ba933b744853e2.tar.gz
Various stylistic tweaks + cleanups
-rw-r--r--src/rabbit_upgrade.erl42
-rw-r--r--src/rabbit_upgrade_functions.erl6
2 files changed, 23 insertions, 25 deletions
diff --git a/src/rabbit_upgrade.erl b/src/rabbit_upgrade.erl
index 62658fbb..f1af8bcb 100644
--- a/src/rabbit_upgrade.erl
+++ b/src/rabbit_upgrade.erl
@@ -37,7 +37,7 @@
-define(VERSION_FILENAME, "schema_version").
-define(LOCK_FILENAME, "schema_upgrade_lock").
-%% API ---------------------------------------------------------------
+%% -------------------------------------------------------------------
%% Try to upgrade the schema. If no information on the existing schema could
%% be found, do nothing. rabbit_mnesia:check_schema_integrity() will catch the
@@ -46,15 +46,16 @@ maybe_upgrade(Dir) ->
case rabbit_misc:read_term_file(schema_filename(Dir)) of
{ok, [CurrentHeads]} ->
G = load_graph(),
- case check_unknown_heads(CurrentHeads, G) of
- ok ->
+ case unknown_heads(CurrentHeads, G) of
+ [] ->
Upgrades = upgrades_to_apply(CurrentHeads, G),
case length(Upgrades) of
0 -> ok;
_ -> apply_upgrades(Upgrades, Dir)
end;
- _ ->
- ok
+ Unknown ->
+ [warn("Data store has had future upgrade ~w applied." ++
+ " Will not upgrade.~n", [U]) || U <- Unknown]
end,
digraph:delete(G),
ok;
@@ -68,14 +69,14 @@ write_version(Dir) ->
digraph:delete(G),
ok.
-%% Graphs ------------------------------------------------------------
+%% -------------------------------------------------------------------
load_graph() ->
G = digraph:new([acyclic]),
Upgrades = rabbit:all_module_attributes(rabbit_upgrade),
[case digraph:vertex(G, StepName) of
false -> digraph:add_vertex(G, StepName, {Module, StepName});
- _ -> throw({duplicate_upgrade, StepName})
+ _ -> exit({duplicate_upgrade, StepName})
end || {Module, StepName, _Requires} <- Upgrades],
lists:foreach(fun ({_Module, Upgrade, Requires}) ->
@@ -84,22 +85,19 @@ load_graph() ->
G.
add_edges(G, Requires, Upgrade) ->
- Results = [digraph:add_edge(G, R, Upgrade) || R <- Requires],
- case [E || {error, _} = E <- Results] of
- [] -> ok;
- L -> exit(L)
- end.
+ [add_edge(G, Require, Upgrade) || Require <- Requires].
-check_unknown_heads(Heads, G) ->
- case [H || H <- Heads, digraph:vertex(G, H) =:= false] of
- [] ->
- ok;
- Unknown ->
- [warn("Data store has had future upgrade ~w applied. Will not " ++
- "upgrade.~n", [U]) || U <- Unknown],
- Unknown
+add_edge(G, Require, Upgrade) ->
+ case digraph:add_edge(G, Require, Upgrade) of
+ {error, E} ->
+ exit(E);
+ _ ->
+ ok
end.
+unknown_heads(Heads, G) ->
+ [H || H <- Heads, digraph:vertex(G, H) =:= false].
+
upgrades_to_apply(Heads, G) ->
Unsorted = sets:to_list(
sets:subtract(
@@ -114,7 +112,7 @@ upgrades_to_apply(Heads, G) ->
heads(G) ->
[V || V <- digraph:vertices(G), digraph:out_degree(G, V) =:= 0].
-%% Upgrades-----------------------------------------------------------
+%% -------------------------------------------------------------------
apply_upgrades(Upgrades, Dir) ->
LockFile = lock_filename(Dir),
@@ -137,7 +135,7 @@ apply_upgrade({M, F}) ->
info("Upgrades: Applying ~w:~w~n", [M, F]),
apply(M, F, []).
-%% Utils -------------------------------------------------------------
+%% -------------------------------------------------------------------
schema_filename(Dir) ->
filename:join(Dir, ?VERSION_FILENAME).
diff --git a/src/rabbit_upgrade_functions.erl b/src/rabbit_upgrade_functions.erl
index dfd22aea..53a1624e 100644
--- a/src/rabbit_upgrade_functions.erl
+++ b/src/rabbit_upgrade_functions.erl
@@ -47,7 +47,7 @@
remove_user_scope() ->
{atomic, ok} = mnesia:transform_table(
rabbit_user_permission,
- fun(Perm = #user_permission{
+ fun (Perm = #user_permission{
permission = {permission, _Scope, Conf, Write, Read}}) ->
Perm#user_permission{
permission = #permission2{configure = Conf,
@@ -59,7 +59,7 @@ remove_user_scope() ->
test_add_column() ->
{atomic, ok} = mnesia:transform_table(
rabbit_user,
- fun({user, Username, Password, Admin}) ->
+ fun ({user, Username, Password, Admin}) ->
{user, Username, Password, Admin, something_else}
end,
[username, password, is_admin, something]).
@@ -67,7 +67,7 @@ test_add_column() ->
test_remove_column() ->
{atomic, ok} = mnesia:transform_table(
rabbit_user,
- fun({user, Username, Password, Admin, _SomethingElse}) ->
+ fun ({user, Username, Password, Admin, _SomethingElse}) ->
{user, Username, Password, Admin}
end,
record_info(fields, user)).