summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2022-08-04 10:12:52 +0200
committerGitHub <noreply@github.com>2022-08-04 10:12:52 +0200
commitd56951f62e0ab5f26189158080279d8539c1f660 (patch)
treebe750288a8707f3bf120d5758b2e20955cf87de6
parent357d79fba6e93d4c10b88f5cbdb4f7b3187000b6 (diff)
parentc4efdcc851e90d2f8fda81efb9cb022bfc9509cb (diff)
downloadrabbitmq-server-git-d56951f62e0ab5f26189158080279d8539c1f660.tar.gz
Merge pull request #5428 from rabbitmq/mergify/bp/v3.11.x/pr-5239
Remove pre-user_limits compatibility code (backport #5239)
-rw-r--r--deps/rabbit/src/internal_user.erl133
-rw-r--r--deps/rabbit/src/internal_user_v1.erl151
-rw-r--r--deps/rabbit/src/rabbit_auth_backend_internal.erl44
-rw-r--r--deps/rabbit/test/definition_import_SUITE.erl37
-rw-r--r--deps/rabbit/test/per_user_connection_channel_limit_SUITE.erl39
-rw-r--r--deps/rabbit/test/per_user_connection_channel_limit_partitions_SUITE.erl30
-rw-r--r--deps/rabbit/test/per_user_connection_channel_tracking_SUITE.erl30
-rw-r--r--deps/rabbitmq_management/BUILD.bazel2
-rw-r--r--deps/rabbitmq_management/test/rabbit_mgmt_http_SUITE.erl15
-rw-r--r--deps/rabbitmq_stream/test/rabbit_stream_SUITE.erl1
10 files changed, 94 insertions, 388 deletions
diff --git a/deps/rabbit/src/internal_user.erl b/deps/rabbit/src/internal_user.erl
index fdb65a485d..943058ac5a 100644
--- a/deps/rabbit/src/internal_user.erl
+++ b/deps/rabbit/src/internal_user.erl
@@ -36,7 +36,7 @@
-type(password_hash() :: binary()).
--type internal_user() :: internal_user_v1:internal_user_v1() | internal_user_v2().
+-type internal_user() :: internal_user_v2().
-record(internal_user, {
username :: username() | '_',
@@ -55,8 +55,7 @@
hashing_algorithm :: atom() | '_',
limits :: map()}).
--type internal_user_pattern() :: internal_user_v1:internal_user_v1_pattern() |
- internal_user_v2_pattern().
+-type internal_user_pattern() :: internal_user_v2_pattern().
-type internal_user_v2_pattern() :: #internal_user{
username :: username() | '_',
@@ -75,129 +74,85 @@
-spec new() -> internal_user().
new() ->
- case record_version_to_use() of
- ?record_version ->
- #internal_user{
- username = <<"">>,
- password_hash = <<"">>,
- tags = []
- };
- _ ->
- internal_user_v1:new()
- end.
+ #internal_user{
+ username = <<"">>,
+ password_hash = <<"">>,
+ tags = []
+ }.
-spec new(tuple()) -> internal_user().
new({hashing_algorithm, HashingAlgorithm}) ->
- case record_version_to_use() of
- ?record_version ->
- #internal_user{
- username = <<"">>,
- password_hash = <<"">>,
- tags = [],
- hashing_algorithm = HashingAlgorithm
- };
- _ ->
- internal_user_v1:new({hashing_algorithm, HashingAlgorithm})
- end;
+ #internal_user{
+ username = <<"">>,
+ password_hash = <<"">>,
+ tags = [],
+ hashing_algorithm = HashingAlgorithm
+ };
new({tags, Tags}) ->
- case record_version_to_use() of
- ?record_version ->
- #internal_user{
- username = <<"">>,
- password_hash = <<"">>,
- tags = Tags
- };
- _ ->
- internal_user_v1:new({tags, Tags})
- end.
-
--spec record_version_to_use() -> internal_user_v1 | internal_user_v2.
+ #internal_user{
+ username = <<"">>,
+ password_hash = <<"">>,
+ tags = Tags
+ }.
+
+-spec record_version_to_use() -> internal_user_v2.
record_version_to_use() ->
- case rabbit_feature_flags:is_enabled(user_limits) of
- true -> ?record_version;
- false -> internal_user_v1:record_version_to_use()
- end.
+ ?record_version.
-spec fields() -> list().
fields() ->
- case record_version_to_use() of
- ?record_version -> fields(?record_version);
- _ -> internal_user_v1:fields()
- end.
+ fields(?record_version).
-spec fields(atom()) -> list().
-fields(?record_version) -> record_info(fields, internal_user);
-fields(Version) -> internal_user_v1:fields(Version).
+fields(?record_version) -> record_info(fields, internal_user).
-spec upgrade(internal_user()) -> internal_user().
-upgrade(#internal_user{} = User) -> User;
-upgrade(OldUser) -> upgrade_to(record_version_to_use(), OldUser).
+upgrade(#internal_user{} = User) -> User.
--spec upgrade_to
-(internal_user_v2, internal_user()) -> internal_user_v2();
-(internal_user_v1, internal_user_v1:internal_user_v1()) -> internal_user_v1:internal_user_v1().
+-spec upgrade_to(internal_user_v2, internal_user()) -> internal_user_v2().
upgrade_to(?record_version, #internal_user{} = User) ->
User;
upgrade_to(?record_version, OldUser) ->
Fields = erlang:tuple_to_list(OldUser) ++ [#{}],
- #internal_user{} = erlang:list_to_tuple(Fields);
-upgrade_to(Version, OldUser) ->
- internal_user_v1:upgrade_to(Version, OldUser).
+ #internal_user{} = erlang:list_to_tuple(Fields).
-spec pattern_match_all() -> internal_user_pattern().
pattern_match_all() ->
- case record_version_to_use() of
- ?record_version -> #internal_user{_ = '_'};
- _ -> internal_user_v1:pattern_match_all()
- end.
+ #internal_user{_ = '_'}.
-spec get_username(internal_user()) -> username().
-get_username(#internal_user{username = Value}) -> Value;
-get_username(User) -> internal_user_v1:get_username(User).
+get_username(#internal_user{username = Value}) -> Value.
-spec get_password_hash(internal_user()) -> password_hash().
-get_password_hash(#internal_user{password_hash = Value}) -> Value;
-get_password_hash(User) -> internal_user_v1:get_password_hash(User).
+get_password_hash(#internal_user{password_hash = Value}) -> Value.
-spec get_tags(internal_user()) -> [atom()].
-get_tags(#internal_user{tags = Value}) -> Value;
-get_tags(User) -> internal_user_v1:get_tags(User).
+get_tags(#internal_user{tags = Value}) -> Value.
-spec get_hashing_algorithm(internal_user()) -> atom().
-get_hashing_algorithm(#internal_user{hashing_algorithm = Value}) -> Value;
-get_hashing_algorithm(User) -> internal_user_v1:get_hashing_algorithm(User).
+get_hashing_algorithm(#internal_user{hashing_algorithm = Value}) -> Value.
-spec get_limits(internal_user()) -> map().
-get_limits(#internal_user{limits = Value}) -> Value;
-get_limits(User) -> internal_user_v1:get_limits(User).
+get_limits(#internal_user{limits = Value}) -> Value.
-spec create_user(username(), password_hash(), atom()) -> internal_user().
create_user(Username, PasswordHash, HashingMod) ->
- case record_version_to_use() of
- ?record_version ->
- #internal_user{username = Username,
- password_hash = PasswordHash,
- tags = [],
- hashing_algorithm = HashingMod,
- limits = #{}
- };
- _ ->
- internal_user_v1:create_user(Username, PasswordHash, HashingMod)
- end.
+ #internal_user{username = Username,
+ password_hash = PasswordHash,
+ tags = [],
+ hashing_algorithm = HashingMod,
+ limits = #{}
+ }.
-spec set_password_hash(internal_user(), password_hash(), atom()) -> internal_user().
set_password_hash(#internal_user{} = User, PasswordHash, HashingAlgorithm) ->
User#internal_user{password_hash = PasswordHash,
- hashing_algorithm = HashingAlgorithm};
-set_password_hash(User, PasswordHash, HashingAlgorithm) ->
- internal_user_v1:set_password_hash(User, PasswordHash, HashingAlgorithm).
+ hashing_algorithm = HashingAlgorithm}.
-spec set_tags(internal_user(), [atom()]) -> internal_user().
set_tags(#internal_user{} = User, Tags) ->
- User#internal_user{tags = Tags};
-set_tags(User, Tags) ->
- internal_user_v1:set_tags(User, Tags).
+ User#internal_user{tags = Tags}.
-spec update_limits
(add, internal_user(), map()) -> internal_user();
@@ -205,12 +160,8 @@ set_tags(User, Tags) ->
update_limits(add, #internal_user{limits = Limits} = User, Term) ->
User#internal_user{limits = maps:merge(Limits, Term)};
update_limits(remove, #internal_user{limits = Limits} = User, LimitType) ->
- User#internal_user{limits = maps:remove(LimitType, Limits)};
-update_limits(Action, User, Term) ->
- internal_user_v1:update_limits(Action, User, Term).
+ User#internal_user{limits = maps:remove(LimitType, Limits)}.
-spec clear_limits(internal_user()) -> internal_user().
clear_limits(#internal_user{} = User) ->
- User#internal_user{limits = #{}};
-clear_limits(User) ->
- internal_user_v1:clear_limits(User).
+ User#internal_user{limits = #{}}.
diff --git a/deps/rabbit/src/internal_user_v1.erl b/deps/rabbit/src/internal_user_v1.erl
deleted file mode 100644
index 4a2be0462a..0000000000
--- a/deps/rabbit/src/internal_user_v1.erl
+++ /dev/null
@@ -1,151 +0,0 @@
-%% This Source Code Form is subject to the terms of the Mozilla Public
-%% License, v. 2.0. If a copy of the MPL was not distributed with this
-%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
-%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
-%%
-
--module(internal_user_v1).
-
--include_lib("rabbit_common/include/rabbit.hrl").
-
--export([
- new/0,
- new/1,
- record_version_to_use/0,
- fields/0,
- fields/1,
- upgrade/1,
- upgrade_to/2,
- pattern_match_all/0,
- get_username/1,
- get_password_hash/1,
- get_tags/1,
- get_hashing_algorithm/1,
- get_limits/1,
- create_user/3,
- set_password_hash/3,
- set_tags/2,
- update_limits/3,
- clear_limits/1
-]).
-
--define(record_version, ?MODULE).
-
--record(internal_user, {
- username :: internal_user:username() | '_',
- password_hash :: internal_user:password_hash() | '_',
- tags :: [atom()] | '_',
- %% password hashing implementation module,
- %% typically rabbit_password_hashing_* but can
- %% come from a plugin
- hashing_algorithm :: atom() | '_'}).
-
--type internal_user() :: internal_user_v1().
-
--type(internal_user_v1() ::
- #internal_user{username :: internal_user:username(),
- password_hash :: internal_user:password_hash(),
- tags :: [atom()],
- hashing_algorithm :: atom()}).
-
--type internal_user_pattern() :: internal_user_v1_pattern().
-
--type internal_user_v1_pattern() :: #internal_user{
- username :: internal_user:username() | '_',
- password_hash :: '_',
- tags :: '_',
- hashing_algorithm :: '_'
- }.
-
--export_type([internal_user/0,
- internal_user_v1/0,
- internal_user_pattern/0,
- internal_user_v1_pattern/0]).
-
--spec record_version_to_use() -> internal_user_v1.
-record_version_to_use() ->
- ?record_version.
-
--spec new() -> internal_user().
-new() ->
- #internal_user{
- username = <<"">>,
- password_hash = <<"">>,
- tags = []
- }.
-
--spec new(tuple()) -> internal_user().
-new({hashing_algorithm, HashingAlgorithm}) ->
- #internal_user{
- username = <<"">>,
- password_hash = <<"">>,
- hashing_algorithm = HashingAlgorithm,
- tags = []
- };
-new({tags, Tags}) ->
- #internal_user{
- username = <<"">>,
- password_hash = <<"">>,
- tags = Tags
- }.
-
--spec fields() -> list().
-fields() -> fields(?record_version).
-
--spec fields(atom()) -> list().
-fields(?record_version) -> record_info(fields, internal_user).
-
--spec upgrade(internal_user()) -> internal_user().
-upgrade(#internal_user{} = User) -> User.
-
--spec upgrade_to(internal_user_v1, internal_user()) -> internal_user().
-upgrade_to(?record_version, #internal_user{} = User) ->
- User.
-
--spec pattern_match_all() -> internal_user_pattern().
-pattern_match_all() -> #internal_user{_ = '_'}.
-
--spec get_username(internal_user()) -> internal_user:username().
-get_username(#internal_user{username = Value}) -> Value.
-
--spec get_password_hash(internal_user()) -> internal_user:password_hash().
-get_password_hash(#internal_user{password_hash = Value}) -> Value.
-
--spec get_tags(internal_user()) -> [atom()].
-get_tags(#internal_user{tags = Value}) -> Value.
-
--spec get_hashing_algorithm(internal_user()) -> atom().
-get_hashing_algorithm(#internal_user{hashing_algorithm = Value}) -> Value.
-
--spec get_limits(internal_user()) -> map().
-get_limits(_User) -> #{}.
-
--spec create_user(internal_user:username(), internal_user:password_hash(),
- atom()) -> internal_user().
-create_user(Username, PasswordHash, HashingMod) ->
- #internal_user{username = Username,
- password_hash = PasswordHash,
- tags = [],
- hashing_algorithm = HashingMod
- }.
-
--spec set_password_hash(internal_user:internal_user(),
- internal_user:password_hash(), atom()) -> internal_user().
-set_password_hash(#internal_user{} = User, PasswordHash, HashingAlgorithm) ->
- User#internal_user{password_hash = PasswordHash,
- hashing_algorithm = HashingAlgorithm}.
-
--spec set_tags(internal_user(), [atom()]) -> internal_user().
-set_tags(#internal_user{} = User, Tags) ->
- User#internal_user{tags = Tags}.
-
--spec update_limits
-(add, internal_user(), map()) -> internal_user();
-(remove, internal_user(), term()) -> internal_user().
-update_limits(_, User, _) ->
- User.
-
--spec clear_limits(internal_user()) -> internal_user().
-clear_limits(User) ->
- User.
diff --git a/deps/rabbit/src/rabbit_auth_backend_internal.erl b/deps/rabbit/src/rabbit_auth_backend_internal.erl
index 645d2dbbd4..cf6d4963c0 100644
--- a/deps/rabbit/src/rabbit_auth_backend_internal.erl
+++ b/deps/rabbit/src/rabbit_auth_backend_internal.erl
@@ -752,20 +752,15 @@ put_user(User, Version, ActingUser) ->
rabbit_credential_validation:validate(Username, Password) =:= ok
end,
- Limits = case rabbit_feature_flags:is_enabled(user_limits) of
- false ->
- undefined;
- true ->
- case maps:get(limits, User, undefined) of
- undefined ->
- undefined;
- Term ->
- case validate_user_limits(Term) of
- ok -> Term;
- Error -> throw(Error)
- end
- end
- end,
+ Limits = case maps:get(limits, User, undefined) of
+ undefined ->
+ undefined;
+ Term ->
+ case validate_user_limits(Term) of
+ ok -> Term;
+ Error -> throw(Error)
+ end
+ end,
case exists(Username) of
true ->
case {HasPassword, HasPasswordHash} of
@@ -847,22 +842,15 @@ preconfigure_permissions(Username, Map, ActingUser) when is_map(Map) ->
ok.
set_user_limits(Username, Definition, ActingUser) when is_list(Definition); is_binary(Definition) ->
- case rabbit_feature_flags:is_enabled(user_limits) of
- true ->
- case rabbit_json:try_decode(rabbit_data_coercion:to_binary(Definition)) of
- {ok, Term} ->
- validate_parameters_and_update_limit(Username, Term, ActingUser);
- {error, Reason} ->
- {error_string,
- rabbit_misc:format("Could not parse JSON document: ~tp", [Reason])}
- end;
- false -> {error_string, "cannot set any user limits: the user_limits feature flag is not enabled"}
+ case rabbit_json:try_decode(rabbit_data_coercion:to_binary(Definition)) of
+ {ok, Term} ->
+ validate_parameters_and_update_limit(Username, Term, ActingUser);
+ {error, Reason} ->
+ {error_string,
+ rabbit_misc:format("Could not parse JSON document: ~tp", [Reason])}
end;
set_user_limits(Username, Definition, ActingUser) when is_map(Definition) ->
- case rabbit_feature_flags:is_enabled(user_limits) of
- true -> validate_parameters_and_update_limit(Username, Definition, ActingUser);
- false -> {error_string, "cannot set any user limits: the user_limits feature flag is not enabled"}
- end.
+ validate_parameters_and_update_limit(Username, Definition, ActingUser).
validate_parameters_and_update_limit(Username, Term, ActingUser) ->
case validate_user_limits(Term) of
diff --git a/deps/rabbit/test/definition_import_SUITE.erl b/deps/rabbit/test/definition_import_SUITE.erl
index 35e5adff45..df1963e5a4 100644
--- a/deps/rabbit/test/definition_import_SUITE.erl
+++ b/deps/rabbit/test/definition_import_SUITE.erl
@@ -292,30 +292,19 @@ import_case16(Config) ->
import_case17(Config) -> import_invalid_file_case(Config, "failing_case17").
import_case18(Config) ->
- case rabbit_ct_helpers:is_mixed_versions() of
- false ->
- case rabbit_ct_broker_helpers:enable_feature_flag(Config, user_limits) of
- ok ->
- import_file_case(Config, "case18"),
- User = <<"limited_guest">>,
- UserIsImported =
- fun () ->
- case user_lookup(Config, User) of
- {error, not_found} -> false;
- _ -> true
- end
- end,
- rabbit_ct_helpers:await_condition(UserIsImported, 20000),
- {ok, UserRec} = user_lookup(Config, User),
- ?assertEqual(#{<<"max-connections">> => 2}, internal_user:get_limits(UserRec)),
- ok;
- Skip ->
- Skip
- end;
- _ ->
- %% skip the test in mixed version mode
- {skip, "Should not run in mixed version environments"}
- end.
+ import_file_case(Config, "case18"),
+ User = <<"limited_guest">>,
+ UserIsImported =
+ fun () ->
+ case user_lookup(Config, User) of
+ {error, not_found} -> false;
+ _ -> true
+ end
+ end,
+ rabbit_ct_helpers:await_condition(UserIsImported, 20000),
+ {ok, UserRec} = user_lookup(Config, User),
+ ?assertEqual(#{<<"max-connections">> => 2}, internal_user:get_limits(UserRec)),
+ ok.
import_case19(Config) ->
case rabbit_ct_helpers:is_mixed_versions() of
diff --git a/deps/rabbit/test/per_user_connection_channel_limit_SUITE.erl b/deps/rabbit/test/per_user_connection_channel_limit_SUITE.erl
index 589fdd97f4..470d77af48 100644
--- a/deps/rabbit/test/per_user_connection_channel_limit_SUITE.erl
+++ b/deps/rabbit/test/per_user_connection_channel_limit_SUITE.erl
@@ -75,24 +75,11 @@ init_per_group(cluster_size_1_network, Config) ->
Config1 = rabbit_ct_helpers:set_config(Config, [{connection_type, network}]),
init_per_multinode_group(cluster_size_1_network, Config1, 1);
init_per_group(cluster_size_2_network, Config) ->
- case rabbit_ct_helpers:is_mixed_versions() of
- true ->
- %% In a mixed 3.8/3.9 cluster, changes to rabbit_core_ff.erl imply that some
- %% feature flag related migrations cannot occur, and therefore user_limits
- %% cannot be enabled in a 3.8/3.9 mixed cluster
- {skip, "cluster_size_2_network is not mixed version compatible"};
- _ ->
- Config1 = rabbit_ct_helpers:set_config(Config, [{connection_type, network}]),
- init_per_multinode_group(cluster_size_2_network, Config1, 2)
- end;
+ Config1 = rabbit_ct_helpers:set_config(Config, [{connection_type, network}]),
+ init_per_multinode_group(cluster_size_2_network, Config1, 2);
init_per_group(cluster_size_2_direct, Config) ->
- case rabbit_ct_helpers:is_mixed_versions() of
- true ->
- {skip, "cluster_size_2_network is not mixed version compatible"};
- _ ->
- Config1 = rabbit_ct_helpers:set_config(Config, [{connection_type, direct}]),
- init_per_multinode_group(cluster_size_2_direct, Config1, 2)
- end;
+ Config1 = rabbit_ct_helpers:set_config(Config, [{connection_type, direct}]),
+ init_per_multinode_group(cluster_size_2_direct, Config1, 2);
init_per_group(cluster_rename, Config) ->
init_per_multinode_group(cluster_rename, Config, 2).
@@ -108,21 +95,9 @@ init_per_multinode_group(Group, Config, NodeCount) ->
% The broker is managed by {init,end}_per_testcase().
Config1;
_ ->
- Config2 = rabbit_ct_helpers:run_steps(
- Config1, rabbit_ct_broker_helpers:setup_steps() ++
- rabbit_ct_client_helpers:setup_steps()),
- EnableFF = rabbit_ct_broker_helpers:enable_feature_flag(
- Config2, user_limits),
- case EnableFF of
- ok ->
- Config2;
- {skip, _} = Skip ->
- end_per_group(Group, Config2),
- Skip;
- Other ->
- end_per_group(Group, Config2),
- {skip, Other}
- end
+ rabbit_ct_helpers:run_steps(
+ Config1, rabbit_ct_broker_helpers:setup_steps() ++
+ rabbit_ct_client_helpers:setup_steps())
end.
end_per_group(cluster_rename, Config) ->
diff --git a/deps/rabbit/test/per_user_connection_channel_limit_partitions_SUITE.erl b/deps/rabbit/test/per_user_connection_channel_limit_partitions_SUITE.erl
index ddfa98e649..455f6a01e1 100644
--- a/deps/rabbit/test/per_user_connection_channel_limit_partitions_SUITE.erl
+++ b/deps/rabbit/test/per_user_connection_channel_limit_partitions_SUITE.erl
@@ -51,16 +51,8 @@ end_per_suite(Config) ->
rabbit_ct_helpers:run_teardown_steps(Config).
init_per_group(net_ticktime_1 = Group, Config) ->
- case rabbit_ct_helpers:is_mixed_versions() of
- true ->
- %% In a mixed 3.8/3.9 cluster, changes to rabbit_core_ff.erl imply that some
- %% feature flag related migrations cannot occur, and therefore user_limits
- %% cannot be enabled in a 3.8/3.9 mixed cluster
- {skip, "group is not mixed version compatible"};
- _ ->
- Config1 = rabbit_ct_helpers:set_config(Config, [{net_ticktime, 1}]),
- init_per_multinode_group(Group, Config1, 3)
- end.
+ Config1 = rabbit_ct_helpers:set_config(Config, [{net_ticktime, 1}]),
+ init_per_multinode_group(Group, Config1, 3).
init_per_multinode_group(Group, Config, NodeCount) ->
Suffix = rabbit_ct_helpers:testcase_absname(Config, "", "-"),
@@ -68,21 +60,9 @@ init_per_multinode_group(Group, Config, NodeCount) ->
{rmq_nodes_count, NodeCount},
{rmq_nodename_suffix, Suffix}
]),
- Config2 = rabbit_ct_helpers:run_steps(
- Config1, rabbit_ct_broker_helpers:setup_steps() ++
- rabbit_ct_client_helpers:setup_steps()),
- EnableFF = rabbit_ct_broker_helpers:enable_feature_flag(
- Config2, user_limits),
- case EnableFF of
- ok ->
- Config2;
- {skip, _} = Skip ->
- end_per_group(Group, Config2),
- Skip;
- Other ->
- end_per_group(Group, Config2),
- {skip, Other}
- end.
+ rabbit_ct_helpers:run_steps(
+ Config1, rabbit_ct_broker_helpers:setup_steps() ++
+ rabbit_ct_client_helpers:setup_steps()).
end_per_group(_Group, Config) ->
rabbit_ct_helpers:run_steps(Config,
diff --git a/deps/rabbit/test/per_user_connection_channel_tracking_SUITE.erl b/deps/rabbit/test/per_user_connection_channel_tracking_SUITE.erl
index 0870465ba2..ba8a367695 100644
--- a/deps/rabbit/test/per_user_connection_channel_tracking_SUITE.erl
+++ b/deps/rabbit/test/per_user_connection_channel_tracking_SUITE.erl
@@ -63,16 +63,8 @@ init_per_group(cluster_size_1_network, Config) ->
Config1 = rabbit_ct_helpers:set_config(Config, [{connection_type, network}]),
init_per_multinode_group(cluster_size_1_network, Config1, 1);
init_per_group(cluster_size_2_network, Config) ->
- case rabbit_ct_helpers:is_mixed_versions() of
- false ->
- Config1 = rabbit_ct_helpers:set_config(Config, [{connection_type, network}]),
- init_per_multinode_group(cluster_size_2_network, Config1, 2);
- _ ->
- %% In a mixed 3.8/3.9 cluster, changes to rabbit_core_ff.erl imply that some
- %% feature flag related migrations cannot occur, and therefore user_limits
- %% cannot be enabled in a 3.8/3.9 mixed cluster
- {skip, "cluster_size_2_network is not mixed version compatible"}
- end;
+ Config1 = rabbit_ct_helpers:set_config(Config, [{connection_type, network}]),
+ init_per_multinode_group(cluster_size_2_network, Config1, 2);
init_per_group(cluster_size_1_direct, Config) ->
Config1 = rabbit_ct_helpers:set_config(Config, [{connection_type, direct}]),
init_per_multinode_group(cluster_size_1_direct, Config1, 1);
@@ -86,21 +78,9 @@ init_per_multinode_group(Group, Config, NodeCount) ->
{rmq_nodes_count, NodeCount},
{rmq_nodename_suffix, Suffix}
]),
- Config2 = rabbit_ct_helpers:run_steps(
- Config1, rabbit_ct_broker_helpers:setup_steps() ++
- rabbit_ct_client_helpers:setup_steps()),
- EnableFF = rabbit_ct_broker_helpers:enable_feature_flag(
- Config2, user_limits),
- case EnableFF of
- ok ->
- Config2;
- {skip, _} = Skip ->
- end_per_group(Group, Config2),
- Skip;
- Other ->
- end_per_group(Group, Config2),
- {skip, Other}
- end.
+ rabbit_ct_helpers:run_steps(
+ Config1, rabbit_ct_broker_helpers:setup_steps() ++
+ rabbit_ct_client_helpers:setup_steps()).
end_per_group(_Group, Config) ->
rabbit_ct_helpers:run_steps(Config,
diff --git a/deps/rabbitmq_management/BUILD.bazel b/deps/rabbitmq_management/BUILD.bazel
index 9b8840b38f..ab8a4cc322 100644
--- a/deps/rabbitmq_management/BUILD.bazel
+++ b/deps/rabbitmq_management/BUILD.bazel
@@ -149,7 +149,7 @@ suites = [
additional_beam = [
":rabbit_mgmt_runtime_parameters_util",
],
- shard_count = 3,
+ shard_count = 2,
),
rabbitmq_integration_suite(
PACKAGE,
diff --git a/deps/rabbitmq_management/test/rabbit_mgmt_http_SUITE.erl b/deps/rabbitmq_management/test/rabbit_mgmt_http_SUITE.erl
index 6e0c706021..323128a1b1 100644
--- a/deps/rabbitmq_management/test/rabbit_mgmt_http_SUITE.erl
+++ b/deps/rabbitmq_management/test/rabbit_mgmt_http_SUITE.erl
@@ -38,18 +38,13 @@
all() ->
[
{group, all_tests_with_prefix},
- {group, all_tests_without_prefix},
- {group, user_limits_ff}
+ {group, all_tests_without_prefix}
].
groups() ->
[
{all_tests_with_prefix, [], all_tests()},
- {all_tests_without_prefix, [], all_tests()},
- {user_limits_ff, [], [
- user_limits_list_test,
- user_limit_set_test
- ]}
+ {all_tests_without_prefix, [], all_tests()}
].
all_tests() -> [
@@ -148,7 +143,9 @@ all_tests() -> [
disable_basic_auth_test,
login_test,
csp_headers_test,
- auth_attempts_test
+ auth_attempts_test,
+ user_limits_list_test,
+ user_limit_set_test
].
%% -------------------------------------------------------------------
@@ -221,8 +218,6 @@ init_per_group(all_tests_with_prefix=Group, Config0) ->
end_per_group(Group, Config3),
{skip, "Quorum queues are unsupported"}
end;
-init_per_group(user_limits_ff = Group, Config0) ->
- enable_feature_flag_or_skip(user_limits, Group, Config0);
init_per_group(Group, Config0) ->
enable_feature_flag_or_skip(quorum_queue, Group, Config0).
diff --git a/deps/rabbitmq_stream/test/rabbit_stream_SUITE.erl b/deps/rabbitmq_stream/test/rabbit_stream_SUITE.erl
index 9004c47ef6..5a1e768a95 100644
--- a/deps/rabbitmq_stream/test/rabbit_stream_SUITE.erl
+++ b/deps/rabbitmq_stream/test/rabbit_stream_SUITE.erl
@@ -84,7 +84,6 @@ init_per_group(Group, Config)
[classic_mirrored_queue_version,
implicit_default_bindings,
maintenance_mode_status,
- user_limits,
virtual_host_metadata,
quorum_queue,
stream_queue]}]})