summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <klishinm@vmware.com>2021-10-14 18:45:26 +0300
committerGitHub <noreply@github.com>2021-10-14 18:45:26 +0300
commit2140562209d43f30447ec156040e3826ba9868f0 (patch)
tree9c7a01fe95d38139a93621a4c96c8fe6c2ba05ab
parent6d0dc3f6b42b0aaa9737eb38964d6412e5d91ea6 (diff)
parent78e18afd57e30e33fd04a36b8eed452baa2452bb (diff)
downloadrabbitmq-server-git-2140562209d43f30447ec156040e3826ba9868f0.tar.gz
Merge pull request #3562 from rabbitmq/disable_stream_plugin_3557
Disable the stream_plugin if stream feature flag is not enabled
-rw-r--r--deps/rabbitmq_stream/src/rabbit_stream.erl22
-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, 66 insertions, 16 deletions
diff --git a/deps/rabbitmq_stream/src/rabbit_stream.erl b/deps/rabbitmq_stream/src/rabbit_stream.erl
index b2da103c6e..6d27dcbc7d 100644
--- a/deps/rabbitmq_stream/src/rabbit_stream.erl
+++ b/deps/rabbitmq_stream/src/rabbit_stream.erl
@@ -39,11 +39,23 @@
-include("rabbit_stream_metrics.hrl").
start(_Type, _Args) ->
- rabbit_stream_metrics:init(),
- rabbit_global_counters:init([{protocol, stream}], ?PROTOCOL_COUNTERS),
- rabbit_global_counters:init([{protocol, stream},
- {queue_type, ?STREAM_QUEUE_TYPE}]),
- rabbit_stream_sup:start_link().
+ FeatureFlagsEnabled = rabbit_ff_registry:list(enabled),
+ case maps:is_key(stream_queue, FeatureFlagsEnabled) of
+ true ->
+ rabbit_stream_metrics:init(),
+ rabbit_global_counters:init([{protocol, stream}], ?PROTOCOL_COUNTERS),
+ rabbit_global_counters:init([{protocol, stream}, {queue_type, ?STREAM_QUEUE_TYPE}]),
+ rabbit_stream_sup:start_link();
+ false ->
+ rabbit_log:warning(
+ "Unable to start the stream plugin. The stream_queue feature flag is disabled. "++
+ "Enable stream_queue feature flag then disable and re-enable the rabbitmq_stream plugin. ",
+ "See https://www.rabbitmq.com/feature-flags.html to learn more",
+ []),
+ {ok, self()}
+ end.
+
+
tls_host() ->
case application:get_env(rabbitmq_stream, advertised_tls_host,
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..7b8279c1f2 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. "++
+ "Enable stream_queue feature flag then disable and re-enable the rabbitmq_stream_management plugin. ",
+ "See https://www.rabbitmq.com/feature-flags.html to learn more",
+ []),
+ []
+ 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() ->
[].