Exchanges: use exchange_type module delete/2 callback when deleting exchanges

This commit is contained in:
Iliia Khaprov 2025-02-14 11:15:49 +01:00
parent 8c8235ceab
commit ea0c35dc73
1 changed files with 3 additions and 1 deletions

View File

@ -471,11 +471,13 @@ delete(XName, IfUnused, Username) ->
?EXCHANGE_DELETE_IN_PROGRESS_COMPONENT,
XName#resource.name, true, Username),
case rabbit_db_exchange:delete(XName, IfUnused) of
{deleted, #exchange{name = XName} = X, Bs, Deletions} ->
{deleted, #exchange{name = XName, type = XType} = X, Bs, Deletions} ->
Deletions1 = rabbit_binding:add_deletion(
XName, X, deleted, Bs, Deletions),
ok = rabbit_binding:process_deletions(Deletions1),
ok = rabbit_binding:notify_deletions(Deletions1, Username),
{ok, XTypeModule} = rabbit_registry:lookup_type_module(exchange, XType),
ok = XTypeModule:delete(0, X),
ok;
{error, _} = Err ->
Err