github.com/filecoin-project/bacalhau@v0.3.23-0.20230228154132-45c989550ace/pkg/compute/bidstrategy/capacity_max_strategy.go (about) 1 package bidstrategy 2 3 import ( 4 "context" 5 6 "github.com/filecoin-project/bacalhau/pkg/model" 7 ) 8 9 type MaxCapacityStrategyParams struct { 10 MaxJobRequirements model.ResourceUsageData 11 } 12 13 type MaxCapacityStrategy struct { 14 maxJobRequirements model.ResourceUsageData 15 } 16 17 func NewMaxCapacityStrategy(params MaxCapacityStrategyParams) *MaxCapacityStrategy { 18 return &MaxCapacityStrategy{ 19 maxJobRequirements: params.MaxJobRequirements, 20 } 21 } 22 23 func (s *MaxCapacityStrategy) ShouldBid(ctx context.Context, request BidStrategyRequest) (BidStrategyResponse, error) { 24 return newShouldBidResponse(), nil 25 } 26 27 func (s *MaxCapacityStrategy) ShouldBidBasedOnUsage( 28 ctx context.Context, request BidStrategyRequest, usage model.ResourceUsageData) (BidStrategyResponse, error) { 29 // skip bidding if we don't have enough capacity available 30 if !usage.LessThanEq(s.maxJobRequirements) { 31 return BidStrategyResponse{ 32 ShouldBid: false, 33 Reason: "job requirements exceed max allowed per job", 34 }, nil 35 } 36 37 return newShouldBidResponse(), nil 38 }