Skip to content

Commit b03637f

Browse files
Ayanda-Dmichaelklishin
authored andcommitted
Implement force_vhost_queues_shrink_member_to_current_member/1
(cherry picked from commit c26aa3b)
1 parent 10dbde1 commit b03637f

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
@@ -74,6 +74,7 @@
7474
-export([validate_policy/1, merge_policy_value/3]).
7575

7676
-export([force_shrink_member_to_current_member/2,
77+
force_vhost_queues_shrink_member_to_current_member/1,
7778
force_all_queues_shrink_member_to_current_member/0]).
7879

7980
%% for backwards compatibility
@@ -1973,8 +1974,17 @@ force_shrink_member_to_current_member(VHost, Name) ->
19731974
{error, not_found}
19741975
end.
19751976

1977+
force_vhost_queues_shrink_member_to_current_member(VHost) when is_binary(VHost) ->
1978+
rabbit_log:warning("Disaster recovery procedure: shrinking all quorum queues in vhost ~tp to a single node cluster", [VHost]),
1979+
ListQQs = fun() -> rabbit_amqqueue:list(VHost) end,
1980+
force_all_queues_shrink_member_to_current_member(ListQQs).
1981+
19761982
force_all_queues_shrink_member_to_current_member() ->
19771983
rabbit_log:warning("Disaster recovery procedure: shrinking all quorum queues to a single node cluster"),
1984+
ListQQs = fun() -> rabbit_amqqueue:list() end,
1985+
force_all_queues_shrink_member_to_current_member(ListQQs).
1986+
1987+
force_all_queues_shrink_member_to_current_member(ListQQFun) when is_function(ListQQFun) ->
19781988
Node = node(),
19791989
_ = [begin
19801990
QName = amqqueue:get_name(Q),
@@ -1989,7 +1999,7 @@ force_all_queues_shrink_member_to_current_member() ->
19891999
end,
19902000
_ = rabbit_amqqueue:update(QName, Fun),
19912001
_ = [ra:force_delete_server(?RA_SYSTEM, {RaName, N}) || N <- OtherNodes]
1992-
end || Q <- rabbit_amqqueue:list(), amqqueue:get_type(Q) == ?MODULE],
2002+
end || Q <- ListQQFun(), amqqueue:get_type(Q) == ?MODULE],
19932003
rabbit_log:warning("Disaster recovery procedure: shrinking finished"),
19942004
ok.
19952005

0 commit comments

Comments
 (0)