Merge pull request #9384 from terry-xiaoyu/utf8_resource_id_in_alarm_name
fix: generating alarm name for utf8 resource id failed
This commit is contained in:
commit
f1572ea84e
|
@ -822,7 +822,7 @@ find_type(ResId) ->
|
|||
{ok, Type}.
|
||||
|
||||
alarm_name_of_resource_down(Type, ResId) ->
|
||||
list_to_binary(io_lib:format("resource/~s/~s/down", [Type, ResId])).
|
||||
unicode:characters_to_binary(io_lib:format("resource/~ts/~ts/down", [Type, ResId])).
|
||||
|
||||
is_prober(<<?PROBE_RES_PREFIX, _/binary>>) ->
|
||||
true;
|
||||
|
|
|
@ -62,7 +62,8 @@ groups() ->
|
|||
t_create_rule,
|
||||
t_reset_metrics,
|
||||
t_reset_metrics_fallbacks,
|
||||
t_create_resource
|
||||
t_create_resource,
|
||||
t_clean_resource_alarms
|
||||
]},
|
||||
{actions, [],
|
||||
[t_inspect_action
|
||||
|
@ -307,21 +308,29 @@ t_create_resource(_Config) ->
|
|||
ok.
|
||||
|
||||
t_clean_resource_alarms(_Config) ->
|
||||
lists:foreach(fun(ResId) ->
|
||||
clean_resource_alarms(ResId)
|
||||
end, [<<"abc">>, <<"哈喽"/utf8>>]).
|
||||
|
||||
clean_resource_alarms(ResId) ->
|
||||
emqx_rule_registry:register_resource_types(
|
||||
[make_simple_debug_resource_type()]),
|
||||
ok = emqx_rule_engine:load_providers(),
|
||||
{ok, #resource{id = ResId}} = emqx_rule_engine:create_resource(
|
||||
#{type => built_in,
|
||||
#{id => ResId,
|
||||
type => built_in,
|
||||
config => #{},
|
||||
description => <<"debug resource">>}),
|
||||
?assert(true, is_binary(ResId)),
|
||||
Name = emqx_rule_engine:alarm_name_of_resource_down(ResId, built_in),
|
||||
_ = emqx_alarm:activate(Name, #{id => ResId, type => built_in}),
|
||||
AlarmExist = fun(#{name := AName}) -> AName == Name end,
|
||||
Len = length(lists:filter(AlarmExist, emqx_alarm:get_alarms())),
|
||||
?assert(Len == 1),
|
||||
Len = length(lists:filter(AlarmExist, emqx_alarm:get_alarms(activated))),
|
||||
?assertEqual(1, Len),
|
||||
emqx_rule_engine:ensure_resource_deleted(ResId),
|
||||
emqx_alarm:deactivate(Name),
|
||||
LenAfterRemove = length(lists:filter(AlarmExist, emqx_alarm:get_alarms(activated))),
|
||||
?assertEqual(0, LenAfterRemove),
|
||||
ok = emqx_rule_engine:unload_providers(),
|
||||
emqx_rule_registry:remove_resource(ResId),
|
||||
LenAfterRemove = length(lists:filter(AlarmExist, emqx_alarm:get_alarms())),
|
||||
?assert(LenAfterRemove == 0),
|
||||
ok.
|
||||
|
||||
%%------------------------------------------------------------------------------
|
||||
|
|
Loading…
Reference in New Issue