Skip to content

Commit 524d688

Browse files
Merge pull request #10839 from aaron-seo/aaron-seo/fix-enable-queue-totals
HTTP API: GET /api/queues/{vhost}/{name} now supports enable_queue_totals
2 parents 00ddf81 + 09d1ec1 commit 524d688

File tree

2 files changed

+28
-7
lines changed

2 files changed

+28
-7
lines changed

deps/rabbitmq_management/src/rabbit_mgmt_wm_queue.erl

+24-3
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,13 @@ to_json(ReqData, Context) ->
5050
rabbit_mgmt_format:strip_pids(Q)),
5151
rabbit_mgmt_util:reply(ensure_defaults(Payload), ReqData, Context);
5252
true ->
53-
rabbit_mgmt_util:reply(rabbit_mgmt_format:strip_pids(queue(ReqData)),
54-
ReqData, Context)
53+
Q = case rabbit_mgmt_util:enable_queue_totals(ReqData) of
54+
false -> queue(ReqData);
55+
true -> queue_with_totals(ReqData)
56+
end,
57+
rabbit_mgmt_util:reply(
58+
rabbit_mgmt_format:strip_pids(Q),
59+
ReqData, Context)
5560
end
5661
catch
5762
{error, invalid_range_parameters, Reason} ->
@@ -110,10 +115,26 @@ queue(ReqData) ->
110115
VHost -> queue(VHost, rabbit_mgmt_util:id(queue, ReqData))
111116
end.
112117

113-
114118
queue(VHost, QName) ->
115119
Name = rabbit_misc:r(VHost, queue, QName),
116120
case rabbit_amqqueue:lookup(Name) of
117121
{ok, Q} -> rabbit_mgmt_format:queue(Q);
118122
{error, not_found} -> not_found
119123
end.
124+
125+
queue_with_totals(ReqData) ->
126+
case rabbit_mgmt_util:vhost(ReqData) of
127+
not_found -> not_found;
128+
VHost -> queue_with_totals(VHost, rabbit_mgmt_util:id(queue, ReqData))
129+
end.
130+
131+
queue_with_totals(VHost, QName) ->
132+
Name = rabbit_misc:r(VHost, queue, QName),
133+
case rabbit_amqqueue:lookup(Name) of
134+
{ok, Q} -> QueueInfo = rabbit_amqqueue:info(Q,
135+
[name, durable, auto_delete, exclusive,
136+
owner_pid, arguments, type, state,
137+
policy, totals, online, type_specific]),
138+
rabbit_mgmt_format:queue_info(QueueInfo);
139+
{error, not_found} -> not_found
140+
end.

deps/rabbitmq_management/test/rabbit_mgmt_only_http_SUITE.erl

+4-4
Original file line numberDiff line numberDiff line change
@@ -516,14 +516,14 @@ queues_enable_totals_test(Config) ->
516516
vhost => <<"/">>,
517517
durable => true,
518518
auto_delete => false,
519-
exclusive => false,
519+
exclusive => null,
520520
arguments => #{'x-queue-type' => <<"quorum">>},
521521
leader => NodeBin,
522+
messages => 2,
523+
messages_ready => 2,
524+
messages_unacknowledged => 0,
522525
members => [NodeBin]}, Queue),
523526

524-
?assert(not maps:is_key(messages, Queue)),
525-
?assert(not maps:is_key(messages_ready, Queue)),
526-
?assert(not maps:is_key(messages_unacknowledged, Queue)),
527527
?assert(not maps:is_key(message_stats, Queue)),
528528
?assert(not maps:is_key(messages_details, Queue)),
529529
?assert(not maps:is_key(reductions_details, Queue)),

0 commit comments

Comments
 (0)