func()

in pkg/plugin/cloudlogging/client.go [256:290]


func (c *Client) TestConnection(ctx context.Context, projectID string) error {
	start := time.Now()

	listCtx, cancel := context.WithTimeout(ctx, time.Duration(testConnectionTimeout))

	defer func() {
		cancel()
		log.DefaultLogger.Debug("Finished testConnection", "duration", time.Since(start).String())
	}()

	it := c.lClient.ListLogEntries(listCtx, &loggingpb.ListLogEntriesRequest{
		ResourceNames: []string{legacyProjectResourceName(projectID)},
		PageSize:      1,
	})

	if listCtx.Err() != nil {
		return errors.New("list entries: 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
}