grpc

package
v5.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 10, 2024 License: Apache-2.0 Imports: 21 Imported by: 7

Documentation

Overview

Package grpc contains the definition of the PluginServer which runs the GRPC plugin, and the PluginClient, which provides a simple interface to access the plugin functions.

Index

Constants

View Source
const (
	IPv4 = "IPv4"
	IPv6 = "IPv6"
)

Variables

This section is empty.

Functions

func BuildCallId

func BuildCallId() string

BuildCallId generates a unique id based on the current time this can be passed into plugin calls to assist with tracking parallel calls

func BuildConnectionCallId

func BuildConnectionCallId(callId, connectionName string) string

func CreateCarrierFromContext

func CreateCarrierFromContext(ctx context.Context) *proto.TraceContext

func ExtractContextFromCarrier

func ExtractContextFromCarrier(ctx context.Context, traceCtx *proto.TraceContext) context.Context

func GetQualValue

func GetQualValue(v *proto.QualValue) interface{}

func GetQualValueString added in v5.6.0

func GetQualValueString(v *proto.QualValue) string

func HandleGrpcError

func HandleGrpcError(err error, plugin, call string) error

func IsEOFError

func IsEOFError(err error) bool

func IsGRPCConnectivityError

func IsGRPCConnectivityError(err error) bool

func IsNotImplementedError

func IsNotImplementedError(err error) bool

func QualMapToLogLine added in v5.2.0

func QualMapToLogLine(qualMap map[string]*proto.Quals) string

func QualMapToString

func QualMapToString(qualMap map[string]*proto.Quals, pretty bool) string

func QualMapsEqual

func QualMapsEqual(l map[string]*proto.Quals, r map[string]*proto.Quals) bool

func QualToString

func QualToString(q *proto.Qual) string

Types

type EstablishMessageStreamFunc

type EstablishMessageStreamFunc func(stream proto.WrapperPlugin_EstablishMessageStreamServer) error

type ExecuteFunc

type ExecuteFunc func(req *proto.ExecuteRequest, stream row_stream.Sender) error

type GetRateLimitersFunc added in v5.6.0

type GetRateLimitersFunc func() []*proto.RateLimiterDefinition

type GetSchemaFunc

type GetSchemaFunc func(string) (*PluginSchema, error)

type GetSchemaModeFunc added in v5.8.0

type GetSchemaModeFunc func() string

type PluginClient

type PluginClient struct {
	Name string
	Stub pluginshared.WrapperPluginClient
	// contains filtered or unexported fields
}

PluginClient is the client object used by clients of the plugin

func NewPluginClient

func NewPluginClient(client *plugin.Client, pluginName string) (*PluginClient, error)

func NewPluginClientFromReattach

func NewPluginClientFromReattach(reattach *plugin.ReattachConfig, pluginName string) (*PluginClient, error)

func (*PluginClient) EstablishMessageStream

func (c *PluginClient) EstablishMessageStream() (proto.WrapperPlugin_EstablishMessageStreamClient, error)

func (*PluginClient) Execute

func (*PluginClient) Exited

func (c *PluginClient) Exited() bool

Exited returned whether the underlying client has exited, i.e. the plugin has terminated

func (*PluginClient) GetRateLimiters added in v5.6.0

func (*PluginClient) GetSchema

func (c *PluginClient) GetSchema(connectionName string) (*proto.Schema, error)

func (*PluginClient) GetSupportedOperations

func (c *PluginClient) GetSupportedOperations() (*proto.GetSupportedOperationsResponse, error)

func (*PluginClient) SetAllConnectionConfigs

func (*PluginClient) SetCacheOptions added in v5.4.0

func (*PluginClient) SetConnectionCacheOptions added in v5.6.1

func (*PluginClient) SetConnectionConfig

func (c *PluginClient) SetConnectionConfig(req *proto.SetConnectionConfigRequest) error

func (*PluginClient) SetRateLimiters added in v5.6.0

func (*PluginClient) UpdateConnectionConfigs

func (c *PluginClient) UpdateConnectionConfigs(req *proto.UpdateConnectionConfigsRequest) error

type PluginSchema

type PluginSchema struct {
	Schema       map[string]*proto.TableSchema
	Mode         string
	RateLimiters []*proto.RateLimiterDefinition
}

func NewPluginSchema added in v5.2.0

func NewPluginSchema(mode string) *PluginSchema

func (*PluginSchema) Equals added in v5.2.0

func (x *PluginSchema) Equals(other *PluginSchema) bool

type PluginServer

type PluginServer struct {
	proto.UnimplementedWrapperPluginServer
	// contains filtered or unexported fields
}

PluginServer is the server for a single plugin

func NewPluginServer

func NewPluginServer(pluginName string,
	setConnectionConfigFunc SetConnectionConfigFunc,
	setAllConnectionConfigsFunc SetAllConnectionConfigsFunc,
	updateConnectionConfigsFunc UpdateConnectionConfigsFunc,
	getSchemaFunc GetSchemaFunc,
	executeFunc ExecuteFunc,
	establishMessageStreamFunc EstablishMessageStreamFunc,
	setCacheOptionsFunc SetCacheOptionsFunc,
	setRateLimitersFunc SetRateLimitersFunc,
	getRateLimitersFunc GetRateLimitersFunc,
	setConnectionCacheOptionsFunc SetConnectionCacheOptionsFunc,
	GetSchemaModeFunc GetSchemaModeFunc,
) *PluginServer

func (PluginServer) CallExecuteAsync added in v5.8.0

func (s PluginServer) CallExecuteAsync(req *proto.ExecuteRequest, stream *anywhere.LocalPluginStream)

CallExecuteAsync directly calls the execute function and is used to execute in-process

func (PluginServer) EstablishMessageStream

func (s PluginServer) EstablishMessageStream(stream proto.WrapperPlugin_EstablishMessageStreamServer) error

func (PluginServer) Execute

Execute implements the WrapperPluginServer interface and is used to execute calls vis GRPC

func (PluginServer) GetRateLimiters added in v5.6.0

func (PluginServer) GetSchema

func (s PluginServer) GetSchema(req *proto.GetSchemaRequest) (res *proto.GetSchemaResponse, err error)

func (PluginServer) GetSchemaMode added in v5.8.0

func (s PluginServer) GetSchemaMode() string

func (PluginServer) Serve

func (s PluginServer) Serve()

func (PluginServer) SetAllConnectionConfigs

func (s PluginServer) SetAllConnectionConfigs(req *proto.SetAllConnectionConfigsRequest) (res *proto.SetConnectionConfigResponse, err error)

func (PluginServer) SetCacheOptions added in v5.4.0

func (PluginServer) SetConnectionCacheOptions added in v5.6.1

func (PluginServer) SetConnectionConfig

func (s PluginServer) SetConnectionConfig(req *proto.SetConnectionConfigRequest) (res *proto.SetConnectionConfigResponse, err error)

func (PluginServer) SetRateLimiters added in v5.6.0

func (PluginServer) UpdateConnectionConfigs

type SerializableQual added in v5.10.0

type SerializableQual struct {
	Column   string `json:"column"`
	Operator string `json:"operator"`
	Value    any    `json:"value"`
}

func QualMapToSerializableSlice added in v5.10.0

func QualMapToSerializableSlice(qualMap map[string]*proto.Quals) []SerializableQual

type SetAllConnectionConfigsFunc

type SetAllConnectionConfigsFunc func([]*proto.ConnectionConfig, int) (map[string]error, error)

type SetCacheOptionsFunc added in v5.4.0

type SetCacheOptionsFunc func(*proto.SetCacheOptionsRequest) error

type SetConnectionCacheOptionsFunc added in v5.6.1

type SetConnectionCacheOptionsFunc func(*proto.SetConnectionCacheOptionsRequest) error

type SetConnectionConfigFunc

type SetConnectionConfigFunc func(string, string) error

type SetRateLimitersFunc added in v5.6.0

type SetRateLimitersFunc func(*proto.SetRateLimitersRequest) error

type UpdateConnectionConfigsFunc

type UpdateConnectionConfigsFunc func([]*proto.ConnectionConfig, []*proto.ConnectionConfig, []*proto.ConnectionConfig) (map[string]error, error)

Directories

Path Synopsis
Package proto contains [protobuf] definitions and auto generated code for the plugin service interface.
Package proto contains [protobuf] definitions and auto generated code for the plugin service interface.
Package shared contains types which are shared between plugin implementation and plugin clients
Package shared contains types which are shared between plugin implementation and plugin clients

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL