Skip to content

Commit

Permalink
Merge pull request #12039 from rabbitmq/mergify/bp/v4.0.x/pr-12037
Browse files Browse the repository at this point in the history
  • Loading branch information
the-mikedavis authored Aug 16, 2024
2 parents de0d5ae + c129a9c commit f7a3440
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 66 deletions.
47 changes: 0 additions & 47 deletions deps/rabbit/src/rabbit_db_queue.erl
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
count/1,
create_or_get/1,
set/1,
set_many/1,
delete/2,
update/2,
update_decorators/2,
Expand Down Expand Up @@ -962,52 +961,6 @@ set_in_khepri(Q) ->
Path = khepri_queue_path(amqqueue:get_name(Q)),
rabbit_khepri:put(Path, Q).

%% -------------------------------------------------------------------
%% set_many().
%% -------------------------------------------------------------------

-spec set_many([Queue]) -> ok when
Queue :: amqqueue:amqqueue().
%% @doc Writes a list of durable queue records.
%%
%% It is responsibility of the calling function to ensure all records are
%% durable.
%%
%% @private

set_many(Qs) ->
rabbit_khepri:handle_fallback(
#{mnesia => fun() -> set_many_in_mnesia(Qs) end,
khepri => fun() -> set_many_in_khepri(Qs) end
}).

set_many_in_mnesia(Qs) ->
{atomic, ok} =
%% Just to be nested in forget_node_for_queue
mnesia:transaction(
fun() ->
[begin
true = amqqueue:is_durable(Q),
ok = mnesia:write(?MNESIA_DURABLE_TABLE, Q, write)
end || Q <- Qs],
ok
end),
ok.

set_many_in_khepri(Qs) ->
rabbit_khepri:transaction(
fun() ->
[begin
true = amqqueue:is_durable(Q),
Path = khepri_queue_path(amqqueue:get_name(Q)),
case khepri_tx:put(Path, Q) of
ok -> ok;
Error -> khepri_tx:abort(Error)
end
end || Q <- Qs]
end),
ok.

%% -------------------------------------------------------------------
%% delete_transient().
%% -------------------------------------------------------------------
Expand Down
21 changes: 2 additions & 19 deletions deps/rabbit/test/rabbit_db_queue_SUITE.erl
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ all_tests() ->
count,
count_by_vhost,
set,
set_many,
delete,
update,
update_decorators,
exists,
get_all_durable,
get_all_durable_by_type,
Expand Down Expand Up @@ -282,23 +282,6 @@ set1(_Config) ->
?assertEqual({ok, Q}, rabbit_db_queue:get(QName)),
passed.

set_many(Config) ->
passed = rabbit_ct_broker_helpers:rpc(Config, 0, ?MODULE, set_many1, [Config]).

set_many1(_Config) ->
QName1 = rabbit_misc:r(?VHOST, queue, <<"test-queue1">>),
QName2 = rabbit_misc:r(?VHOST, queue, <<"test-queue2">>),
QName3 = rabbit_misc:r(?VHOST, queue, <<"test-queue3">>),
Q1 = new_queue(QName1, rabbit_classic_queue),
Q2 = new_queue(QName2, rabbit_classic_queue),
Q3 = new_queue(QName3, rabbit_classic_queue),
?assertEqual(ok, rabbit_db_queue:set_many([])),
?assertEqual(ok, rabbit_db_queue:set_many([Q1, Q2, Q3])),
?assertEqual({ok, Q1}, rabbit_db_queue:get_durable(QName1)),
?assertEqual({ok, Q2}, rabbit_db_queue:get_durable(QName2)),
?assertEqual({ok, Q3}, rabbit_db_queue:get_durable(QName3)),
passed.

delete(Config) ->
passed = rabbit_ct_broker_helpers:rpc(Config, 0, ?MODULE, delete1, [Config]).

Expand Down Expand Up @@ -341,7 +324,7 @@ update_decorators1(_Config) ->
?assertEqual({ok, Q}, rabbit_db_queue:get(QName)),
?assertEqual(undefined, amqqueue:get_decorators(Q)),
%% Not really testing we set a decorator, but at least the field is being updated
?assertEqual(ok, rabbit_db_queue:update_decorators(QName)),
?assertEqual(ok, rabbit_db_queue:update_decorators(QName, [])),
{ok, Q1} = rabbit_db_queue:get(QName),
?assertEqual([], amqqueue:get_decorators(Q1)),
passed.
Expand Down

0 comments on commit f7a3440

Please sign in to comment.