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(ctx 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) ListResource(ctx context.Context, r providers.ListResourceRequest) (resp providers.ListResourceResponse)
- func (p *GRPCProvider) ListResourceStream(ctx context.Context, r providers.ListResourceRequest, ...) tfdiags.Diagnostics
- 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) UpgradeResourceIdentity(ctx context.Context, req providers.UpgradeResourceIdentityRequest) (resp providers.UpgradeResourceIdentityResponse)
- 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 GRPCProvisioner
- func (p *GRPCProvisioner) Close() error
- func (p *GRPCProvisioner) GetSchema() (resp provisioners.GetSchemaResponse)
- func (p *GRPCProvisioner) ProvisionResource(_ context.Context, r provisioners.ProvisionResourceRequest) (resp provisioners.ProvisionResourceResponse)
- func (p *GRPCProvisioner) Stop() error
- func (p *GRPCProvisioner) ValidateProvisionerConfig(r provisioners.ValidateProvisionerConfigRequest) (resp provisioners.ValidateProvisionerConfigResponse)
- type GRPCProvisionerFunc
- type GRPCProvisionerPlugin
- type ServeOpts
- type UIInput
- type UIInputInputResponse
- type UIInputServer
Constants ¶
const ( // The constants below are the names of the plugins that can be dispensed // from the plugin server. ProviderPluginName = "provider" ProvisionerPluginName = "provisioner" // DefaultProtocolVersion is the protocol version assumed for legacy clients that don't specify // a particular version during their handshake. This is the version used when Terraform 0.10 // and 0.11 launch plugins that were built with support for both versions 4 and 5, and must // stay unchanged at 4 until we intentionally build plugins that are not compatible with 0.10 and // 0.11. DefaultProtocolVersion = 4 )
Variables ¶
var Handshake = plugin.HandshakeConfig{ ProtocolVersion: DefaultProtocolVersion, MagicCookieKey: "TF_PLUGIN_MAGIC_COOKIE", MagicCookieValue: "d602bf8f470bc67ca7faa0386276bbdd4330efaf76d1a219cb4d6991ca9872b2", }
Handshake is the HandshakeConfig used to configure clients and servers.
var VersionedPlugins = map[int]plugin.PluginSet{ 5: { "provider": &GRPCProviderPlugin{}, "provisioner": &GRPCProvisionerPlugin{}, }, 6: { "provider": &plugin6.GRPCProviderPlugin{}, }, }
VersionedPlugins includes both protocol 5 and 6 because this is the function called in providerFactory (command/meta_providers.go) to set up the initial plugin client config.
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(ctx 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) ListResource ¶
func (p *GRPCProvider) ListResource(ctx context.Context, r providers.ListResourceRequest) (resp providers.ListResourceResponse)
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 ¶
func (p *GRPCProvider) ListResourceStream(ctx context.Context, r providers.ListResourceRequest, emit func(providers.ListResourceEvent) bool) tfdiags.Diagnostics
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) 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) UpgradeResourceIdentity ¶
func (p *GRPCProvider) UpgradeResourceIdentity(ctx context.Context, req providers.UpgradeResourceIdentityRequest) (resp providers.UpgradeResourceIdentityResponse)
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() proto.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 GRPCProvisioner ¶
type GRPCProvisioner 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
// contains filtered or unexported fields
}
provisioners.Interface grpc implementation
func (*GRPCProvisioner) Close ¶
func (p *GRPCProvisioner) Close() error
func (*GRPCProvisioner) GetSchema ¶
func (p *GRPCProvisioner) GetSchema() (resp provisioners.GetSchemaResponse)
func (*GRPCProvisioner) ProvisionResource ¶
func (p *GRPCProvisioner) ProvisionResource(_ context.Context, r provisioners.ProvisionResourceRequest) (resp provisioners.ProvisionResourceResponse)
func (*GRPCProvisioner) Stop ¶
func (p *GRPCProvisioner) Stop() error
func (*GRPCProvisioner) ValidateProvisionerConfig ¶
func (p *GRPCProvisioner) ValidateProvisionerConfig(r provisioners.ValidateProvisionerConfigRequest) (resp provisioners.ValidateProvisionerConfigResponse)
type GRPCProvisionerFunc ¶
type GRPCProvisionerFunc func() proto.ProvisionerServer
type GRPCProvisionerPlugin ¶
type GRPCProvisionerPlugin struct {
plugin.Plugin
GRPCProvisioner func() proto.ProvisionerServer
}
GRPCProvisionerPlugin is the plugin.GRPCPlugin implementation.
func (*GRPCProvisionerPlugin) GRPCClient ¶
func (p *GRPCProvisionerPlugin) GRPCClient(ctx context.Context, broker *plugin.GRPCBroker, c *grpc.ClientConn) (interface{}, error)
func (*GRPCProvisionerPlugin) GRPCServer ¶
func (p *GRPCProvisionerPlugin) GRPCServer(broker *plugin.GRPCBroker, s *grpc.Server) error
type ServeOpts ¶
type ServeOpts struct {
// Wrapped versions of the above plugins will automatically shimmed and
// added to the GRPC functions when possible.
GRPCProviderFunc GRPCProviderFunc
GRPCProvisionerFunc GRPCProvisionerFunc
}
ServeOpts are the configurations to serve a plugin.
type UIInputInputResponse ¶
type UIInputInputResponse struct {
Value string
Error *plugin.BasicError
}
type UIInputServer ¶
UIInputServer is a net/rpc compatible structure for serving a UIInputServer. This should not be used directly.
func (*UIInputServer) Input ¶
func (s *UIInputServer) Input( opts *tofu.InputOpts, reply *UIInputInputResponse) error
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package mock_tfplugin5 is a generated GoMock package.
|
Package mock_tfplugin5 is a generated GoMock package. |