summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriele Santomaggio <g.santomaggio@gmail.com>2021-10-13 11:59:11 +0200
committerGabriele Santomaggio <g.santomaggio@gmail.com>2021-10-13 11:59:11 +0200
commit2eb625531db38da232cd956872dc8a0e7621d2a1 (patch)
tree8f2bd7770fe80342747fd6627147eb581e14ab8e
parentc270ebf03746ef8ea5df88e024a7a44ecf432614 (diff)
downloadrabbitmq-server-git-2eb625531db38da232cd956872dc8a0e7621d2a1.tar.gz
Disable the stream_plugin and stream management if the feature flag
is not enabled. fixes https://github.com/rabbitmq/rabbitmq-server/issues/3557
-rw-r--r--deps/rabbitmq_stream/src/rabbit_stream.erl6
-rw-r--r--deps/rabbitmq_stream_management/src/rabbit_stream_connection_consumers_mgmt.erl6
-rw-r--r--deps/rabbitmq_stream_management/src/rabbit_stream_connection_mgmt.erl6
-rw-r--r--deps/rabbitmq_stream_management/src/rabbit_stream_connection_publishers_mgmt.erl6
-rw-r--r--deps/rabbitmq_stream_management/src/rabbit_stream_connections_mgmt.erl16
-rw-r--r--deps/rabbitmq_stream_management/src/rabbit_stream_connections_vhost_mgmt.erl5
-rw-r--r--deps/rabbitmq_stream_management/src/rabbit_stream_consumers_mgmt.erl7
-rw-r--r--deps/rabbitmq_stream_management/src/rabbit_stream_management_utils.erl7
-rw-r--r--deps/rabbitmq_stream_management/src/rabbit_stream_publishers_mgmt.erl7
9 files changed, 52 insertions, 14 deletions
diff --git a/deps/rabbitmq_stream/src/rabbit_stream.erl b/deps/rabbitmq_stream/src/rabbit_stream.erl
index 1ccbdf6225..fac85472bc 100644
--- a/deps/rabbitmq_stream/src/rabbit_stream.erl
+++ b/deps/rabbitmq_stream/src/rabbit_stream.erl
@@ -48,10 +48,10 @@ start(_Type, _Args) ->
rabbit_stream_sup:start_link();
false ->
rabbit_log:warning(
- "Unable to start the stream plugin. The feature flag stream_queue is disabled \n"++
- "You need to enable it and restart the broker",
+ "Unable to start the stream plugin. The stream_queue feature flag is disabled. "++
+ "You need to enable it then disable and re-enable the rabbitmq_stream plugin. ",
+ "See https://www.rabbitmq.com/feature-flags.html ",
[]),
-
{ok, self()}
end.
diff --git a/deps/rabbitmq_stream_management/src/rabbit_stream_connection_consumers_mgmt.erl b/deps/rabbitmq_stream_management/src/rabbit_stream_connection_consumers_mgmt.erl
index 610120693a..f7627ed131 100644
--- a/deps/rabbitmq_stream_management/src/rabbit_stream_connection_consumers_mgmt.erl
+++ b/deps/rabbitmq_stream_management/src/rabbit_stream_connection_consumers_mgmt.erl
@@ -22,7 +22,11 @@
-include_lib("rabbit_common/include/rabbit.hrl").
dispatcher() ->
- [{"/stream/connections/:vhost/:connection/consumers", ?MODULE, []}].
+ case rabbit_stream_management_utils:is_feature_flag_enabled() of
+ true -> [{"/stream/connections/:vhost/:connection/consumers", ?MODULE, []}];
+ false -> []
+ end.
+
web_ui() ->
[].
diff --git a/deps/rabbitmq_stream_management/src/rabbit_stream_connection_mgmt.erl b/deps/rabbitmq_stream_management/src/rabbit_stream_connection_mgmt.erl
index 6b381fdf9b..47085d52f0 100644
--- a/deps/rabbitmq_stream_management/src/rabbit_stream_connection_mgmt.erl
+++ b/deps/rabbitmq_stream_management/src/rabbit_stream_connection_mgmt.erl
@@ -24,7 +24,11 @@
-include_lib("rabbit_common/include/rabbit.hrl").
dispatcher() ->
- [{"/stream/connections/:vhost/:connection", ?MODULE, []}].
+ case rabbit_stream_management_utils:is_feature_flag_enabled() of
+ true -> [{"/stream/connections/:vhost/:connection", ?MODULE, []}];
+ false -> []
+ end.
+
web_ui() ->
[].
diff --git a/deps/rabbitmq_stream_management/src/rabbit_stream_connection_publishers_mgmt.erl b/deps/rabbitmq_stream_management/src/rabbit_stream_connection_publishers_mgmt.erl
index 29ff71aa65..82690468eb 100644
--- a/deps/rabbitmq_stream_management/src/rabbit_stream_connection_publishers_mgmt.erl
+++ b/deps/rabbitmq_stream_management/src/rabbit_stream_connection_publishers_mgmt.erl
@@ -22,7 +22,11 @@
-include_lib("rabbit_common/include/rabbit.hrl").
dispatcher() ->
- [{"/stream/connections/:vhost/:connection/publishers", ?MODULE, []}].
+ case rabbit_stream_management_utils:is_feature_flag_enabled() of
+ true -> [{"/stream/connections/:vhost/:connection/publishers", ?MODULE, []}];
+ false -> []
+ end.
+
web_ui() ->
[].
diff --git a/deps/rabbitmq_stream_management/src/rabbit_stream_connections_mgmt.erl b/deps/rabbitmq_stream_management/src/rabbit_stream_connections_mgmt.erl
index 55370f49fa..5eceff862b 100644
--- a/deps/rabbitmq_stream_management/src/rabbit_stream_connections_mgmt.erl
+++ b/deps/rabbitmq_stream_management/src/rabbit_stream_connections_mgmt.erl
@@ -19,10 +19,22 @@
-include_lib("rabbitmq_management_agent/include/rabbit_mgmt_records.hrl").
dispatcher() ->
- [{"/stream/connections", ?MODULE, []}].
+ case rabbit_stream_management_utils:is_feature_flag_enabled() of
+ true -> [{"/stream/connections", ?MODULE, []}];
+ false -> []
+ end.
+
web_ui() ->
- [{javascript, <<"stream.js">>}].
+ case rabbit_stream_management_utils:is_feature_flag_enabled() of
+ true -> [{javascript, <<"stream.js">>}];
+ false -> rabbit_log:warning(
+ "Unable to show the stream management plugin. The stream_queue feature flag is disabled. "++
+ "You need to enable it then disable and re-enable the rabbitmq_stream_management plugin. ",
+ "See https://www.rabbitmq.com/feature-flags.html ",
+ []),
+ []
+ end.
%%--------------------------------------------------------------------
diff --git a/deps/rabbitmq_stream_management/src/rabbit_stream_connections_vhost_mgmt.erl b/deps/rabbitmq_stream_management/src/rabbit_stream_connections_vhost_mgmt.erl
index 01de23ac16..8aadac2077 100644
--- a/deps/rabbitmq_stream_management/src/rabbit_stream_connections_vhost_mgmt.erl
+++ b/deps/rabbitmq_stream_management/src/rabbit_stream_connections_vhost_mgmt.erl
@@ -21,7 +21,10 @@
-include_lib("amqp_client/include/amqp_client.hrl").
dispatcher() ->
- [{"/stream/connections/:vhost", ?MODULE, []}].
+ case rabbit_stream_management_utils:is_feature_flag_enabled() of
+ true -> [{"/stream/connections/:vhost", ?MODULE, []}];
+ false -> []
+ end.
web_ui() ->
[].
diff --git a/deps/rabbitmq_stream_management/src/rabbit_stream_consumers_mgmt.erl b/deps/rabbitmq_stream_management/src/rabbit_stream_consumers_mgmt.erl
index 762b95eaee..6c4e8b0565 100644
--- a/deps/rabbitmq_stream_management/src/rabbit_stream_consumers_mgmt.erl
+++ b/deps/rabbitmq_stream_management/src/rabbit_stream_consumers_mgmt.erl
@@ -21,8 +21,11 @@
-include_lib("rabbit_common/include/rabbit.hrl").
dispatcher() ->
- [{"/stream/consumers", ?MODULE, []},
- {"/stream/consumers/:vhost", ?MODULE, []}].
+ case rabbit_stream_management_utils:is_feature_flag_enabled() of
+ true -> [{"/stream/consumers", ?MODULE, []},
+ {"/stream/consumers/:vhost", ?MODULE, []}];
+ false -> []
+ end.
web_ui() ->
[].
diff --git a/deps/rabbitmq_stream_management/src/rabbit_stream_management_utils.erl b/deps/rabbitmq_stream_management/src/rabbit_stream_management_utils.erl
index 22f610422e..35112fd4f4 100644
--- a/deps/rabbitmq_stream_management/src/rabbit_stream_management_utils.erl
+++ b/deps/rabbitmq_stream_management/src/rabbit_stream_management_utils.erl
@@ -9,7 +9,8 @@
-export([keep_stream_connections/1,
keep_tracked_stream_connections/1,
- is_stream_connection/1]).
+ is_stream_connection/1,
+ is_feature_flag_enabled/0]).
-include_lib("rabbit_common/include/rabbit.hrl").
@@ -31,3 +32,7 @@ keep_tracked_stream_connections(Connections) ->
false
end,
Connections).
+
+is_feature_flag_enabled() ->
+ FeatureFlagsEnabled = rabbit_ff_registry:list(enabled),
+ maps:is_key(stream_queue, FeatureFlagsEnabled).
diff --git a/deps/rabbitmq_stream_management/src/rabbit_stream_publishers_mgmt.erl b/deps/rabbitmq_stream_management/src/rabbit_stream_publishers_mgmt.erl
index 567fa55cf8..0ec2f5a761 100644
--- a/deps/rabbitmq_stream_management/src/rabbit_stream_publishers_mgmt.erl
+++ b/deps/rabbitmq_stream_management/src/rabbit_stream_publishers_mgmt.erl
@@ -21,9 +21,12 @@
-include_lib("rabbit_common/include/rabbit.hrl").
dispatcher() ->
- [{"/stream/publishers", ?MODULE, []},
+ case rabbit_stream_management_utils:is_feature_flag_enabled() of
+ true -> [{"/stream/publishers", ?MODULE, []},
{"/stream/publishers/:vhost", ?MODULE, []},
- {"/stream/publishers/:vhost/:queue", ?MODULE, []}].
+ {"/stream/publishers/:vhost/:queue", ?MODULE, []}];
+ false -> []
+ end.
web_ui() ->
[].