in pkg/plugin/cloudtrace/client.go [171:206]
func (c *Client) TestConnection(ctx context.Context, projectID string) error {
start := time.Now()
listCtx, cancel := context.WithTimeout(ctx, time.Duration(time.Minute*1))
defer func() {
cancel()
log.DefaultLogger.Info("Finished testConnection", "duration", time.Since(start).String())
}()
it := c.tClient.ListTraces(listCtx, &cloudtracepb.ListTracesRequest{
ProjectId: projectID,
PageSize: 1,
StartTime: timestamppb.New(time.Now().Add(-testConnectionTimeWindow)),
})
if listCtx.Err() != nil {
return errors.New("timeout")
}
entry, err := it.Next()
if err == iterator.Done {
return errors.New("no entries")
}
if err == context.DeadlineExceeded {
return errors.New("list entries: timeout")
}
if err != nil {
return fmt.Errorf("list entries: %w", err)
}
if entry == nil {
return errors.New("no entries")
}
return nil
}