Skip to content

Commit 35f12db

Browse files
committed
Fix rabbit_db_* issues and metadata_store_phase1_SUITE test suite
1 parent cf1430c commit 35f12db

File tree

4 files changed

+450
-464
lines changed

4 files changed

+450
-464
lines changed

deps/rabbit/src/rabbit_auth_backend_internal.erl

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -531,14 +531,6 @@ clear_permissions(Username, VirtualHost, ActingUser) ->
531531
{user_who_performed_action, ActingUser}]),
532532
R
533533
catch
534-
throw:{error, {no_such_vhost, _}} = Error ->
535-
rabbit_log:warning("Failed to clear permissions for user '~ts': virtual host '~ts' does not exist",
536-
[Username, VirtualHost]),
537-
throw(Error);
538-
throw:{error, {no_such_user, _}} = Error ->
539-
rabbit_log:warning("Failed to clear permissions for user '~ts': the user does not exist",
540-
[Username]),
541-
throw(Error);
542534
Class:Error:Stacktrace ->
543535
rabbit_log:warning("Failed to clear permissions for user '~ts' in virtual host '~ts': ~tp",
544536
[Username, VirtualHost, Error]),

deps/rabbit/src/rabbit_db_user.erl

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,36 @@
4141
%% for testing
4242
-export([clear/0]).
4343

44+
-ifdef(TEST).
45+
-export([get_in_mnesia/1,
46+
get_in_khepri/1,
47+
create_in_mnesia/2,
48+
create_in_khepri/2,
49+
get_all_in_mnesia/0,
50+
get_all_in_khepri/0,
51+
update_in_mnesia/2,
52+
update_in_khepri/2,
53+
delete_in_mnesia/1,
54+
delete_in_khepri/1,
55+
get_user_permissions_in_mnesia/2,
56+
get_user_permissions_in_khepri/2,
57+
set_user_permissions_in_mnesia/3,
58+
set_user_permissions_in_khepri/3,
59+
set_topic_permissions_in_mnesia/3,
60+
set_topic_permissions_in_khepri/3,
61+
match_user_permissions_in_mnesia/2,
62+
match_user_permissions_in_khepri/2,
63+
clear_user_permissions_in_mnesia/2,
64+
clear_user_permissions_in_khepri/2,
65+
get_topic_permissions_in_mnesia/3,
66+
get_topic_permissions_in_khepri/3,
67+
match_topic_permissions_in_mnesia/3,
68+
match_topic_permissions_in_khepri/3,
69+
clear_topic_permissions_in_mnesia/3,
70+
clear_topic_permissions_in_khepri/3
71+
]).
72+
-endif.
73+
4474
-define(MNESIA_TABLE, rabbit_user).
4575
-define(PERM_MNESIA_TABLE, rabbit_user_permission).
4676
-define(TOPIC_PERM_MNESIA_TABLE, rabbit_topic_permission).
@@ -334,7 +364,12 @@ match_user_permissions_in_mnesia_tx(Username, VHostName) ->
334364

335365
match_user_permissions_in_khepri('_' = _Username, '_' = _VHostName) ->
336366
Path = khepri_user_permission_path(?KHEPRI_WILDCARD_STAR, ?KHEPRI_WILDCARD_STAR),
337-
rabbit_khepri:match(Path);
367+
case rabbit_khepri:match(Path) of
368+
{ok, Map} ->
369+
maps:values(Map);
370+
_ ->
371+
[]
372+
end;
338373
match_user_permissions_in_khepri('_' = _Username, VHostName) ->
339374
rabbit_khepri:transaction(
340375
rabbit_db_vhost:with_fun_in_khepri_tx(
@@ -916,7 +951,11 @@ delete_topic_permission_in_mnesia_tx(Username, VHostName, ExchangeName) ->
916951

917952
delete_in_khepri(Username) ->
918953
Path = khepri_user_path(Username),
919-
rabbit_khepri:delete(Path).
954+
case rabbit_khepri:delete_or_fail(Path) of
955+
ok -> true;
956+
{error, {node_not_found, _}} -> false;
957+
_ -> false
958+
end.
920959

921960
user_permission_pattern(Username, VHostName) ->
922961
#user_permission{user_vhost = #user_vhost{

deps/rabbit/src/rabbit_db_vhost.erl

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,26 @@
3636
%% For testing
3737
-export([clear/0]).
3838

39+
-ifdef(TEST).
40+
-export([create_or_get_in_mnesia/2,
41+
create_or_get_in_khepri/2,
42+
get_in_mnesia/1,
43+
get_in_khepri/1,
44+
exists_in_mnesia/1,
45+
exists_in_khepri/1,
46+
list_in_mnesia/0,
47+
list_in_khepri/0,
48+
get_all_in_mnesia/0,
49+
get_all_in_khepri/0,
50+
update_in_mnesia/2,
51+
update_in_khepri/2,
52+
merge_metadata_in_mnesia/2,
53+
merge_metadata_in_khepri/2,
54+
delete_in_mnesia/1,
55+
delete_in_khepri/1
56+
]).
57+
-endif.
58+
3959
-define(MNESIA_TABLE, rabbit_vhost).
4060

4161
%% -------------------------------------------------------------------

0 commit comments

Comments
 (0)