Skip to content

Commit 2eb6255

Browse files
committed
Disable the stream_plugin and stream management if the feature flag
is not enabled. fixes #3557
1 parent c270ebf commit 2eb6255

9 files changed

+52
-14
lines changed

deps/rabbitmq_stream/src/rabbit_stream.erl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,10 @@ start(_Type, _Args) ->
4848
rabbit_stream_sup:start_link();
4949
false ->
5050
rabbit_log:warning(
51-
"Unable to start the stream plugin. The feature flag stream_queue is disabled \n"++
52-
"You need to enable it and restart the broker",
51+
"Unable to start the stream plugin. The stream_queue feature flag is disabled. "++
52+
"You need to enable it then disable and re-enable the rabbitmq_stream plugin. ",
53+
"See https://www.rabbitmq.com/feature-flags.html ",
5354
[]),
54-
5555
{ok, self()}
5656
end.
5757

deps/rabbitmq_stream_management/src/rabbit_stream_connection_consumers_mgmt.erl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,11 @@
2222
-include_lib("rabbit_common/include/rabbit.hrl").
2323

2424
dispatcher() ->
25-
[{"/stream/connections/:vhost/:connection/consumers", ?MODULE, []}].
25+
case rabbit_stream_management_utils:is_feature_flag_enabled() of
26+
true -> [{"/stream/connections/:vhost/:connection/consumers", ?MODULE, []}];
27+
false -> []
28+
end.
29+
2630

2731
web_ui() ->
2832
[].

deps/rabbitmq_stream_management/src/rabbit_stream_connection_mgmt.erl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,11 @@
2424
-include_lib("rabbit_common/include/rabbit.hrl").
2525

2626
dispatcher() ->
27-
[{"/stream/connections/:vhost/:connection", ?MODULE, []}].
27+
case rabbit_stream_management_utils:is_feature_flag_enabled() of
28+
true -> [{"/stream/connections/:vhost/:connection", ?MODULE, []}];
29+
false -> []
30+
end.
31+
2832

2933
web_ui() ->
3034
[].

deps/rabbitmq_stream_management/src/rabbit_stream_connection_publishers_mgmt.erl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,11 @@
2222
-include_lib("rabbit_common/include/rabbit.hrl").
2323

2424
dispatcher() ->
25-
[{"/stream/connections/:vhost/:connection/publishers", ?MODULE, []}].
25+
case rabbit_stream_management_utils:is_feature_flag_enabled() of
26+
true -> [{"/stream/connections/:vhost/:connection/publishers", ?MODULE, []}];
27+
false -> []
28+
end.
29+
2630

2731
web_ui() ->
2832
[].

deps/rabbitmq_stream_management/src/rabbit_stream_connections_mgmt.erl

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,22 @@
1919
-include_lib("rabbitmq_management_agent/include/rabbit_mgmt_records.hrl").
2020

2121
dispatcher() ->
22-
[{"/stream/connections", ?MODULE, []}].
22+
case rabbit_stream_management_utils:is_feature_flag_enabled() of
23+
true -> [{"/stream/connections", ?MODULE, []}];
24+
false -> []
25+
end.
26+
2327

2428
web_ui() ->
25-
[{javascript, <<"stream.js">>}].
29+
case rabbit_stream_management_utils:is_feature_flag_enabled() of
30+
true -> [{javascript, <<"stream.js">>}];
31+
false -> rabbit_log:warning(
32+
"Unable to show the stream management plugin. The stream_queue feature flag is disabled. "++
33+
"You need to enable it then disable and re-enable the rabbitmq_stream_management plugin. ",
34+
"See https://www.rabbitmq.com/feature-flags.html ",
35+
[]),
36+
[]
37+
end.
2638

2739
%%--------------------------------------------------------------------
2840

deps/rabbitmq_stream_management/src/rabbit_stream_connections_vhost_mgmt.erl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,10 @@
2121
-include_lib("amqp_client/include/amqp_client.hrl").
2222

2323
dispatcher() ->
24-
[{"/stream/connections/:vhost", ?MODULE, []}].
24+
case rabbit_stream_management_utils:is_feature_flag_enabled() of
25+
true -> [{"/stream/connections/:vhost", ?MODULE, []}];
26+
false -> []
27+
end.
2528

2629
web_ui() ->
2730
[].

deps/rabbitmq_stream_management/src/rabbit_stream_consumers_mgmt.erl

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,11 @@
2121
-include_lib("rabbit_common/include/rabbit.hrl").
2222

2323
dispatcher() ->
24-
[{"/stream/consumers", ?MODULE, []},
25-
{"/stream/consumers/:vhost", ?MODULE, []}].
24+
case rabbit_stream_management_utils:is_feature_flag_enabled() of
25+
true -> [{"/stream/consumers", ?MODULE, []},
26+
{"/stream/consumers/:vhost", ?MODULE, []}];
27+
false -> []
28+
end.
2629

2730
web_ui() ->
2831
[].

deps/rabbitmq_stream_management/src/rabbit_stream_management_utils.erl

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99

1010
-export([keep_stream_connections/1,
1111
keep_tracked_stream_connections/1,
12-
is_stream_connection/1]).
12+
is_stream_connection/1,
13+
is_feature_flag_enabled/0]).
1314

1415
-include_lib("rabbit_common/include/rabbit.hrl").
1516

@@ -31,3 +32,7 @@ keep_tracked_stream_connections(Connections) ->
3132
false
3233
end,
3334
Connections).
35+
36+
is_feature_flag_enabled() ->
37+
FeatureFlagsEnabled = rabbit_ff_registry:list(enabled),
38+
maps:is_key(stream_queue, FeatureFlagsEnabled).

deps/rabbitmq_stream_management/src/rabbit_stream_publishers_mgmt.erl

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,12 @@
2121
-include_lib("rabbit_common/include/rabbit.hrl").
2222

2323
dispatcher() ->
24-
[{"/stream/publishers", ?MODULE, []},
24+
case rabbit_stream_management_utils:is_feature_flag_enabled() of
25+
true -> [{"/stream/publishers", ?MODULE, []},
2526
{"/stream/publishers/:vhost", ?MODULE, []},
26-
{"/stream/publishers/:vhost/:queue", ?MODULE, []}].
27+
{"/stream/publishers/:vhost/:queue", ?MODULE, []}];
28+
false -> []
29+
end.
2730

2831
web_ui() ->
2932
[].

0 commit comments

Comments
 (0)