github.com/filecoin-project/bacalhau@v0.3.23-0.20230228154132-45c989550ace/pkg/compute/bidstrategy/networking_strategy.go (about) 1 package bidstrategy 2 3 import ( 4 "context" 5 "fmt" 6 7 "github.com/filecoin-project/bacalhau/pkg/model" 8 ) 9 10 type NetworkingStrategy struct { 11 Accept bool 12 } 13 14 func NewNetworkingStrategy(accept bool) *NetworkingStrategy { 15 return &NetworkingStrategy{accept} 16 } 17 18 // ShouldBid implements BidStrategy 19 func (s *NetworkingStrategy) ShouldBid(ctx context.Context, request BidStrategyRequest) (BidStrategyResponse, error) { 20 shouldBid := s.Accept || request.Job.Spec.Network.Disabled() 21 return BidStrategyResponse{ 22 ShouldBid: shouldBid, 23 Reason: fmt.Sprintf("networking is enabled: %t", s.Accept), 24 }, nil 25 } 26 27 // ShouldBidBasedOnUsage implements BidStrategy 28 func (s *NetworkingStrategy) ShouldBidBasedOnUsage( 29 ctx context.Context, 30 request BidStrategyRequest, 31 resourceUsage model.ResourceUsageData, 32 ) (BidStrategyResponse, error) { 33 return s.ShouldBid(ctx, request) 34 } 35 36 var _ BidStrategy = (*NetworkingStrategy)(nil)