Skip to content

Commit f206ebb

Browse files
Merge pull request #10185 from rabbitmq/mk-revert-9550
Revert "HTTP API: DELETE /api/queues/{vhost}/{name} use internal API call
2 parents f852ddb + 7ebaae7 commit f206ebb

File tree

2 files changed

+11
-20
lines changed

2 files changed

+11
-20
lines changed

deps/rabbitmq_management/src/rabbit_mgmt_wm_queue.erl

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -71,29 +71,18 @@ accept_content(ReqData, Context) ->
7171
rabbit_mgmt_util:bad_request(iolist_to_binary(io_lib:format(F ++ "~n", A)), ReqData, Context)
7272
end.
7373

74-
delete_resource(ReqData, Context = #context{user = #user{username = ActingUser}}) ->
74+
delete_resource(ReqData, Context) ->
7575
%% We need to retrieve manually if-unused and if-empty, as the HTTP API uses '-'
7676
%% while the record uses '_'
7777
IfUnused = <<"true">> =:= rabbit_mgmt_util:qs_val(<<"if-unused">>, ReqData),
7878
IfEmpty = <<"true">> =:= rabbit_mgmt_util:qs_val(<<"if-empty">>, ReqData),
79-
VHost = rabbit_mgmt_util:id(vhost, ReqData),
80-
QName = rabbit_mgmt_util:id(queue, ReqData),
81-
Name = rabbit_misc:r(VHost, queue, QName),
82-
case rabbit_amqqueue:lookup(Name) of
83-
{ok, Q} ->
84-
IsExclusive = amqqueue:is_exclusive(Q),
85-
ExclusiveOwnerPid = amqqueue:get_exclusive_owner(Q),
86-
try rabbit_amqqueue:delete_with(Q, ExclusiveOwnerPid, IfUnused, IfEmpty, ActingUser, IsExclusive) of
87-
{ok, _} ->
88-
{true, ReqData, Context}
89-
catch
90-
_:#amqp_error{explanation = Explanation} ->
91-
rabbit_log:warning("Delete queue error: ~ts", [Explanation]),
92-
rabbit_mgmt_util:bad_request(list_to_binary(Explanation), ReqData, Context)
93-
end;
94-
{error, not_found} ->
95-
{true, ReqData, Context}
96-
end.
79+
Name = rabbit_mgmt_util:id(queue, ReqData),
80+
rabbit_mgmt_util:direct_request(
81+
'queue.delete',
82+
fun rabbit_mgmt_format:format_accept_content/1,
83+
[{queue, Name},
84+
{if_unused, IfUnused},
85+
{if_empty, IfEmpty}], "Delete queue error: ~ts", ReqData, Context).
9786

9887
is_authorized(ReqData, Context) ->
9988
rabbit_mgmt_util:is_authorized_vhost(ReqData, Context).

deps/rabbitmq_management/test/rabbit_mgmt_http_SUITE.erl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2050,7 +2050,9 @@ queue_purge_test(Config) ->
20502050
http_delete(Config, "/queues/%2F/myqueue/contents", {group, '2xx'}),
20512051
http_delete(Config, "/queues/%2F/badqueue/contents", ?NOT_FOUND),
20522052
http_delete(Config, "/queues/%2F/exclusive/contents", ?BAD_REQUEST),
2053-
http_delete(Config, "/queues/%2F/exclusive", {group, '2xx'}),
2053+
http_delete(Config, "/queues/%2F/exclusive", ?BAD_REQUEST),
2054+
#'basic.get_empty'{} =
2055+
amqp_channel:call(Ch, #'basic.get'{queue = <<"myqueue">>}),
20542056
close_channel(Ch),
20552057
close_connection(Conn),
20562058
http_delete(Config, "/queues/%2F/myqueue", {group, '2xx'}),

0 commit comments

Comments
 (0)