From 898dc00f58dbae577ba4a78ec3823556cb97fbd2 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Sat, 16 Apr 2022 01:34:15 +0800 Subject: [PATCH] fix(rule): test resource failed from all nodes --- apps/emqx_rule_engine/src/emqx_rule_engine.erl | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/apps/emqx_rule_engine/src/emqx_rule_engine.erl b/apps/emqx_rule_engine/src/emqx_rule_engine.erl index b210d4f8d..d7f85ce5e 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_engine.erl @@ -39,6 +39,7 @@ , get_resource_status/1 , is_source_alive/1 , get_resource_params/1 + , ensure_resource_deleted/1 , delete_resource/1 , update_resource/2 ]). @@ -328,6 +329,7 @@ start_resource(ResId) -> {error, {resource_not_found, ResId}} end. +-dialyzer([{nowarn_function, test_resource/1}]). -spec(test_resource(#{type := _, config := _, _ => _}) -> ok | {error, Reason :: term()}). test_resource(#{type := Type} = Params) -> case emqx_rule_registry:find_resource_type(Type) of @@ -353,7 +355,8 @@ test_resource(#{type := Type} = Params) -> ?LOG(warning, "test resource failed, ~0p:~0p ~0p", [E, R, S]), {error, R} after - _ = ?CLUSTER_CALL(delete_resource, [ResId]) + _ = ?CLUSTER_CALL(ensure_resource_deleted, [ResId]), + ok end; not_found -> {error, {resource_type_not_found, Type}} @@ -390,6 +393,11 @@ get_resource_params(ResId) -> {error, resource_not_initialized} end. +-spec(ensure_resource_deleted(resource_id()) -> ok). +ensure_resource_deleted(ResId) -> + _ = delete_resource(ResId), + ok. + -spec(delete_resource(resource_id()) -> ok | {error, Reason :: term()}). delete_resource(ResId) -> case emqx_rule_registry:find_resource(ResId) of