Skip to content

Commit

Permalink
Allow "all" as a feature flag name
Browse files Browse the repository at this point in the history
`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)
  • Loading branch information
mkuratczyk authored and michaelklishin committed Nov 17, 2020
1 parent 1ed8f76 commit ce65586
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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
6 changes: 6 additions & 0 deletions deps/rabbitmq_cli/test/ctl/enable_feature_flag_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -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]}\" \.\.\./
Expand Down

0 comments on commit ce65586

Please sign in to comment.