fix(banned): fix nit code

This commit is contained in:
firest 2022-10-18 11:34:43 +08:00
parent 3f1f244310
commit bdaadda479
4 changed files with 23 additions and 19 deletions

View File

@ -155,6 +155,7 @@ fields(ban) ->
hoconsc:mk(boolean(), #{
desc => ?DESC(clean),
required => false,
default => false,
example => false
})}
].

View File

@ -263,8 +263,7 @@ post_config_update(_KeyPath, _ConfigReq, NewConf, _OldConf, _AppEnvs) ->
clean_by_clientid(ClientId) ->
Nodes = mria_mnesia:running_nodes(),
_ = [emqx_delayed_proto_v2:clean_by_clientid(Node, ClientId) || Node <- Nodes],
ok.
emqx_delayed_proto_v2:clean_by_clientid(Nodes, ClientId).
do_clean_by_clientid(ClientId) ->
ets:select_delete(

View File

@ -27,6 +27,8 @@
-include_lib("emqx/include/bpapi.hrl").
-define(TIMEOUT, 15000).
introduced_in() ->
"5.0.9".
@ -39,7 +41,7 @@ get_delayed_message(Node, Id) ->
delete_delayed_message(Node, Id) ->
rpc:call(Node, emqx_delayed, delete_delayed_message, [Id]).
-spec clean_by_clientid(node(), emqx_types:clientid()) ->
emqx_delayed:with_id_return() | emqx_rpc:badrpc().
clean_by_clientid(Node, ClientID) ->
rpc:call(Node, emqx_delayed, do_clean_by_clientid, [ClientID]).
-spec clean_by_clientid(list(node()), emqx_types:clientid()) ->
emqx_rpc:erpc_multicall().
clean_by_clientid(Nodes, ClientID) ->
erpc:multicall(Nodes, emqx_delayed, do_clean_by_clientid, [ClientID], ?TIMEOUT).

View File

@ -252,21 +252,23 @@ t_banned_clean(_) ->
Now = erlang:system_time(second),
Who = {clientid, ClientId2},
emqx_banned:create(#{
who => Who,
by => <<"test">>,
reason => <<"test">>,
at => Now,
until => Now + 120,
clean => true
}),
try
emqx_banned:create(#{
who => Who,
by => <<"test">>,
reason => <<"test">>,
at => Now,
until => Now + 120,
clean => true
}),
timer:sleep(500),
timer:sleep(500),
?assertMatch(#{meta := #{count := 2}}, emqx_delayed:list(#{page => 1, limit => 10})),
emqx_banned:delete(Who),
emqx_delayed:clean_by_clientid(ClientId1),
?assertMatch(#{meta := #{count := 2}}, emqx_delayed:list(#{page => 1, limit => 10}))
after
emqx_banned:delete(Who),
emqx_delayed:clean_by_clientid(ClientId1)
end,
timer:sleep(500),
ok = emqtt:disconnect(C1),
ok = emqtt:disconnect(C2).