Documentation
¶
Index ¶
- Constants
- Variables
- func Serve(opts *ServeOpts)
- type GRPCProvider
- func (p *GRPCProvider) ApplyResourceChange(ctx context.Context, r providers.ApplyResourceChangeRequest) (resp providers.ApplyResourceChangeResponse)
- func (p *GRPCProvider) CallFunction(ctx context.Context, r providers.CallFunctionRequest) (resp providers.CallFunctionResponse)
- func (p *GRPCProvider) Close(_ context.Context) error
- func (p *GRPCProvider) CloseEphemeralResource(ctx context.Context, r providers.CloseEphemeralResourceRequest) (resp providers.CloseEphemeralResourceResponse)
- func (p *GRPCProvider) ConfigureProvider(ctx context.Context, r providers.ConfigureProviderRequest) (resp providers.ConfigureProviderResponse)
- func (p *GRPCProvider) GetFunctions(ctx context.Context) (resp providers.GetFunctionsResponse)
- func (p *GRPCProvider) GetProviderSchema(ctx context.Context) (resp providers.GetProviderSchemaResponse)
- func (p *GRPCProvider) ImportResourceState(ctx context.Context, r providers.ImportResourceStateRequest) (resp providers.ImportResourceStateResponse)
- func (p *GRPCProvider) MoveResourceState(ctx context.Context, r providers.MoveResourceStateRequest) providers.MoveResourceStateResponse
- func (p *GRPCProvider) OpenEphemeralResource(ctx context.Context, r providers.OpenEphemeralResourceRequest) (resp providers.OpenEphemeralResourceResponse)
- func (p *GRPCProvider) PlanResourceChange(ctx context.Context, r providers.PlanResourceChangeRequest) (resp providers.PlanResourceChangeResponse)
- func (p *GRPCProvider) ReadDataSource(ctx context.Context, r providers.ReadDataSourceRequest) (resp providers.ReadDataSourceResponse)
- func (p *GRPCProvider) ReadResource(ctx context.Context, r providers.ReadResourceRequest) (resp providers.ReadResourceResponse)
- func (p *GRPCProvider) RenewEphemeralResource(ctx context.Context, r providers.RenewEphemeralResourceRequest) (resp providers.RenewEphemeralResourceResponse)
- func (p *GRPCProvider) Stop(ctx context.Context) error
- func (p *GRPCProvider) UpgradeResourceState(ctx context.Context, r providers.UpgradeResourceStateRequest) (resp providers.UpgradeResourceStateResponse)
- func (p *GRPCProvider) ValidateDataResourceConfig(ctx context.Context, r providers.ValidateDataResourceConfigRequest) (resp providers.ValidateDataResourceConfigResponse)
- func (p *GRPCProvider) ValidateEphemeralConfig(ctx context.Context, r providers.ValidateEphemeralConfigRequest) (resp providers.ValidateEphemeralConfigResponse)
- func (p *GRPCProvider) ValidateProviderConfig(ctx context.Context, r providers.ValidateProviderConfigRequest) (resp providers.ValidateProviderConfigResponse)
- func (p *GRPCProvider) ValidateResourceConfig(ctx context.Context, r providers.ValidateResourceConfigRequest) (resp providers.ValidateResourceConfigResponse)
- type GRPCProviderFunc
- type GRPCProviderPlugin
- type ServeOpts
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 ¶
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) ApplyResourceChange ¶
func (p *GRPCProvider) ApplyResourceChange(ctx context.Context, r providers.ApplyResourceChangeRequest) (resp providers.ApplyResourceChangeResponse)
func (*GRPCProvider) CallFunction ¶
func (p *GRPCProvider) CallFunction(ctx context.Context, r providers.CallFunctionRequest) (resp providers.CallFunctionResponse)
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) CloseEphemeralResource ¶
func (p *GRPCProvider) CloseEphemeralResource(ctx context.Context, r providers.CloseEphemeralResourceRequest) (resp providers.CloseEphemeralResourceResponse)
func (*GRPCProvider) ConfigureProvider ¶
func (p *GRPCProvider) ConfigureProvider(ctx context.Context, r providers.ConfigureProviderRequest) (resp providers.ConfigureProviderResponse)
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) ImportResourceState ¶
func (p *GRPCProvider) ImportResourceState(ctx context.Context, r providers.ImportResourceStateRequest) (resp providers.ImportResourceStateResponse)
func (*GRPCProvider) MoveResourceState ¶
func (p *GRPCProvider) MoveResourceState(ctx context.Context, r providers.MoveResourceStateRequest) providers.MoveResourceStateResponse
func (*GRPCProvider) OpenEphemeralResource ¶
func (p *GRPCProvider) OpenEphemeralResource(ctx context.Context, r providers.OpenEphemeralResourceRequest) (resp providers.OpenEphemeralResourceResponse)
func (*GRPCProvider) PlanResourceChange ¶
func (p *GRPCProvider) PlanResourceChange(ctx context.Context, r providers.PlanResourceChangeRequest) (resp providers.PlanResourceChangeResponse)
func (*GRPCProvider) ReadDataSource ¶
func (p *GRPCProvider) ReadDataSource(ctx context.Context, r providers.ReadDataSourceRequest) (resp providers.ReadDataSourceResponse)
func (*GRPCProvider) ReadResource ¶
func (p *GRPCProvider) ReadResource(ctx context.Context, r providers.ReadResourceRequest) (resp providers.ReadResourceResponse)
func (*GRPCProvider) RenewEphemeralResource ¶
func (p *GRPCProvider) RenewEphemeralResource(ctx context.Context, r providers.RenewEphemeralResourceRequest) (resp providers.RenewEphemeralResourceResponse)
func (*GRPCProvider) UpgradeResourceState ¶
func (p *GRPCProvider) UpgradeResourceState(ctx context.Context, r providers.UpgradeResourceStateRequest) (resp providers.UpgradeResourceStateResponse)
func (*GRPCProvider) ValidateDataResourceConfig ¶
func (p *GRPCProvider) ValidateDataResourceConfig(ctx context.Context, r providers.ValidateDataResourceConfigRequest) (resp providers.ValidateDataResourceConfigResponse)
func (*GRPCProvider) ValidateEphemeralConfig ¶
func (p *GRPCProvider) ValidateEphemeralConfig(ctx context.Context, r providers.ValidateEphemeralConfigRequest) (resp providers.ValidateEphemeralConfigResponse)
func (*GRPCProvider) ValidateProviderConfig ¶
func (p *GRPCProvider) ValidateProviderConfig(ctx context.Context, r providers.ValidateProviderConfigRequest) (resp providers.ValidateProviderConfigResponse)
func (*GRPCProvider) ValidateResourceConfig ¶
func (p *GRPCProvider) ValidateResourceConfig(ctx context.Context, r providers.ValidateResourceConfigRequest) (resp providers.ValidateResourceConfigResponse)
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. |
Click to show internal directories.
Click to hide internal directories.