fix(rule): destroy the actions when disabling the rule (#4232)

Merge the following PR from enterprise version:
https://github.com/emqx/emqx-rule-engine/pull/231
This commit is contained in:
Shawn 2021-02-24 13:24:23 +08:00 committed by GitHub
parent 6ad8c29833
commit 6d83bc3e9b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 3 deletions

View File

@ -468,9 +468,14 @@ may_update_rule_params(Rule, Params = #{rawsql := SQL}) ->
maps:remove(rawsql, Params)); maps:remove(rawsql, Params));
Reason -> throw(Reason) Reason -> throw(Reason)
end; end;
may_update_rule_params(Rule, Params = #{enabled := Enabled}) -> may_update_rule_params(Rule = #rule{enabled = OldE, actions = Actions},
Enabled andalso refresh_rule(Rule), Params = #{enabled := ToE}) ->
may_update_rule_params(Rule#rule{enabled = Enabled}, maps:remove(enabled, Params)); case {OldE, ToE} of
{false, true} -> refresh_rule(Rule);
{true, false} -> clear_actions(Actions);
_ -> ok
end,
may_update_rule_params(Rule#rule{enabled = ToE}, maps:remove(enabled, Params));
may_update_rule_params(Rule, Params = #{description := Descr}) -> may_update_rule_params(Rule, Params = #{description := Descr}) ->
may_update_rule_params(Rule#rule{description = Descr}, maps:remove(description, Params)); may_update_rule_params(Rule#rule{description = Descr}, maps:remove(description, Params));
may_update_rule_params(Rule, Params = #{on_action_failed := OnFailed}) -> may_update_rule_params(Rule, Params = #{on_action_failed := OnFailed}) ->

View File

@ -77,6 +77,7 @@ groups() ->
t_add_get_remove_rules, t_add_get_remove_rules,
t_create_existing_rule, t_create_existing_rule,
t_update_rule, t_update_rule,
t_disable_rule,
t_get_rules_for, t_get_rules_for,
t_get_rules_for_2, t_get_rules_for_2,
t_get_rules_with_same_event, t_get_rules_with_same_event,