fix(s3-bridge): check for unobtainable credentials in healthcheck

This commit is contained in:
Andrew Mayorov 2024-02-22 16:18:13 +01:00
parent 69c7f858af
commit a30e8818fd
No known key found for this signature in database
GPG Key ID: 2837C62ACFBFED5D
1 changed files with 12 additions and 7 deletions

View File

@ -105,14 +105,19 @@ on_stop(InstId, _State = #{pool_name := PoolName}) ->
-spec on_get_status(_InstanceId :: resource_id(), state()) -> -spec on_get_status(_InstanceId :: resource_id(), state()) ->
health_check_status(). health_check_status().
on_get_status(_InstId, State = #{client_config := Config}) -> on_get_status(_InstId, State = #{client_config := Config}) ->
try erlcloud_s3:list_buckets(emqx_s3_client:aws_config(Config)) of case emqx_s3_client:aws_config(Config) of
Props when is_list(Props) -> {error, Reason} ->
?status_connected
catch
error:{aws_error, {http_error, _Code, _, Reason}} ->
{?status_disconnected, State, Reason}; {?status_disconnected, State, Reason};
error:{aws_error, {socket_error, Reason}} -> AWSConfig ->
{?status_disconnected, State, Reason} try erlcloud_s3:list_buckets(AWSConfig) of
Props when is_list(Props) ->
?status_connected
catch
error:{aws_error, {http_error, _Code, _, Reason}} ->
{?status_disconnected, State, Reason};
error:{aws_error, {socket_error, Reason}} ->
{?status_disconnected, State, Reason}
end
end. end.
-spec on_add_channel(_InstanceId :: resource_id(), state(), channel_id(), channel_config()) -> -spec on_add_channel(_InstanceId :: resource_id(), state(), channel_id(), channel_config()) ->