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:
parent
6ad8c29833
commit
6d83bc3e9b
|
@ -468,9 +468,14 @@ may_update_rule_params(Rule, Params = #{rawsql := SQL}) ->
|
|||
maps:remove(rawsql, Params));
|
||||
Reason -> throw(Reason)
|
||||
end;
|
||||
may_update_rule_params(Rule, Params = #{enabled := Enabled}) ->
|
||||
Enabled andalso refresh_rule(Rule),
|
||||
may_update_rule_params(Rule#rule{enabled = Enabled}, maps:remove(enabled, Params));
|
||||
may_update_rule_params(Rule = #rule{enabled = OldE, actions = Actions},
|
||||
Params = #{enabled := ToE}) ->
|
||||
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#rule{description = Descr}, maps:remove(description, Params));
|
||||
may_update_rule_params(Rule, Params = #{on_action_failed := OnFailed}) ->
|
||||
|
|
|
@ -77,6 +77,7 @@ groups() ->
|
|||
t_add_get_remove_rules,
|
||||
t_create_existing_rule,
|
||||
t_update_rule,
|
||||
t_disable_rule,
|
||||
t_get_rules_for,
|
||||
t_get_rules_for_2,
|
||||
t_get_rules_with_same_event,
|
||||
|
|
Loading…
Reference in New Issue