plugin

package
v0.1.1-0...-96f391d Latest Latest
Warning

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

Go to latest
Published: May 25, 2017 License: MPL-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ProviderPluginName    = "provider"
	ProvisionerPluginName = "provisioner"
)

The constants below are the names of the plugins that can be dispensed from the plugin server.

Variables

View Source
var Handshake = plugin.HandshakeConfig{

	ProtocolVersion: 4,

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

Handshake is the HandshakeConfig used to configure clients and servers.

View Source
var PluginMap = map[string]plugin.Plugin{
	"provider":    &ResourceProviderPlugin{},
	"provisioner": &ResourceProvisionerPlugin{},
}

PluginMap should be used by clients for the map of plugins.

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 ProviderFunc

type ProviderFunc func() terraform.ResourceProvider

type ProvisionerFunc

type ProvisionerFunc func() terraform.ResourceProvisioner

type ResourceProvider

type ResourceProvider struct {
	Broker *plugin.MuxBroker
	Client *rpc.Client
}

ResourceProvider is an implementation of terraform.ResourceProvider that communicates over RPC.

func (*ResourceProvider) Close

func (p *ResourceProvider) Close() error

func (*ResourceProvider) Configure

func (*ResourceProvider) DataSources

func (p *ResourceProvider) DataSources() []terraform.DataSource

func (*ResourceProvider) ImportState

func (p *ResourceProvider) ImportState(
	info *terraform.InstanceInfo,
	id string) ([]*terraform.InstanceState, error)

func (*ResourceProvider) Input

func (*ResourceProvider) ReadDataApply

func (*ResourceProvider) ReadDataDiff

func (*ResourceProvider) Refresh

func (*ResourceProvider) Resources

func (p *ResourceProvider) Resources() []terraform.ResourceType

func (*ResourceProvider) Stop

func (p *ResourceProvider) Stop() error

func (*ResourceProvider) Validate

func (p *ResourceProvider) Validate(c *terraform.ResourceConfig) ([]string, []error)

func (*ResourceProvider) ValidateDataSource

func (p *ResourceProvider) ValidateDataSource(
	t string, c *terraform.ResourceConfig) ([]string, []error)

func (*ResourceProvider) ValidateResource

func (p *ResourceProvider) ValidateResource(
	t string, c *terraform.ResourceConfig) ([]string, []error)

type ResourceProviderApplyArgs

type ResourceProviderApplyArgs struct {
	Info  *terraform.InstanceInfo
	State *terraform.InstanceState
	Diff  *terraform.InstanceDiff
}

type ResourceProviderApplyResponse

type ResourceProviderApplyResponse struct {
	State *terraform.InstanceState
	Error *plugin.BasicError
}

type ResourceProviderConfigureResponse

type ResourceProviderConfigureResponse struct {
	Error *plugin.BasicError
}

type ResourceProviderDiffArgs

type ResourceProviderDiffArgs struct {
	Info   *terraform.InstanceInfo
	State  *terraform.InstanceState
	Config *terraform.ResourceConfig
}

type ResourceProviderDiffResponse

type ResourceProviderDiffResponse struct {
	Diff  *terraform.InstanceDiff
	Error *plugin.BasicError
}

type ResourceProviderImportStateArgs

type ResourceProviderImportStateArgs struct {
	Info *terraform.InstanceInfo
	Id   string
}

type ResourceProviderImportStateResponse

type ResourceProviderImportStateResponse struct {
	State []*terraform.InstanceState
	Error *plugin.BasicError
}

type ResourceProviderInputArgs

type ResourceProviderInputArgs struct {
	InputId uint32
	Config  *terraform.ResourceConfig
}

type ResourceProviderInputResponse

type ResourceProviderInputResponse struct {
	Config *terraform.ResourceConfig
	Error  *plugin.BasicError
}

type ResourceProviderPlugin

type ResourceProviderPlugin struct {
	F func() terraform.ResourceProvider
}

ResourceProviderPlugin is the plugin.Plugin implementation.

func (*ResourceProviderPlugin) Client

func (p *ResourceProviderPlugin) Client(
	b *plugin.MuxBroker, c *rpc.Client) (interface{}, error)

func (*ResourceProviderPlugin) Server

func (p *ResourceProviderPlugin) Server(b *plugin.MuxBroker) (interface{}, error)

type ResourceProviderReadDataApplyArgs

type ResourceProviderReadDataApplyArgs struct {
	Info *terraform.InstanceInfo
	Diff *terraform.InstanceDiff
}

type ResourceProviderReadDataApplyResponse

type ResourceProviderReadDataApplyResponse struct {
	State *terraform.InstanceState
	Error *plugin.BasicError
}

type ResourceProviderReadDataDiffArgs

type ResourceProviderReadDataDiffArgs struct {
	Info   *terraform.InstanceInfo
	Config *terraform.ResourceConfig
}

type ResourceProviderReadDataDiffResponse

type ResourceProviderReadDataDiffResponse struct {
	Diff  *terraform.InstanceDiff
	Error *plugin.BasicError
}

type ResourceProviderRefreshArgs

type ResourceProviderRefreshArgs struct {
	Info  *terraform.InstanceInfo
	State *terraform.InstanceState
}

type ResourceProviderRefreshResponse

type ResourceProviderRefreshResponse struct {
	State *terraform.InstanceState
	Error *plugin.BasicError
}

type ResourceProviderServer

type ResourceProviderServer struct {
	Broker   *plugin.MuxBroker
	Provider terraform.ResourceProvider
}

ResourceProviderServer is a net/rpc compatible structure for serving a ResourceProvider. This should not be used directly.

func (*ResourceProviderServer) Apply

func (*ResourceProviderServer) Configure

func (*ResourceProviderServer) DataSources

func (s *ResourceProviderServer) DataSources(
	nothing interface{},
	result *[]terraform.DataSource) error

func (*ResourceProviderServer) Diff

func (*ResourceProviderServer) ImportState

func (*ResourceProviderServer) Input

func (*ResourceProviderServer) ReadDataApply

func (*ResourceProviderServer) ReadDataDiff

func (*ResourceProviderServer) Refresh

func (*ResourceProviderServer) Resources

func (s *ResourceProviderServer) Resources(
	nothing interface{},
	result *[]terraform.ResourceType) error

func (*ResourceProviderServer) Stop

func (s *ResourceProviderServer) Stop(
	_ interface{},
	reply *ResourceProviderStopResponse) error

func (*ResourceProviderServer) Validate

func (*ResourceProviderServer) ValidateDataSource

func (*ResourceProviderServer) ValidateResource

type ResourceProviderStopResponse

type ResourceProviderStopResponse struct {
	Error *plugin.BasicError
}

type ResourceProviderValidateArgs

type ResourceProviderValidateArgs struct {
	Config *terraform.ResourceConfig
}

type ResourceProviderValidateResourceArgs

type ResourceProviderValidateResourceArgs struct {
	Config *terraform.ResourceConfig
	Type   string
}

type ResourceProviderValidateResourceResponse

type ResourceProviderValidateResourceResponse struct {
	Warnings []string
	Errors   []*plugin.BasicError
}

type ResourceProviderValidateResponse

type ResourceProviderValidateResponse struct {
	Warnings []string
	Errors   []*plugin.BasicError
}

type ResourceProvisioner

type ResourceProvisioner struct {
	Broker *plugin.MuxBroker
	Client *rpc.Client
}

ResourceProvisioner is an implementation of terraform.ResourceProvisioner that communicates over RPC.

func (*ResourceProvisioner) Apply

func (*ResourceProvisioner) Close

func (p *ResourceProvisioner) Close() error

func (*ResourceProvisioner) Stop

func (p *ResourceProvisioner) Stop() error

func (*ResourceProvisioner) Validate

func (p *ResourceProvisioner) Validate(c *terraform.ResourceConfig) ([]string, []error)

type ResourceProvisionerApplyArgs

type ResourceProvisionerApplyArgs struct {
	OutputId uint32
	State    *terraform.InstanceState
	Config   *terraform.ResourceConfig
}

type ResourceProvisionerApplyResponse

type ResourceProvisionerApplyResponse struct {
	Error *plugin.BasicError
}

type ResourceProvisionerPlugin

type ResourceProvisionerPlugin struct {
	F func() terraform.ResourceProvisioner
}

ResourceProvisionerPlugin is the plugin.Plugin implementation.

func (*ResourceProvisionerPlugin) Client

func (p *ResourceProvisionerPlugin) Client(
	b *plugin.MuxBroker, c *rpc.Client) (interface{}, error)

func (*ResourceProvisionerPlugin) Server

func (p *ResourceProvisionerPlugin) Server(b *plugin.MuxBroker) (interface{}, error)

type ResourceProvisionerServer

type ResourceProvisionerServer struct {
	Broker      *plugin.MuxBroker
	Provisioner terraform.ResourceProvisioner
}

ResourceProvisionerServer is a net/rpc compatible structure for serving a ResourceProvisioner. This should not be used directly.

func (*ResourceProvisionerServer) Apply

func (*ResourceProvisionerServer) Stop

func (s *ResourceProvisionerServer) Stop(
	_ interface{},
	reply *ResourceProvisionerStopResponse) error

func (*ResourceProvisionerServer) Validate

type ResourceProvisionerStopResponse

type ResourceProvisionerStopResponse struct {
	Error *plugin.BasicError
}

type ResourceProvisionerValidateArgs

type ResourceProvisionerValidateArgs struct {
	Config *terraform.ResourceConfig
}

type ResourceProvisionerValidateResponse

type ResourceProvisionerValidateResponse struct {
	Warnings []string
	Errors   []*plugin.BasicError
}

type ServeOpts

type ServeOpts struct {
	ProviderFunc    ProviderFunc
	ProvisionerFunc ProvisionerFunc
}

ServeOpts are the configurations to serve a plugin.

type UIInput

type UIInput struct {
	Client *rpc.Client
}

UIInput is an implementatin of terraform.UIInput that communicates over RPC.

func (*UIInput) Input

func (i *UIInput) Input(opts *terraform.InputOpts) (string, error)

type UIInputInputResponse

type UIInputInputResponse struct {
	Value string
	Error *plugin.BasicError
}

type UIInputServer

type UIInputServer struct {
	UIInput terraform.UIInput
}

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 *terraform.InputOpts,
	reply *UIInputInputResponse) error

type UIOutput

type UIOutput struct {
	Client *rpc.Client
}

UIOutput is an implementatin of terraform.UIOutput that communicates over RPC.

func (*UIOutput) Output

func (o *UIOutput) Output(v string)

type UIOutputServer

type UIOutputServer struct {
	UIOutput terraform.UIOutput
}

UIOutputServer is the RPC server for serving UIOutput.

func (*UIOutputServer) Output

func (s *UIOutputServer) Output(
	v string,
	reply *interface{}) error

Jump to

Keyboard shortcuts

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