grpcplugin

package
v0.188.3 Latest Latest
Warning

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

Go to latest
Published: Jan 15, 2024 License: Apache-2.0 Imports: 5 Imported by: 2

Documentation

Overview

Package grpcplugin provides support for serving plugin over gRPC.

This package is internal and meant to be used internally by the SDK and Grafarg.

Index

Constants

View Source
const (
	// ProtocolVersion is the current (latest) supported protocol version.
	ProtocolVersion = 2

	// MagicCookieKey is the the magic cookie key that will be used for negotiating
	// between plugin host and client.
	// Should NEVER be changed.
	MagicCookieKey = "grafarg_plugin_type"

	// MagicCookieValue is the the magic cookie value that will be used for negotiating
	// between plugin host and client.
	// Should NEVER be changed.
	MagicCookieValue = "datasource"
)

Variables

This section is empty.

Functions

func Serve

func Serve(opts ServeOpts) error

Serve starts serving the plugin over gRPC.

Types

type DataClient

type DataClient interface {
	pluginv2.DataClient
}

DataClient represents a data client.

type DataGRPCPlugin

type DataGRPCPlugin struct {
	plugin.NetRPCUnsupportedPlugin
	plugin.GRPCPlugin
	DataServer DataServer
}

DataGRPCPlugin implements the GRPCPlugin interface from github.com/hashicorp/go-plugin.

func (*DataGRPCPlugin) GRPCClient

func (p *DataGRPCPlugin) GRPCClient(_ context.Context, _ *plugin.GRPCBroker, c *grpc.ClientConn) (interface{}, error)

GRPCClient returns c as a data gRPC client.

func (*DataGRPCPlugin) GRPCServer

func (p *DataGRPCPlugin) GRPCServer(_ *plugin.GRPCBroker, s *grpc.Server) error

GRPCServer registers p as a data gRPC server.

type DataServer

type DataServer interface {
	pluginv2.DataServer
}

DataServer represents a data server.

type DiagnosticsClient

type DiagnosticsClient interface {
	pluginv2.DiagnosticsClient
}

DiagnosticsClient is the client API for the Diagnostics service.

type DiagnosticsGRPCPlugin

type DiagnosticsGRPCPlugin struct {
	plugin.NetRPCUnsupportedPlugin
	plugin.GRPCPlugin
	DiagnosticsServer DiagnosticsServer
}

DiagnosticsGRPCPlugin implements the GRPCPlugin interface from github.com/hashicorp/go-plugin.

func (*DiagnosticsGRPCPlugin) GRPCClient

func (p *DiagnosticsGRPCPlugin) GRPCClient(_ context.Context, _ *plugin.GRPCBroker, c *grpc.ClientConn) (interface{}, error)

GRPCClient returns c as a diagnostics gRPC client.

func (*DiagnosticsGRPCPlugin) GRPCServer

func (p *DiagnosticsGRPCPlugin) GRPCServer(_ *plugin.GRPCBroker, s *grpc.Server) error

GRPCServer registers p as a diagnostics gRPC server.

type DiagnosticsServer

type DiagnosticsServer interface {
	pluginv2.DiagnosticsServer
}

DiagnosticsServer is the server API for the Diagnostics service.

type ResourceClient

type ResourceClient interface {
	pluginv2.ResourceClient
}

ResourceClient is the client API for the Resource service.

type ResourceGRPCPlugin

type ResourceGRPCPlugin struct {
	plugin.NetRPCUnsupportedPlugin
	plugin.GRPCPlugin
	ResourceServer ResourceServer
}

ResourceGRPCPlugin implements the GRPCPlugin interface from github.com/hashicorp/go-plugin.

func (*ResourceGRPCPlugin) GRPCClient

func (p *ResourceGRPCPlugin) GRPCClient(_ context.Context, _ *plugin.GRPCBroker, c *grpc.ClientConn) (interface{}, error)

GRPCClient returns c as a resource gRPC client.

func (*ResourceGRPCPlugin) GRPCServer

func (p *ResourceGRPCPlugin) GRPCServer(_ *plugin.GRPCBroker, s *grpc.Server) error

GRPCServer registers p as a resource gRPC server.

type ResourceServer

type ResourceServer interface {
	pluginv2.ResourceServer
}

ResourceServer is the server API for the Resource service.

type ServeOpts

type ServeOpts struct {
	DiagnosticsServer DiagnosticsServer
	ResourceServer    ResourceServer
	DataServer        DataServer
	StreamServer      StreamServer

	// GRPCServer factory method for creating GRPC server.
	// If nil, the default one will be used.
	GRPCServer func(options []grpc.ServerOption) *grpc.Server
}

ServeOpts contains options for serving plugins.

type StreamClient

type StreamClient interface {
	pluginv2.StreamClient
}

StreamClient represents a stream client.

type StreamGRPCPlugin

type StreamGRPCPlugin struct {
	plugin.NetRPCUnsupportedPlugin
	plugin.GRPCPlugin
	StreamServer StreamServer
}

StreamGRPCPlugin implements the GRPCPlugin interface from github.com/hashicorp/go-plugin.

func (*StreamGRPCPlugin) GRPCClient

func (p *StreamGRPCPlugin) GRPCClient(_ context.Context, _ *plugin.GRPCBroker, c *grpc.ClientConn) (interface{}, error)

GRPCClient returns c as a resource gRPC client.

func (*StreamGRPCPlugin) GRPCServer

func (p *StreamGRPCPlugin) GRPCServer(_ *plugin.GRPCBroker, s *grpc.Server) error

GRPCServer registers p as a resource gRPC server.

type StreamServer

type StreamServer interface {
	pluginv2.StreamServer
}

StreamServer represents a stream server.

Jump to

Keyboard shortcuts

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