summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Watson <watson.timothy@gmail.com>2013-12-31 14:16:47 +0000
committerTim Watson <watson.timothy@gmail.com>2013-12-31 14:16:47 +0000
commit2d06b5ab148709540832459b54773b950d5022ed (patch)
tree67e76dc020b75188c45c10670a83bb53f38927ab
parent92378447a3eeaf5a65588cd265d89bb636eae193 (diff)
downloadrabbitmq-server-2d06b5ab148709540832459b54773b950d5022ed.tar.gz
Scrub un-used code and introduce a lookup-by-recovery-key API
-rw-r--r--src/rabbit_amqqueue.erl3
-rw-r--r--src/rabbit_queue_index.erl2
-rw-r--r--src/rabbit_recovery_terms.erl39
-rw-r--r--src/rabbit_variable_queue.erl1
4 files changed, 23 insertions, 22 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl
index 146ac776..4c9b86d4 100644
--- a/src/rabbit_amqqueue.erl
+++ b/src/rabbit_amqqueue.erl
@@ -236,7 +236,8 @@ recover_durable_queues(DurableQueues, RecoveryTerms) ->
queue_init(#amqqueue{ pid = Pid, name = Name }, RecoveryTerms) ->
RecoveryKey = queue_name_to_dir_name(Name),
- QueueRecoveryTerms = case lists:keyfind(RecoveryKey, 1, RecoveryTerms) of
+ QueueRecoveryTerms = case rabbit_recovery_terms:lookup(RecoveryKey,
+ RecoveryTerms) of
{_, Terms} -> Terms;
false -> non_clean_shutdown
end,
diff --git a/src/rabbit_queue_index.erl b/src/rabbit_queue_index.erl
index 03d248e0..543bd45a 100644
--- a/src/rabbit_queue_index.erl
+++ b/src/rabbit_queue_index.erl
@@ -389,8 +389,6 @@ recover(DurableQueues) ->
TermsAcc1};
false ->
ok = rabbit_file:recursive_delete([QueueDirPath]),
- %rabbit_recovery_indexes:remove_recovery_terms(
- % QueueDirPath),
{DurableAcc, TermsAcc}
end
end, {[], []}, QueueDirNames),
diff --git a/src/rabbit_recovery_terms.erl b/src/rabbit_recovery_terms.erl
index 558604cc..42d23500 100644
--- a/src/rabbit_recovery_terms.erl
+++ b/src/rabbit_recovery_terms.erl
@@ -26,6 +26,7 @@
start_link/0,
store/2,
read/1,
+ lookup/2,
clear/0,
flush/0]).
@@ -49,10 +50,11 @@
-spec(read(
file:filename()) ->
rabbit_types:ok_or_error(not_found)).
+-spec(lookup(
+ file:filename(),
+ [{file:filename(), [term()]}]) ->
+ {'ok', [term()]} | 'false').
-spec(clear() -> 'ok').
-%-spec(remove_recovery_terms(
-% file:filename()) ->
-% rabbit_types:ok_or_error(not_found)).
-endif. % use_specs
@@ -103,21 +105,12 @@ read(Name) ->
_ -> {error, not_found}
end.
-scrub(Name) ->
- filename:basename(Name).
-
-%remove_recovery_terms(Name) ->
-% case dets:member(?MODULE, Name) of
-% true -> dets:delete(?MODULE, Name);
-% _ -> {error, not_found}
-% end.
+lookup(RecoveryKey, RecoveryTerms) ->
+ lists:keyfind(to_dirname(RecoveryKey), 1, RecoveryTerms).
clear() ->
- dets:delete_all_objects(?MODULE).
-
-flush() ->
- dets:sync(?MODULE),
- ok.
+ dets:delete_all_objects(?MODULE),
+ flush().
init(_) ->
process_flag(trap_exit, true),
@@ -134,17 +127,27 @@ handle_info(_Info, State) ->
{noreply, State}.
terminate(_Reason, _State) ->
- ok = dets:sync(?MODULE),
+ ok = flush(),
ok = dets:close(?MODULE).
code_change(_OldVsn, State, _Extra) ->
{ok, State}.
+flush() ->
+ dets:sync(?MODULE).
+
create_table() ->
File = dets_filename(),
{ok, _} = dets:open_file(?MODULE, [{file, File},
{ram_file, true},
{auto_save, infinity}]).
+scrub(Name) ->
+ filename:basename(Name).
+
dets_filename() ->
- filename:join([rabbit_mnesia:dir(), "queues", "recovery.dets"]).
+ to_dirname("recovery.dets").
+
+to_dirname(FileName) ->
+ filename:join([rabbit_mnesia:dir(), "queues", FileName]).
+
diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl
index 1b29ceb3..b77c1bcb 100644
--- a/src/rabbit_variable_queue.erl
+++ b/src/rabbit_variable_queue.erl
@@ -433,7 +433,6 @@ init(#amqqueue { name = QueueName, durable = IsDurable }, new,
init(#amqqueue { name = QueueName, durable = true }, {_, Terms},
AsyncCallback, MsgOnDiskFun, MsgIdxOnDiskFun) ->
- %% Terms = rabbit_queue_index:shutdown_terms(QueueName),
{PRef, Recovery, Terms1} = process_recovery_terms(Terms),
PersistentClient = msg_store_client_init(?PERSISTENT_MSG_STORE, PRef,
MsgOnDiskFun, AsyncCallback),