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 }