Skip to content

Commit c13397b

Browse files
authored
Merge pull request #9756 from rabbitmq/improve-deprecated-features-callback-usage
rabbit_deprecated_features: Use `is_feature_used` callback only if not required
2 parents 5ed5f8d + f866f33 commit c13397b

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

deps/rabbit/src/rabbit_ff_controller.erl

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1273,20 +1273,29 @@ list_feature_flags_enabled_somewhere(
12731273
FeatureName :: rabbit_feature_flags:feature_name().
12741274

12751275
list_deprecated_features_that_cant_be_denied(
1276-
#{states_per_node := StatesPerNode}) ->
1276+
#{feature_flags := FeatureFlags,
1277+
states_per_node := StatesPerNode}) ->
12771278
ThisNode = node(),
12781279
States = maps:get(ThisNode, StatesPerNode),
12791280

12801281
maps:fold(
12811282
fun
12821283
(FeatureName, true, Acc) ->
1283-
#{ThisNode := IsUsed} = run_callback(
1284-
[ThisNode], FeatureName,
1285-
is_feature_used, #{}, infinity),
1286-
case IsUsed of
1287-
true -> [FeatureName | Acc];
1288-
false -> Acc;
1289-
_Error -> Acc
1284+
FeatureProps = maps:get(FeatureName, FeatureFlags),
1285+
Stability = rabbit_feature_flags:get_stability(FeatureProps),
1286+
case Stability of
1287+
required ->
1288+
Acc;
1289+
_ ->
1290+
#{ThisNode := IsUsed} = run_callback(
1291+
[ThisNode], FeatureName,
1292+
is_feature_used, #{},
1293+
infinity),
1294+
case IsUsed of
1295+
true -> [FeatureName | Acc];
1296+
false -> Acc;
1297+
_Error -> [FeatureName | Acc]
1298+
end
12901299
end;
12911300
(_FeatureName, false, Acc) ->
12921301
Acc

0 commit comments

Comments
 (0)