diff options
author | Gabriele Santomaggio <g.santomaggio@gmail.com> | 2021-10-13 11:59:11 +0200 |
---|---|---|
committer | mergify-bot <noreply@mergify.io> | 2021-10-14 15:46:22 +0000 |
commit | 814c3f7f04254bd2c2c8a342d41d14a5e819835c (patch) | |
tree | 7c64d32bf40d145fcc069c691273e03374f141f3 | |
parent | 35084e7366f7f72517d9fde46f99d7ce93900567 (diff) | |
download | rabbitmq-server-git-814c3f7f04254bd2c2c8a342d41d14a5e819835c.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
(cherry picked from commit 2eb625531db38da232cd956872dc8a0e7621d2a1)
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() -> []. |