diff options
| author | Anupama Singh <anupamasingh31@gmail.com> | 2020-07-09 15:14:06 +0200 |
|---|---|---|
| committer | Michael Klishin <michael@clojurewerkz.org> | 2020-09-02 04:28:59 +0300 |
| commit | f4650494784d096602cf999f57526e013bc1c74c (patch) | |
| tree | 992b653895d4fd717724ffdfb0220cffd645cbfd | |
| parent | b236f41953845b82adad0bb55084fddca12b2f91 (diff) | |
| download | rabbitmq-server-git-f4650494784d096602cf999f57526e013bc1c74c.tar.gz | |
Added new user_limits feature flag
| -rw-r--r-- | src/rabbit_core_ff.erl | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/rabbit_core_ff.erl b/src/rabbit_core_ff.erl index 63aa9b30f1..a251def11c 100644 --- a/src/rabbit_core_ff.erl +++ b/src/rabbit_core_ff.erl @@ -10,7 +10,8 @@ -export([quorum_queue_migration/3, implicit_default_bindings_migration/3, virtual_host_metadata_migration/3, - maintenance_mode_status_migration/3]). + maintenance_mode_status_migration/3, + user_limits_migration/3]). -rabbit_feature_flag( {quorum_queue, @@ -42,6 +43,13 @@ migration_fun => {?MODULE, maintenance_mode_status_migration} }}). +-rabbit_feature_flag( + {user_limits, + #{desc => "Configure connection and channel limits for a user", + stability => stable, + migration_fun => {?MODULE, user_limits_migration} + }}). + %% ------------------------------------------------------------------- %% Quorum queues. %% ------------------------------------------------------------------- @@ -141,3 +149,18 @@ maintenance_mode_status_migration(FeatureName, _FeatureProps, enable) -> end; maintenance_mode_status_migration(_FeatureName, _FeatureProps, is_enabled) -> rabbit_table:exists(rabbit_maintenance:status_table_name()). + +%% ------------------------------------------------------------------- +%% User limits. +%% ------------------------------------------------------------------- + +user_limits_migration(_FeatureName, _FeatureProps, enable) -> + Tab = rabbit_user, + rabbit_table:wait([Tab], _Retry = true), + Fun = fun(Row) -> internal_user:upgrade_to(internal_user_v2, Row) end, + case mnesia:transform_table(Tab, Fun, internal_user:fields(internal_user_v2)) of + {atomic, ok} -> ok; + {aborted, Reason} -> {error, Reason} + end; +user_limits_migration(_FeatureName, _FeatureProps, is_enabled) -> + mnesia:table_info(rabbit_user, attributes) =:= internal_user:fields(internal_user_v2). |
