func()

in src/statequery/assignments.go [35:61]


func (state *State) RetrieveAssignments(ctx context.Context, project string, cache *Cache) error {
	// Create shared BQ reservations client
	resClient, err := reservationSDK.NewClient(ctx)
	if err != nil {
		return err
	}
	defer resClient.Close()

	// Create shared resource manager client
	manClient, err := cloudresourcemanagerSDK.NewService(ctx)
	if err != nil {
		return err
	}

	// Create sync for concurrent invokations
	var wg sync.WaitGroup
	wg.Add(len(state.Reservations))
	for _, reservation := range state.Reservations {
		// Create a per-reservation routine to avoid blocking on I/O during API calls
		go retrieveAssignmentReservation(ctx, resClient, manClient, cache, project, state, reservation, &wg)
	}

	// Synchronize routines
	wg.Wait()

	return nil
}