plugin6

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Sep 5, 2024 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

	// Addr uniquely identifies the type of provider.
	// Normally executed providers will have this set during initialization,
	// but it may not always be available for alternative execute modes.
	Addr addrs.Provider
	// 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() error

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

func (*GRPCProvider) ConfigureProvider

func (*GRPCProvider) GetFunctions

func (p *GRPCProvider) GetFunctions() (resp providers.GetFunctionsResponse)

func (*GRPCProvider) GetProviderSchema

func (p *GRPCProvider) GetProviderSchema() (resp providers.GetProviderSchemaResponse)

func (*GRPCProvider) PlanResourceChange

func (*GRPCProvider) ReadDataSource

func (*GRPCProvider) ReadResource

func (*GRPCProvider) Stop

func (p *GRPCProvider) Stop() 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) (interface{}, 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