diff options
author | Michael Klishin <klishinm@vmware.com> | 2021-10-14 18:45:26 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-14 18:45:26 +0300 |
commit | 2140562209d43f30447ec156040e3826ba9868f0 (patch) | |
tree | 9c7a01fe95d38139a93621a4c96c8fe6c2ba05ab | |
parent | 6d0dc3f6b42b0aaa9737eb38964d6412e5d91ea6 (diff) | |
parent | 78e18afd57e30e33fd04a36b8eed452baa2452bb (diff) | |
download | rabbitmq-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
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() -> []. |