diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2011-03-21 14:01:02 +0000 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2011-03-21 14:01:02 +0000 |
| commit | e4629e618b6605d135fa1b0c1f64f558127797fa (patch) | |
| tree | bc1019f19b936f2fb411e73b6eea604d67356b7b /src | |
| parent | ff126e64dc7ab85e480bb41f8f27e46bdea7e63b (diff) | |
| parent | 68042fac63bad913aa46fda6ed136b9877e1b7e6 (diff) | |
| download | rabbitmq-server-git-e4629e618b6605d135fa1b0c1f64f558127797fa.tar.gz | |
Merge heads
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_upgrade.erl | 40 |
1 files changed, 18 insertions, 22 deletions
diff --git a/src/rabbit_upgrade.erl b/src/rabbit_upgrade.erl index 866f20ee05..b9c7b8dce2 100644 --- a/src/rabbit_upgrade.erl +++ b/src/rabbit_upgrade.erl @@ -16,8 +16,7 @@ -module(rabbit_upgrade). --export([maybe_backup/0, maybe_upgrade_mnesia/0, maybe_upgrade_local/0, - maybe_remove_backup/0]). +-export([maybe_upgrade_mnesia/0, maybe_upgrade_local/0]). -include("rabbit.hrl"). @@ -28,10 +27,8 @@ -ifdef(use_specs). --spec(maybe_backup/0 :: () -> 'ok'). -spec(maybe_upgrade_mnesia/0 :: () -> 'ok'). -spec(maybe_upgrade_local/0 :: () -> 'ok' | 'version_not_available'). --spec(maybe_remove_backup/0 :: () -> 'ok'). -endif. @@ -94,13 +91,13 @@ %% ------------------------------------------------------------------- -maybe_backup() -> +maybe_take_backup() -> case backup_required() of - true -> backup(); + true -> take_backup(); _ -> ok end. -backup() -> +take_backup() -> rabbit:prepare(), %% Ensure we have logs for this LockFile = lock_filename(dir()), case rabbit_misc:lock_file(LockFile) of @@ -128,17 +125,15 @@ backup() -> maybe_remove_backup() -> - case file:read_file_info(backup_dir()) of + case filelib:is_dir(backup_dir()) of {ok, _} -> remove_backup(); _ -> ok end. remove_backup() -> - LockFile = lock_filename(dir()), - BackupDir = backup_dir(), - ok = rabbit_misc:recursive_delete([BackupDir]), + ok = rabbit_misc:recursive_delete([backup_dir()]), info("upgrades: Mnesia backup removed~n", []), - ok = file:delete(LockFile). + ok = file:delete(lock_filename(dir())). backup_required() -> case {rabbit_version:upgrades_required(mnesia), @@ -150,7 +145,7 @@ backup_required() -> end. maybe_upgrade_mnesia() -> - maybe_backup(), + maybe_take_backup(), AllNodes = rabbit_mnesia:all_clustered_nodes(), case rabbit_version:upgrades_required(mnesia) of {error, version_not_available} -> @@ -278,15 +273,16 @@ node_running(Node) -> %% ------------------------------------------------------------------- maybe_upgrade_local() -> - case rabbit_version:upgrades_required(local) of - {error, version_not_available} -> version_not_available; - {error, _} = Err -> throw(Err); - {ok, []} -> ok; - {ok, Upgrades} -> mnesia:stop(), - apply_upgrades(local, Upgrades, - fun () -> ok end) - end, - maybe_remove_backup(). + Res = case rabbit_version:upgrades_required(local) of + {error, version_not_available} -> version_not_available; + {error, _} = Err -> throw(Err); + {ok, []} -> ok; + {ok, Upgrades} -> mnesia:stop(), + apply_upgrades(local, Upgrades, + fun () -> ok end) + end, + maybe_remove_backup(), + Res. %% ------------------------------------------------------------------- |
