Skip to content

Commit cdd9ba1

Browse files
Merge pull request #14227 from rabbitmq/show-deprecated-feature-state
Show current state of deprecated features
2 parents 43523e8 + e7c2dc5 commit cdd9ba1

File tree

5 files changed

+23
-12
lines changed

5 files changed

+23
-12
lines changed

deps/rabbit/src/rabbit_depr_ff_extra.erl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,13 @@ cli_info0(DeprecatedFeature) ->
5858

5959
App = maps:get(provided_by, FeatureProps),
6060
DeprecationPhase = maps:get(deprecation_phase, FeatureProps, ""),
61+
State = maps:get(state, FeatureProps, ""),
6162
Desc = maps:get(desc, FeatureProps, ""),
6263
DocUrl = maps:get(doc_url, FeatureProps, ""),
6364
Info = #{name => FeatureName,
6465
desc => unicode:characters_to_binary(Desc),
6566
deprecation_phase => DeprecationPhase,
67+
state => State,
6668
doc_url => unicode:characters_to_binary(DocUrl),
6769
provided_by => App},
6870
[Info | Acc]

deps/rabbit/src/rabbit_deprecated_features.erl

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -361,9 +361,16 @@ get_warning(FeatureProps, Permitted) when is_map(FeatureProps) ->
361361
%% @returns A map of selected deprecated features.
362362

363363
list(all) ->
364-
maps:filter(
365-
fun(_, FeatureProps) -> ?IS_DEPRECATION(FeatureProps) end,
366-
rabbit_ff_registry_wrapper:list(all));
364+
maps:map(fun(FeatureName, FeatureProps) ->
365+
FeatureProps#{state => case is_permitted_nolog(FeatureName)
366+
of
367+
true -> permitted;
368+
false -> denied
369+
end}
370+
end,
371+
maps:filter(
372+
fun(_, FeatureProps) -> ?IS_DEPRECATION(FeatureProps) end,
373+
rabbit_ff_registry_wrapper:list(all)));
367374
list(used) ->
368375
maps:filter(
369376
fun(FeatureName, FeatureProps) ->

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ defmodule RabbitMQ.CLI.Ctl.Commands.ListDeprecatedFeaturesCommand do
1212
@behaviour RabbitMQ.CLI.CommandBehaviour
1313
use RabbitMQ.CLI.DefaultOutput
1414

15-
def formatter(), do: RabbitMQ.CLI.Formatters.Table
15+
def formatter(), do: RabbitMQ.CLI.Formatters.PrettyTable
1616

17-
@info_keys ~w(name deprecation_phase provided_by desc doc_url)a
17+
@info_keys ~w(name deprecation_phase state provided_by desc doc_url)a
1818

1919
def info_keys(), do: @info_keys
2020

@@ -23,7 +23,7 @@ defmodule RabbitMQ.CLI.Ctl.Commands.ListDeprecatedFeaturesCommand do
2323
def switches(), do: [used: :boolean]
2424

2525
def merge_defaults([], opts) do
26-
{["name", "deprecation_phase"], Map.merge(%{used: false}, opts)}
26+
{["name", "deprecation_phase", "state"], Map.merge(%{used: false}, opts)}
2727
end
2828

2929
def merge_defaults(args, opts) do

deps/rabbitmq_cli/test/ctl/list_deprecated_features_command_test.exs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@ defmodule ListDeprecatedFeaturesCommandTest do
2424
@df1 => %{
2525
desc: ~c"My deprecated feature #1",
2626
provided_by: :ListDeprecatedFeaturesCommandTest,
27-
deprecation_phase: :permitted_by_default
27+
deprecation_phase: :permitted_by_default,
2828
},
2929
@df2 => %{
3030
desc: ~c"My deprecated feature #2",
3131
provided_by: :ListDeprecatedFeaturesCommandTest,
32-
deprecation_phase: :removed
32+
deprecation_phase: :removed,
3333
}
3434
}
3535

@@ -47,8 +47,8 @@ defmodule ListDeprecatedFeaturesCommandTest do
4747
]
4848

4949
full_result = [
50-
[{:name, @df1}, {:deprecation_phase, :permitted_by_default}],
51-
[{:name, @df2}, {:deprecation_phase, :removed}]
50+
[{:name, @df1}, {:deprecation_phase, :permitted_by_default}, {:state, :permitted}],
51+
[{:name, @df2}, {:deprecation_phase, :removed}, {:state, :denied}]
5252
]
5353

5454
{
@@ -65,7 +65,7 @@ defmodule ListDeprecatedFeaturesCommandTest do
6565
end
6666

6767
test "merge_defaults with no command, print just use the names" do
68-
assert match?({["name", "deprecation_phase"], %{}}, @command.merge_defaults([], %{}))
68+
assert match?({["name", "deprecation_phase", "state"], %{}}, @command.merge_defaults([], %{}))
6969
end
7070

7171
test "validate: return bad_info_key on a single bad arg", context do
@@ -125,7 +125,7 @@ defmodule ListDeprecatedFeaturesCommandTest do
125125

126126
@tag test_timeout: 30000
127127
test "run: sufficiently long timeouts don't interfere with results", context do
128-
matches_found = @command.run(["name", "deprecation_phase"], context[:opts])
128+
matches_found = @command.run(["name", "deprecation_phase", "state"], context[:opts])
129129

130130
assert Enum.all?(context[:full_result], fn feature_name ->
131131
Enum.find(matches_found, fn found -> found == feature_name end)

deps/rabbitmq_management/priv/www/js/tmpl/deprecated-features.ejs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
<tr>
2525
<th><%= fmt_sort('Name', 'name') %></th>
2626
<th><%= fmt_sort('Deprecation phase', 'deprecation_phase') %></th>
27+
<th><%= fmt_sort('Current Configuration', 'state') %></th>
2728
<th>Description</th>
2829
</tr>
2930
</thead>
@@ -43,6 +44,7 @@
4344
<abbr class="status-<%= fmt_string(state_color) %>">In use</abbr>
4445
<% } %>
4546
<%= fmt_deprecation_phase(deprecated_feature.deprecation_phase, DEPRECATION_PHASES) %></td>
47+
<td><%= fmt_string(deprecated_feature.state) %></td>
4648
<td>
4749
<p><%= fmt_string(deprecated_feature.desc) %></p>
4850
<% if (deprecated_feature.doc_url) { %>

0 commit comments

Comments
 (0)