diff --git a/deps/rabbit/src/rabbit_amqqueue_process.erl b/deps/rabbit/src/rabbit_amqqueue_process.erl index f1daf31f0a94..63f886bd3763 100644 --- a/deps/rabbit/src/rabbit_amqqueue_process.erl +++ b/deps/rabbit/src/rabbit_amqqueue_process.erl @@ -119,7 +119,9 @@ arguments, owner_pid, exclusive, - user_who_performed_action + user_who_performed_action, + leader, + members ]). -define(INFO_KEYS, [pid | ?CREATION_EVENT_KEYS ++ ?STATISTICS_KEYS -- [name, type]]). @@ -1083,6 +1085,8 @@ i(auto_delete, #q{q = Q}) -> amqqueue:is_auto_delete(Q); i(arguments, #q{q = Q}) -> amqqueue:get_arguments(Q); i(pid, _) -> self(); +i(leader, State) -> node(i(pid, State)); +i(members, State) -> [i(leader, State)]; i(owner_pid, #q{q = Q}) when ?amqqueue_exclusive_owner_is(Q, none) -> ''; i(owner_pid, #q{q = Q}) -> diff --git a/deps/rabbit/test/classic_queue_SUITE.erl b/deps/rabbit/test/classic_queue_SUITE.erl index 5b54d7150fb0..1336c6bdbcd4 100644 --- a/deps/rabbit/test/classic_queue_SUITE.erl +++ b/deps/rabbit/test/classic_queue_SUITE.erl @@ -83,6 +83,8 @@ leader_locator_client_local(Config) -> {<<"x-queue-leader-locator">>, longstr, <<"client-local">>}])), {ok, Leader0} = rabbit_ct_broker_helpers:rpc(Config, Server, rabbit_amqqueue, lookup, [rabbit_misc:r(<<"/">>, queue, Q)]), Leader = amqqueue:qnode(Leader0), + ?assertEqual([{leader, Leader}, {members, [Leader]}], + rabbit_ct_broker_helpers:rpc(Config, Server, rabbit_amqqueue, info, [Leader0, [leader, members]])), ?assertEqual(Server, Leader), ?assertMatch(#'queue.delete_ok'{}, amqp_channel:call(Ch, #'queue.delete'{queue = Q}))