github.com/hernad/nomad@v1.6.112/drivers/shared/executor/executor_plugin.go (about)

     1  // Copyright (c) HashiCorp, Inc.
     2  // SPDX-License-Identifier: MPL-2.0
     3  
     4  package executor
     5  
     6  import (
     7  	"context"
     8  
     9  	hclog "github.com/hashicorp/go-hclog"
    10  	plugin "github.com/hashicorp/go-plugin"
    11  	"github.com/hernad/nomad/drivers/shared/executor/proto"
    12  	"google.golang.org/grpc"
    13  )
    14  
    15  type ExecutorPlugin struct {
    16  	// TODO: support backwards compatibility with pre 0.9 NetRPC plugin
    17  	plugin.NetRPCUnsupportedPlugin
    18  	logger        hclog.Logger
    19  	fsIsolation   bool
    20  	cpuTotalTicks uint64
    21  }
    22  
    23  func (p *ExecutorPlugin) GRPCServer(broker *plugin.GRPCBroker, s *grpc.Server) error {
    24  	if p.fsIsolation {
    25  		proto.RegisterExecutorServer(s, &grpcExecutorServer{impl: NewExecutorWithIsolation(p.logger, p.cpuTotalTicks)})
    26  	} else {
    27  		proto.RegisterExecutorServer(s, &grpcExecutorServer{impl: NewExecutor(p.logger, p.cpuTotalTicks)})
    28  	}
    29  	return nil
    30  }
    31  
    32  func (p *ExecutorPlugin) GRPCClient(ctx context.Context, broker *plugin.GRPCBroker, c *grpc.ClientConn) (interface{}, error) {
    33  	return &grpcExecutorClient{
    34  		client:  proto.NewExecutorClient(c),
    35  		doneCtx: ctx,
    36  		logger:  p.logger,
    37  	}, nil
    38  }