Skip to content

Commit 976f0cf

Browse files
committed
Allow configuring whether queue types are enabled
This change adds config options for controlling the `is_enabled/0` queue type callback for classic queues, quorum queues and stream queues. This is useful for operators to be able to control whether users can declare these queues - i.e. to prevent users from declaring queue types which cannot be supported operationally. Setting queue_types.stream.enabled = false In a config file for example prevents stream queues from being declared.
1 parent 5fa6f7e commit 976f0cf

File tree

4 files changed

+15
-3
lines changed

4 files changed

+15
-3
lines changed

deps/rabbit/priv/schema/rabbit.schema

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2629,6 +2629,18 @@ end}.
26292629
{datatype, {enum, [true, false]}}
26302630
]}.
26312631

2632+
%% Enable queue types
2633+
2634+
{mapping, "queue_types.classic.enabled", "rabbit.classic_queues_enabled", [
2635+
{datatype, {enum, [true, false]}}
2636+
]}.
2637+
{mapping, "queue_types.stream.enabled", "rabbit.stream_queues_enabled", [
2638+
{datatype, {enum, [true, false]}}
2639+
]}.
2640+
{mapping, "queue_types.quorum.enabled", "rabbit.quorum_queues_enabled", [
2641+
{datatype, {enum, [true, false]}}
2642+
]}.
2643+
26322644
%%
26332645
%% Backing queue version
26342646
%%

deps/rabbit/src/rabbit_classic_queue.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ validate_policy(Args) ->
126126
end.
127127

128128
-spec is_enabled() -> boolean().
129-
is_enabled() -> true.
129+
is_enabled() -> application:get_env(rabbit, classic_queues_enabled, true).
130130

131131
-spec is_compatible(boolean(), boolean(), boolean()) -> boolean().
132132
is_compatible(_, _, _) ->

deps/rabbit/src/rabbit_quorum_queue.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ merge_policy_value(<<"target-group-size">>, Val, OpVal) ->
201201
%%----------- rabbit_queue_type ---------------------------------------------
202202

203203
-spec is_enabled() -> boolean().
204-
is_enabled() -> true.
204+
is_enabled() -> application:get_env(rabbit, quorum_queues_enabled, true).
205205

206206
-spec is_compatible(boolean(), boolean(), boolean()) -> boolean().
207207
is_compatible(_Durable = true,

deps/rabbit/src/rabbit_stream_queue.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@
133133
-type client() :: #stream_client{}.
134134

135135
-spec is_enabled() -> boolean().
136-
is_enabled() -> true.
136+
is_enabled() -> application:get_env(rabbit, stream_queues_enabled, true).
137137

138138
-spec is_compatible(boolean(), boolean(), boolean()) -> boolean().
139139
is_compatible(_Durable = true,

0 commit comments

Comments
 (0)