From 5f050b149be0f71dee1e6d8b0d916ff8baeba68f Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Wed, 22 Dec 2021 10:15:48 +0800 Subject: [PATCH 1/3] fix(rules): the schema for unsubscribe is messing from rule_test API --- apps/emqx_rule_engine/src/emqx_rule_api_schema.erl | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/emqx_rule_engine/src/emqx_rule_api_schema.erl b/apps/emqx_rule_engine/src/emqx_rule_api_schema.erl index 1caa8da23..d992cdc07 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_api_schema.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_api_schema.erl @@ -68,6 +68,7 @@ fields("rule_events") -> fields("rule_test") -> [ {"context", sc(hoconsc:union([ ref("ctx_pub") , ref("ctx_sub") + , ref("ctx_unsub") , ref("ctx_delivered") , ref("ctx_acked") , ref("ctx_dropped") From 9b4b3d2e8cdf3e01058c746d8335727dd8f18f92 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Wed, 22 Dec 2021 10:17:33 +0800 Subject: [PATCH 2/3] fix(rules): make the 'name' field of POST /rules mandatory --- apps/emqx_rule_engine/src/emqx_rule_engine_schema.erl | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/emqx_rule_engine/src/emqx_rule_engine_schema.erl b/apps/emqx_rule_engine/src/emqx_rule_engine_schema.erl index ba516bfa7..5d72d5a6d 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine_schema.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_engine_schema.erl @@ -182,6 +182,7 @@ rule_name() -> {"name", sc(binary(), #{ desc => "The name of the rule" , default => "" + , nullable => false , example => "foo" })}. From cd4227b8511809d3ba2b084153ba38ff47ab7325 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Wed, 22 Dec 2021 10:24:52 +0800 Subject: [PATCH 3/3] fix(rules): don't show the module name 'emqx_rule_outputs' in outputs --- apps/emqx_rule_engine/src/emqx_rule_engine_api.erl | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/emqx_rule_engine/src/emqx_rule_engine_api.erl b/apps/emqx_rule_engine/src/emqx_rule_engine_api.erl index 205f85488..cbfda16db 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine_api.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_engine_api.erl @@ -257,11 +257,16 @@ format_output(Outputs) -> [do_format_output(Out) || Out <- Outputs]. do_format_output(#{mod := Mod, func := Func, args := Args}) -> - #{function => list_to_binary(lists:concat([Mod,":",Func])), + #{function => printable_function_name(Mod, Func), args => maps:remove(preprocessed_tmpl, Args)}; do_format_output(BridgeChannelId) when is_binary(BridgeChannelId) -> BridgeChannelId. +printable_function_name(emqx_rule_outputs, Func) -> + Func; +printable_function_name(Mod, Func) -> + list_to_binary(lists:concat([Mod,":",Func])). + get_rule_metrics(Id) -> Format = fun (Node, #{matched := Matched, rate := Current,