From ac0639f6b125760c653f5fd660cc2bd21b8fd076 Mon Sep 17 00:00:00 2001 From: Turtle Date: Wed, 4 Aug 2021 14:10:45 +0800 Subject: [PATCH] fix(actions): fix republish actions payload is null --- apps/emqx_rule_engine/src/emqx_rule_actions.erl | 9 +++++++-- apps/emqx_rule_engine/src/emqx_rule_engine.appup.src | 8 ++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/apps/emqx_rule_engine/src/emqx_rule_actions.erl b/apps/emqx_rule_engine/src/emqx_rule_actions.erl index 61dc36b35..5d0dd463a 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_actions.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_actions.erl @@ -168,7 +168,7 @@ on_action_republish(Selected, _Envs = #{ flags = Flags, headers = #{republish_by => ActId}, topic = emqx_rule_utils:proc_tmpl(TopicTks, Selected), - payload = emqx_rule_utils:proc_tmpl(PayloadTks, Selected), + payload = format_msg(PayloadTks, Selected), timestamp = Timestamp }); @@ -191,7 +191,7 @@ on_action_republish(Selected, _Envs = #{ flags = #{dup => false, retain => false}, headers = #{republish_by => ActId}, topic = emqx_rule_utils:proc_tmpl(TopicTks, Selected), - payload = emqx_rule_utils:proc_tmpl(PayloadTks, Selected), + payload = format_msg(PayloadTks, Selected), timestamp = erlang:system_time(millisecond) }). @@ -206,3 +206,8 @@ on_action_create_do_nothing(ActId, Params) when is_binary(ActId) -> on_action_do_nothing(Selected, Envs) when is_map(Selected) -> emqx_rule_metrics:inc_actions_success(?bound_v('ActId', Envs)). + +format_msg([], Data) -> + emqx_json:encode(Data); +format_msg(Tokens, Data) -> + emqx_rule_utils:proc_tmpl(Tokens, Data). diff --git a/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src b/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src index 02d87189e..2771f71f7 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src +++ b/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src @@ -5,19 +5,23 @@ , {load_module, emqx_rule_engine, brutal_purge, soft_purge, []} , {load_module, emqx_rule_registry, brutal_purge, soft_purge, []} , {apply, {emqx_stats, cancel_update, [rule_registery_stats]}} + , {load_module, emqx_rule_actions, brutal_purge, soft_purge, []} ]}, {"4.3.1", [ {load_module, emqx_rule_engine, brutal_purge, soft_purge, []} , {load_module, emqx_rule_registry, brutal_purge, soft_purge, []} , {apply, {emqx_stats, cancel_update, [rule_registery_stats]}} + , {load_module, emqx_rule_actions, brutal_purge, soft_purge, []} ]}, {"4.3.2", [ {load_module, emqx_rule_registry, brutal_purge, soft_purge, []} , {apply, {emqx_stats, cancel_update, [rule_registery_stats]}} , {load_module, emqx_rule_engine, brutal_purge, soft_purge, []} + , {load_module, emqx_rule_actions, brutal_purge, soft_purge, []} ]}, {"4.3.3", [ {load_module, emqx_rule_engine, brutal_purge, soft_purge, []} + , {load_module, emqx_rule_actions, brutal_purge, soft_purge, []} ]}, {<<".*">>, []} ], @@ -27,19 +31,23 @@ , {load_module, emqx_rule_engine, brutal_purge, soft_purge, []} , {load_module, emqx_rule_registry, brutal_purge, soft_purge, []} , {apply, {emqx_stats, cancel_update, [rule_registery_stats]}} + , {load_module, emqx_rule_actions, brutal_purge, soft_purge, []} ]}, {"4.3.1", [ {load_module, emqx_rule_engine, brutal_purge, soft_purge, []} , {load_module, emqx_rule_registry, brutal_purge, soft_purge, []} , {apply, {emqx_stats, cancel_update, [rule_registery_stats]}} + , {load_module, emqx_rule_actions, brutal_purge, soft_purge, []} ]}, {"4.3.2", [ {load_module, emqx_rule_registry, brutal_purge, soft_purge, []} , {apply, {emqx_stats, cancel_update, [rule_registery_stats]}} , {load_module, emqx_rule_engine, brutal_purge, soft_purge, []} + , {load_module, emqx_rule_actions, brutal_purge, soft_purge, []} ]}, {"4.3.3", [ {load_module, emqx_rule_engine, brutal_purge, soft_purge, []} + , {load_module, emqx_rule_actions, brutal_purge, soft_purge, []} ]}, {<<".*">>, []} ]