fix(resource): discard dry_run resource down alarm
This commit is contained in:
parent
9890b5aa5a
commit
9f69e3cad6
|
@ -214,6 +214,7 @@ init(Data) ->
|
||||||
{ok, connecting, Data, {next_event, internal, try_connect}}.
|
{ok, connecting, Data, {next_event, internal, try_connect}}.
|
||||||
|
|
||||||
terminate(_Reason, _State, Data) ->
|
terminate(_Reason, _State, Data) ->
|
||||||
|
_ = maybe_clear_alarm(Data#data.id),
|
||||||
ets:delete(?ETS_TABLE, Data#data.id),
|
ets:delete(?ETS_TABLE, Data#data.id),
|
||||||
ok.
|
ok.
|
||||||
|
|
||||||
|
@ -342,6 +343,7 @@ do_stop(#data{state = undefined} = _Data) ->
|
||||||
do_stop(Data) ->
|
do_stop(Data) ->
|
||||||
Result = emqx_resource:call_stop(Data#data.id, Data#data.mod, Data#data.state),
|
Result = emqx_resource:call_stop(Data#data.id, Data#data.mod, Data#data.state),
|
||||||
ets:delete(?ETS_TABLE, Data#data.id),
|
ets:delete(?ETS_TABLE, Data#data.id),
|
||||||
|
_ = maybe_clear_alarm(Data#data.id),
|
||||||
Result.
|
Result.
|
||||||
|
|
||||||
proc_name(Id) ->
|
proc_name(Id) ->
|
||||||
|
@ -386,22 +388,28 @@ with_health_check(Data, Func) ->
|
||||||
ResId = Data#data.id,
|
ResId = Data#data.id,
|
||||||
HCRes = emqx_resource:call_health_check(ResId, Data#data.mod, Data#data.state),
|
HCRes = emqx_resource:call_health_check(ResId, Data#data.mod, Data#data.state),
|
||||||
{Status, NewState, Err} = parse_health_check_result(HCRes, Data#data.state),
|
{Status, NewState, Err} = parse_health_check_result(HCRes, Data#data.state),
|
||||||
_ =
|
_ = maybe_alarm_resource_down(connected, ResId),
|
||||||
case Status of
|
|
||||||
connected ->
|
|
||||||
ok;
|
|
||||||
_ ->
|
|
||||||
emqx_alarm:activate(
|
|
||||||
ResId,
|
|
||||||
#{resource_id => ResId, reason => resource_down},
|
|
||||||
<<"resource down: ", ResId/binary>>
|
|
||||||
)
|
|
||||||
end,
|
|
||||||
UpdatedData = Data#data{
|
UpdatedData = Data#data{
|
||||||
state = NewState, status = Status, error = Err
|
state = NewState, status = Status, error = Err
|
||||||
},
|
},
|
||||||
Func(Status, UpdatedData).
|
Func(Status, UpdatedData).
|
||||||
|
|
||||||
|
maybe_alarm_resource_down(connected, _ResId) ->
|
||||||
|
ok;
|
||||||
|
maybe_alarm_resource_down(_Status, <<?TEST_ID_PREFIX, _/binary>>) ->
|
||||||
|
ok;
|
||||||
|
maybe_alarm_resource_down(_Status, ResId) ->
|
||||||
|
emqx_alarm:activate(
|
||||||
|
ResId,
|
||||||
|
#{resource_id => ResId, reason => resource_down},
|
||||||
|
<<"resource down: ", ResId/binary>>
|
||||||
|
).
|
||||||
|
|
||||||
|
maybe_clear_alarm(<<?TEST_ID_PREFIX, _/binary>>) ->
|
||||||
|
ok;
|
||||||
|
maybe_clear_alarm(ResId) ->
|
||||||
|
emqx_alarm:deactivate(ResId).
|
||||||
|
|
||||||
parse_health_check_result(Status, OldState) when ?IS_STATUS(Status) ->
|
parse_health_check_result(Status, OldState) when ?IS_STATUS(Status) ->
|
||||||
{Status, OldState, undefined};
|
{Status, OldState, undefined};
|
||||||
parse_health_check_result({Status, NewState}, _OldState) when ?IS_STATUS(Status) ->
|
parse_health_check_result({Status, NewState}, _OldState) when ?IS_STATUS(Status) ->
|
||||||
|
|
Loading…
Reference in New Issue