github.com/filecoin-project/bacalhau@v0.3.23-0.20230228154132-45c989550ace/pkg/compute/bidstrategy/input_stateless_strategy.go (about) 1 package bidstrategy 2 3 import ( 4 "context" 5 6 "github.com/filecoin-project/bacalhau/pkg/model" 7 ) 8 9 type StatelessJobStrategyParams struct { 10 RejectStatelessJobs bool 11 } 12 13 type StatelessJobStrategy struct { 14 rejectStatelessJobs bool 15 } 16 17 func NewStatelessJobStrategy(params StatelessJobStrategyParams) *StatelessJobStrategy { 18 return &StatelessJobStrategy{ 19 rejectStatelessJobs: params.RejectStatelessJobs, 20 } 21 } 22 23 func (s *StatelessJobStrategy) ShouldBid(ctx context.Context, request BidStrategyRequest) (BidStrategyResponse, error) { 24 // skip bidding if no input data is provided, and policy is to reject stateless jobs 25 if s.rejectStatelessJobs && len(request.Job.Spec.Inputs) == 0 { 26 return BidStrategyResponse{ShouldBid: false, Reason: "stateless jobs not accepted"}, nil 27 } 28 29 return newShouldBidResponse(), nil 30 } 31 32 func (s *StatelessJobStrategy) ShouldBidBasedOnUsage( 33 _ context.Context, _ BidStrategyRequest, _ model.ResourceUsageData) (BidStrategyResponse, error) { 34 return newShouldBidResponse(), nil 35 }