summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/enable_feature_flag_command.ex14
-rw-r--r--deps/rabbitmq_cli/test/ctl/enable_feature_flag_test.exs6
2 files changed, 19 insertions, 1 deletions
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/enable_feature_flag_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/enable_feature_flag_command.ex
index ddcaec924d..b4108c7944 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/enable_feature_flag_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/enable_feature_flag_command.ex
@@ -17,6 +17,16 @@ defmodule RabbitMQ.CLI.Ctl.Commands.EnableFeatureFlagCommand do
use RabbitMQ.CLI.Core.RequiresRabbitAppRunning
+ def run(["all"], %{node: node_name}) do
+ case :rabbit_misc.rpc_call(node_name, :rabbit_feature_flags, :enable_all, []) do
+ # Server does not support feature flags, consider none are available.
+ # See rabbitmq/rabbitmq-cli#344 for context. MK.
+ {:badrpc, {:EXIT, {:undef, _}}} -> {:error, :unsupported}
+ {:badrpc, _} = err -> err
+ other -> other
+ end
+ end
+
def run([feature_flag], %{node: node_name}) do
case :rabbit_misc.rpc_call(node_name, :rabbit_feature_flags, :enable, [String.to_atom(feature_flag)]) do
# Server does not support feature flags, consider none are available.
@@ -32,11 +42,13 @@ defmodule RabbitMQ.CLI.Ctl.Commands.EnableFeatureFlagCommand do
end
use RabbitMQ.CLI.DefaultOutput
- def usage, do: "enable_feature_flag <feature_flag>"
+ def usage, do: "enable_feature_flag < all | feature_flag >"
def help_section(), do: :feature_flags
def description(), do: "Enables a feature flag on target node"
+ def banner(["all"], _), do: "Enabling all feature flags ..."
+
def banner([feature_flag], _), do: "Enabling feature flag \"#{feature_flag}\" ..."
end
diff --git a/deps/rabbitmq_cli/test/ctl/enable_feature_flag_test.exs b/deps/rabbitmq_cli/test/ctl/enable_feature_flag_test.exs
index e9700c6c86..f8a3e62920 100644
--- a/deps/rabbitmq_cli/test/ctl/enable_feature_flag_test.exs
+++ b/deps/rabbitmq_cli/test/ctl/enable_feature_flag_test.exs
@@ -57,6 +57,12 @@ defmodule EnableFeatureFlagCommandTest do
assert list_feature_flags(:enabled) |> Map.has_key?(context[:feature_flag])
end
+ test "run: enabling all feature flags succeeds", context do
+ enable_feature_flag context[:feature_flag]
+ assert @command.run(["all"], context[:opts]) == :ok
+ assert list_feature_flags(:enabled) |> Map.has_key?(context[:feature_flag])
+ end
+
test "banner", context do
assert @command.banner([context[:feature_flag]], context[:opts])
=~ ~r/Enabling feature flag \"#{context[:feature_flag]}\" \.\.\./