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)