in pkg/pricing/pricing.go [145:173]
func (p *Provider) UpdateOnDemandPricing(ctx context.Context) *Err {
// standard on-demand instances
var wg sync.WaitGroup
var onDemandPrices = map[string]float64{}
var onDemandErr error
wg.Add(1)
go func() {
defer wg.Done()
onDemandErr = p.fetchPricing(ctx, onDemandPage(onDemandPrices))
}()
wg.Wait()
p.mu.Lock()
defer p.mu.Unlock()
err := onDemandErr
if err != nil {
return &Err{error: err, lastUpdateTime: p.onDemandUpdateTime}
}
if len(onDemandPrices) == 0 {
return &Err{error: errors.New("no on-demand pricing found"), lastUpdateTime: p.onDemandUpdateTime}
}
p.onDemandPrices = lo.Assign(onDemandPrices)
p.onDemandUpdateTime = time.Now()
return nil
}