Skip to content

Commit ce65586

Browse files
mkuratczykmichaelklishin
authored andcommitted
Allow "all" as a feature flag name
`rabbitmqctl enable_feature_flag all` enables all currently disabled feature flags. While rabbitmq/rabbitmq-cli#455 asked for `--all`, I decided to just use "all" for consistency with `rabbitmq-queues rebalance all`. Closes rabbitmq/rabbitmq-cli#455 (cherry picked from commit af9e877)
1 parent 1ed8f76 commit ce65586

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/enable_feature_flag_command.ex

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,16 @@ defmodule RabbitMQ.CLI.Ctl.Commands.EnableFeatureFlagCommand do
1717

1818
use RabbitMQ.CLI.Core.RequiresRabbitAppRunning
1919

20+
def run(["all"], %{node: node_name}) do
21+
case :rabbit_misc.rpc_call(node_name, :rabbit_feature_flags, :enable_all, []) do
22+
# Server does not support feature flags, consider none are available.
23+
# See rabbitmq/rabbitmq-cli#344 for context. MK.
24+
{:badrpc, {:EXIT, {:undef, _}}} -> {:error, :unsupported}
25+
{:badrpc, _} = err -> err
26+
other -> other
27+
end
28+
end
29+
2030
def run([feature_flag], %{node: node_name}) do
2131
case :rabbit_misc.rpc_call(node_name, :rabbit_feature_flags, :enable, [String.to_atom(feature_flag)]) do
2232
# Server does not support feature flags, consider none are available.
@@ -32,11 +42,13 @@ defmodule RabbitMQ.CLI.Ctl.Commands.EnableFeatureFlagCommand do
3242
end
3343
use RabbitMQ.CLI.DefaultOutput
3444

35-
def usage, do: "enable_feature_flag <feature_flag>"
45+
def usage, do: "enable_feature_flag < all | feature_flag >"
3646

3747
def help_section(), do: :feature_flags
3848

3949
def description(), do: "Enables a feature flag on target node"
4050

51+
def banner(["all"], _), do: "Enabling all feature flags ..."
52+
4153
def banner([feature_flag], _), do: "Enabling feature flag \"#{feature_flag}\" ..."
4254
end

deps/rabbitmq_cli/test/ctl/enable_feature_flag_test.exs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,12 @@ defmodule EnableFeatureFlagCommandTest do
5757
assert list_feature_flags(:enabled) |> Map.has_key?(context[:feature_flag])
5858
end
5959

60+
test "run: enabling all feature flags succeeds", context do
61+
enable_feature_flag context[:feature_flag]
62+
assert @command.run(["all"], context[:opts]) == :ok
63+
assert list_feature_flags(:enabled) |> Map.has_key?(context[:feature_flag])
64+
end
65+
6066
test "banner", context do
6167
assert @command.banner([context[:feature_flag]], context[:opts])
6268
=~ ~r/Enabling feature flag \"#{context[:feature_flag]}\" \.\.\./

0 commit comments

Comments
 (0)