in internal/kms/sm.go [36:64]
func (smClient *secretManagerClient) GetSecretValue(ctx context.Context, request *kmssdk.GetSecretValueRequest) (*kmssdk.GetSecretValueResponseBody, error) {
runtime := &teautil.RuntimeOptions{}
runtime.Autoretry = tea.Bool(true)
runtime.MaxAttempts = tea.Int(3)
var ret = new(kmssdk.GetSecretValueResponse)
var err error
for i := 0; i < 3; i++ {
ret, err = smClient.client.GetSecretValueWithOptions(request, runtime)
if err != nil {
if sdkErr, ok := err.(*tea.SDKError); ok {
// throttling or unexpected errors
if *sdkErr.StatusCode == 429 || *sdkErr.StatusCode >= 500 {
time.Sleep(time.Duration(getWaitTimeExponential(i+1) * int64(time.Millisecond)))
continue
}
}
}
break
}
if err != nil {
if sdkErr, ok := err.(*tea.SDKError); ok {
return nil, &model.ErrorResponse{StatusCode: *sdkErr.StatusCode, ErrorMsg: fmt.Sprintf("failed to get secret [%s]: %v", *request.SecretName, sdkErr.Error())}
}
return nil, err
}
return ret.Body, nil
}