Skip to content

Commit

Permalink
Implement force_vhost_queues_shrink_member_to_current_member/1
Browse files Browse the repository at this point in the history
(cherry picked from commit c26aa3b)
  • Loading branch information
Ayanda-D authored and michaelklishin committed Oct 7, 2024
1 parent 10dbde1 commit b03637f
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion deps/rabbit/src/rabbit_quorum_queue.erl
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@
-export([validate_policy/1, merge_policy_value/3]).

-export([force_shrink_member_to_current_member/2,
force_vhost_queues_shrink_member_to_current_member/1,
force_all_queues_shrink_member_to_current_member/0]).

%% for backwards compatibility
Expand Down Expand Up @@ -1973,8 +1974,17 @@ force_shrink_member_to_current_member(VHost, Name) ->
{error, not_found}
end.

force_vhost_queues_shrink_member_to_current_member(VHost) when is_binary(VHost) ->
rabbit_log:warning("Disaster recovery procedure: shrinking all quorum queues in vhost ~tp to a single node cluster", [VHost]),
ListQQs = fun() -> rabbit_amqqueue:list(VHost) end,
force_all_queues_shrink_member_to_current_member(ListQQs).

force_all_queues_shrink_member_to_current_member() ->
rabbit_log:warning("Disaster recovery procedure: shrinking all quorum queues to a single node cluster"),
ListQQs = fun() -> rabbit_amqqueue:list() end,
force_all_queues_shrink_member_to_current_member(ListQQs).

force_all_queues_shrink_member_to_current_member(ListQQFun) when is_function(ListQQFun) ->
Node = node(),
_ = [begin
QName = amqqueue:get_name(Q),
Expand All @@ -1989,7 +1999,7 @@ force_all_queues_shrink_member_to_current_member() ->
end,
_ = rabbit_amqqueue:update(QName, Fun),
_ = [ra:force_delete_server(?RA_SYSTEM, {RaName, N}) || N <- OtherNodes]
end || Q <- rabbit_amqqueue:list(), amqqueue:get_type(Q) == ?MODULE],
end || Q <- ListQQFun(), amqqueue:get_type(Q) == ?MODULE],
rabbit_log:warning("Disaster recovery procedure: shrinking finished"),
ok.

Expand Down

0 comments on commit b03637f

Please sign in to comment.