plugin6

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Aug 24, 2026 License: MPL-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// The constants below are the names of the plugins that can be dispensed
	// from the plugin server.
	ProviderPluginName = "provider"

	// DefaultProtocolVersion is the protocol version assumed for legacy clients
	// that don't specify a particular version during their handshake. Since we
	// explicitly set VersionedPlugins in Serve, this number does not need to
	// change with the protocol version and can effectively stay 4 forever
	// (unless we need the "biggest hammer" approach to break all provider
	// compatibility).
	DefaultProtocolVersion = 4
)

Variables

View Source
var Handshake = plugin.HandshakeConfig{

	ProtocolVersion: DefaultProtocolVersion,

	MagicCookieKey:   "TF_PLUGIN_MAGIC_COOKIE",
	MagicCookieValue: "d602bf8f470bc67ca7faa0386276bbdd4330efaf76d1a219cb4d6991ca9872b2",
}

Handshake is the HandshakeConfig used to configure clients and servers.

Functions

func Serve

func Serve(opts *ServeOpts)

Serve serves a plugin. This function never returns and should be the final function called in the main function of the plugin.

Types

type GRPCProvider

type GRPCProvider struct {
	// PluginClient provides a reference to the plugin.Client which controls the plugin process.
	// This allows the GRPCProvider a way to shutdown the plugin process.
	PluginClient *plugin.Client

	// TestServer contains a grpc.Server to close when the GRPCProvider is being
	// used in an end to end test of a provider.
	TestServer *grpc.Server

	// SchemaCache stores the schema for this provider. This is used to properly
	// serialize the requests for schemas.  This is shared between instances
	// of the provider.
	SchemaCache providers.SchemaCache
	// contains filtered or unexported fields
}

GRPCProvider handles the client, or core side of the plugin rpc connection. The GRPCProvider methods are mostly a translation layer between the tofu providers types and the grpc proto types, directly converting between the two.

func (*GRPCProvider) CallFunction

func (*GRPCProvider) Close

func (p *GRPCProvider) Close(_ context.Context) error

closing the grpc connection is final, and tofu will call it at the end of every phase.

func (*GRPCProvider) GetFunctions

func (p *GRPCProvider) GetFunctions(ctx context.Context) (resp providers.GetFunctionsResponse)

func (*GRPCProvider) GetProviderSchema

func (p *GRPCProvider) GetProviderSchema(ctx context.Context) (resp providers.GetProviderSchemaResponse)

func (*GRPCProvider) ListResource

ListResource enumerates the live instances of one managed resource type, buffering the whole stream. Use ListResourceStream instead when the result set may be large or when the caller wants to stop early.

func (*GRPCProvider) ListResourceStream

ListResourceStream enumerates the live instances of one managed resource type, calling emit once per result as the provider sends it. Returning false from emit ends the stream early and is not an error.

A provider that does not implement the list protocol at all, or that does not list this particular type, produces an error diagnostic saying so; it never panics and never reports a transport failure for that case.

func (*GRPCProvider) ReadDataSource

func (*GRPCProvider) ReadResource

func (*GRPCProvider) Stop

func (p *GRPCProvider) Stop(ctx context.Context) error

type GRPCProviderFunc

type GRPCProviderFunc func() proto.ProviderServer

type GRPCProviderPlugin

type GRPCProviderPlugin struct {
	plugin.Plugin
	GRPCProvider func() proto6.ProviderServer
}

GRPCProviderPlugin implements plugin.GRPCPlugin for the go-plugin package.

func (*GRPCProviderPlugin) GRPCClient

func (p *GRPCProviderPlugin) GRPCClient(ctx context.Context, broker *plugin.GRPCBroker, c *grpc.ClientConn) (any, error)

func (*GRPCProviderPlugin) GRPCServer

func (p *GRPCProviderPlugin) GRPCServer(broker *plugin.GRPCBroker, s *grpc.Server) error

type ServeOpts

type ServeOpts struct {
	GRPCProviderFunc GRPCProviderFunc
}

ServeOpts are the configurations to serve a plugin.

Directories

Path Synopsis
Package mock_tfplugin6 is a generated GoMock package.
Package mock_tfplugin6 is a generated GoMock package.

Jump to

Keyboard shortcuts

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