Skip to content

Commit 4a7a355

Browse files
Ayanda-Dmergify[bot]
authored andcommitted
Implement force_vhost_queues_shrink_member_to_current_member/1
(cherry picked from commit c26aa3b) (cherry picked from commit b03637f) (cherry picked from commit 023a46e)
1 parent c65cb4c commit 4a7a355

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

deps/rabbit/src/rabbit_quorum_queue.erl

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@
7676
-export([validate_policy/1, merge_policy_value/3]).
7777

7878
-export([force_shrink_member_to_current_member/2,
79+
force_vhost_queues_shrink_member_to_current_member/1,
7980
force_all_queues_shrink_member_to_current_member/0]).
8081

8182
-ifdef(TEST).
@@ -1909,8 +1910,17 @@ force_shrink_member_to_current_member(VHost, Name) ->
19091910
{error, not_found}
19101911
end.
19111912

1913+
force_vhost_queues_shrink_member_to_current_member(VHost) when is_binary(VHost) ->
1914+
rabbit_log:warning("Disaster recovery procedure: shrinking all quorum queues in vhost ~tp to a single node cluster", [VHost]),
1915+
ListQQs = fun() -> rabbit_amqqueue:list(VHost) end,
1916+
force_all_queues_shrink_member_to_current_member(ListQQs).
1917+
19121918
force_all_queues_shrink_member_to_current_member() ->
19131919
rabbit_log:warning("Disaster recovery procedure: shrinking all quorum queues to a single node cluster"),
1920+
ListQQs = fun() -> rabbit_amqqueue:list() end,
1921+
force_all_queues_shrink_member_to_current_member(ListQQs).
1922+
1923+
force_all_queues_shrink_member_to_current_member(ListQQFun) when is_function(ListQQFun) ->
19141924
Node = node(),
19151925
_ = [begin
19161926
QName = amqqueue:get_name(Q),
@@ -1925,7 +1935,7 @@ force_all_queues_shrink_member_to_current_member() ->
19251935
end,
19261936
_ = rabbit_amqqueue:update(QName, Fun),
19271937
_ = [ra:force_delete_server(?RA_SYSTEM, {RaName, N}) || N <- OtherNodes]
1928-
end || Q <- rabbit_amqqueue:list(), amqqueue:get_type(Q) == ?MODULE],
1938+
end || Q <- ListQQFun(), amqqueue:get_type(Q) == ?MODULE],
19291939
rabbit_log:warning("Disaster recovery procedure: shrinking finished"),
19301940
ok.
19311941

0 commit comments

Comments
 (0)