refactor(gcp_pubsub): always cleanup resources when calling `on_stop`

Fixes https://emqx.atlassian.net/browse/EMQX-9934

The way that this connector was structured already depended only on the resource ID.  This
PR just makes it completely independent of the resource state term, and also treats an
already absent pool as a success when stopping it.
This commit is contained in:
Thales Macedo Garitezi 2023-06-07 14:34:22 -03:00
parent 105c26afb5
commit d9aac63f82
1 changed files with 11 additions and 7 deletions

View File

@ -134,17 +134,21 @@ on_start(
end.
-spec on_stop(resource_id(), state()) -> ok | {error, term()}.
on_stop(
ResourceId,
_State = #{jwt_config := JWTConfig}
) ->
?tp(gcp_pubsub_stop, #{resource_id => ResourceId, jwt_config => JWTConfig}),
on_stop(ResourceId, _State) ->
?tp(gcp_pubsub_stop, #{resource_id => ResourceId}),
?SLOG(info, #{
msg => "stopping_gcp_pubsub_bridge",
connector => ResourceId
}),
emqx_connector_jwt:delete_jwt(?JWT_TABLE, ResourceId),
ehttpc_sup:stop_pool(ResourceId).
ok = emqx_connector_jwt:delete_jwt(?JWT_TABLE, ResourceId),
case ehttpc_sup:stop_pool(ResourceId) of
ok ->
ok;
{error, not_found} ->
ok;
Error ->
Error
end.
-spec on_query(
resource_id(),