Documentation ¶
Index ¶
- Constants
- func Communicator(client *rpc.Client) *communicator
- type ArtifactServer
- func (s *ArtifactServer) BuilderId(args *interface{}, reply *string) error
- func (s *ArtifactServer) Destroy(args *interface{}, reply *error) error
- func (s *ArtifactServer) Files(args *interface{}, reply *[]string) error
- func (s *ArtifactServer) Id(args *interface{}, reply *string) error
- func (s *ArtifactServer) String(args *interface{}, reply *string) error
- type BasicError
- type BuildPrepareResponse
- type BuildServer
- func (b *BuildServer) Cancel(args *interface{}, reply *interface{}) error
- func (b *BuildServer) Name(args *interface{}, reply *string) error
- func (b *BuildServer) Prepare(args *interface{}, resp *BuildPrepareResponse) error
- func (b *BuildServer) Run(streamId uint32, reply *[]uint32) error
- func (b *BuildServer) SetDebug(val *bool, reply *interface{}) error
- func (b *BuildServer) SetForce(val *bool, reply *interface{}) error
- type BuilderPrepareArgs
- type BuilderPrepareResponse
- type BuilderServer
- type CacheRLockResponse
- type CacheServer
- type Client
- func (c *Client) Artifact() packer.Artifact
- func (c *Client) Build() packer.Build
- func (c *Client) Builder() packer.Builder
- func (c *Client) Cache() packer.Cache
- func (c *Client) Close() error
- func (c *Client) Command() packer.Command
- func (c *Client) Communicator() packer.Communicator
- func (c *Client) Environment() packer.Environment
- func (c *Client) Hook() packer.Hook
- func (c *Client) PostProcessor() packer.PostProcessor
- func (c *Client) Provisioner() packer.Provisioner
- func (c *Client) Ui() packer.Ui
- type CommandFinished
- type CommandRunArgs
- type CommandServer
- type CommandSynopsisArgs
- type CommunicatorDownloadArgs
- type CommunicatorServer
- func (c *CommunicatorServer) Download(args *CommunicatorDownloadArgs, reply *interface{}) (err error)
- func (c *CommunicatorServer) Start(args *CommunicatorStartArgs, reply *interface{}) error
- func (c *CommunicatorServer) Upload(args *CommunicatorUploadArgs, reply *interface{}) (err error)
- func (c *CommunicatorServer) UploadDir(args *CommunicatorUploadDirArgs, reply *error) error
- type CommunicatorStartArgs
- type CommunicatorUploadArgs
- type CommunicatorUploadDirArgs
- type Environment
- func (e *Environment) Builder(name string) (b packer.Builder, err error)
- func (e *Environment) Cache() packer.Cache
- func (e *Environment) Cli(args []string) (result int, err error)
- func (e *Environment) Hook(name string) (h packer.Hook, err error)
- func (e *Environment) PostProcessor(name string) (p packer.PostProcessor, err error)
- func (e *Environment) Provisioner(name string) (p packer.Provisioner, err error)
- func (e *Environment) Ui() packer.Ui
- type EnvironmentCliArgs
- type EnvironmentServer
- func (e *EnvironmentServer) Builder(name string, reply *uint32) error
- func (e *EnvironmentServer) Cache(args *interface{}, reply *uint32) error
- func (e *EnvironmentServer) Cli(args *EnvironmentCliArgs, reply *int) (err error)
- func (e *EnvironmentServer) Hook(name string, reply *uint32) error
- func (e *EnvironmentServer) PostProcessor(name string, reply *uint32) error
- func (e *EnvironmentServer) Provisioner(name string, reply *uint32) error
- func (e *EnvironmentServer) Ui(args *interface{}, reply *uint32) error
- type HookRunArgs
- type HookServer
- type MuxConn
- type PostProcessorConfigureArgs
- type PostProcessorProcessResponse
- type PostProcessorServer
- type ProvisionerPrepareArgs
- type ProvisionerServer
- type Server
- func (s *Server) Close() error
- func (s *Server) RegisterArtifact(a packer.Artifact)
- func (s *Server) RegisterBuild(b packer.Build)
- func (s *Server) RegisterBuilder(b packer.Builder)
- func (s *Server) RegisterCache(c packer.Cache)
- func (s *Server) RegisterCommand(c packer.Command)
- func (s *Server) RegisterCommunicator(c packer.Communicator)
- func (s *Server) RegisterEnvironment(b packer.Environment)
- func (s *Server) RegisterHook(h packer.Hook)
- func (s *Server) RegisterPostProcessor(p packer.PostProcessor)
- func (s *Server) RegisterProvisioner(p packer.Provisioner)
- func (s *Server) RegisterUi(ui packer.Ui)
- func (s *Server) Serve()
- type Stream
- type Ui
- type UiMachineArgs
- type UiServer
- func (u *UiServer) Ask(query string, reply *string) (err error)
- func (u *UiServer) Error(message *string, reply *interface{}) error
- func (u *UiServer) Machine(args *UiMachineArgs, reply *interface{}) error
- func (u *UiServer) Message(message *string, reply *interface{}) error
- func (u *UiServer) Say(message *string, reply *interface{}) error
Constants ¶
const ( DefaultArtifactEndpoint string = "Artifact" DefaultBuildEndpoint = "Build" DefaultBuilderEndpoint = "Builder" DefaultCacheEndpoint = "Cache" DefaultCommandEndpoint = "Command" DefaultCommunicatorEndpoint = "Communicator" DefaultEnvironmentEndpoint = "Environment" DefaultHookEndpoint = "Hook" DefaultPostProcessorEndpoint = "PostProcessor" DefaultProvisionerEndpoint = "Provisioner" DefaultUiEndpoint = "Ui" )
Variables ¶
This section is empty.
Functions ¶
func Communicator ¶
Types ¶
type ArtifactServer ¶
type ArtifactServer struct {
// contains filtered or unexported fields
}
ArtifactServer wraps a packer.Artifact implementation and makes it exportable as part of a Golang RPC server.
func (*ArtifactServer) BuilderId ¶
func (s *ArtifactServer) BuilderId(args *interface{}, reply *string) error
func (*ArtifactServer) Destroy ¶
func (s *ArtifactServer) Destroy(args *interface{}, reply *error) error
func (*ArtifactServer) Files ¶
func (s *ArtifactServer) Files(args *interface{}, reply *[]string) error
func (*ArtifactServer) Id ¶
func (s *ArtifactServer) Id(args *interface{}, reply *string) error
func (*ArtifactServer) String ¶
func (s *ArtifactServer) String(args *interface{}, reply *string) error
type BasicError ¶
type BasicError struct {
Message string
}
This is a type that wraps error types so that they can be messaged across RPC channels. Since "error" is an interface, we can't always gob-encode the underlying structure. This is a valid error interface implementer that we will push across.
func NewBasicError ¶
func NewBasicError(err error) *BasicError
func (*BasicError) Error ¶
func (e *BasicError) Error() string
type BuildPrepareResponse ¶ added in v0.3.11
type BuildPrepareResponse struct { Warnings []string Error *BasicError }
type BuildServer ¶
type BuildServer struct {
// contains filtered or unexported fields
}
BuildServer wraps a packer.Build implementation and makes it exportable as part of a Golang RPC server.
func (*BuildServer) Cancel ¶
func (b *BuildServer) Cancel(args *interface{}, reply *interface{}) error
func (*BuildServer) Name ¶
func (b *BuildServer) Name(args *interface{}, reply *string) error
func (*BuildServer) Prepare ¶
func (b *BuildServer) Prepare(args *interface{}, resp *BuildPrepareResponse) error
func (*BuildServer) SetDebug ¶
func (b *BuildServer) SetDebug(val *bool, reply *interface{}) error
func (*BuildServer) SetForce ¶ added in v0.2.0
func (b *BuildServer) SetForce(val *bool, reply *interface{}) error
type BuilderPrepareArgs ¶
type BuilderPrepareArgs struct {
Configs []interface{}
}
type BuilderPrepareResponse ¶ added in v0.3.11
type BuilderPrepareResponse struct { Warnings []string Error *BasicError }
type BuilderServer ¶
type BuilderServer struct {
// contains filtered or unexported fields
}
BuilderServer wraps a packer.Builder implementation and makes it exportable as part of a Golang RPC server.
func (*BuilderServer) Cancel ¶
func (b *BuilderServer) Cancel(args *interface{}, reply *interface{}) error
func (*BuilderServer) Prepare ¶
func (b *BuilderServer) Prepare(args *BuilderPrepareArgs, reply *BuilderPrepareResponse) error
type CacheRLockResponse ¶
type CacheServer ¶
type CacheServer struct {
// contains filtered or unexported fields
}
CacheServer wraps a packer.Cache implementation and makes it exportable as part of a Golang RPC server.
func (*CacheServer) RLock ¶
func (c *CacheServer) RLock(key string, result *CacheRLockResponse) error
func (*CacheServer) RUnlock ¶
func (c *CacheServer) RUnlock(key string, result *interface{}) error
func (*CacheServer) Unlock ¶
func (c *CacheServer) Unlock(key string, result *interface{}) error
type Client ¶ added in v0.5.0
type Client struct {
// contains filtered or unexported fields
}
Client is the client end that communicates with a Packer RPC server. Establishing a connection is up to the user, the Client can just communicate over any ReadWriteCloser.
func (*Client) Communicator ¶ added in v0.5.0
func (c *Client) Communicator() packer.Communicator
func (*Client) Environment ¶ added in v0.5.0
func (c *Client) Environment() packer.Environment
func (*Client) PostProcessor ¶ added in v0.5.0
func (c *Client) PostProcessor() packer.PostProcessor
func (*Client) Provisioner ¶ added in v0.5.0
func (c *Client) Provisioner() packer.Provisioner
type CommandFinished ¶
type CommandFinished struct {
ExitStatus int
}
type CommandRunArgs ¶
type CommandServer ¶
type CommandServer struct {
// contains filtered or unexported fields
}
A CommandServer wraps a packer.Command and makes it exportable as part of a Golang RPC server.
func (*CommandServer) Help ¶
func (c *CommandServer) Help(args *interface{}, reply *string) error
func (*CommandServer) Run ¶
func (c *CommandServer) Run(args *CommandRunArgs, reply *int) error
func (*CommandServer) Synopsis ¶
func (c *CommandServer) Synopsis(args *CommandSynopsisArgs, reply *string) error
type CommandSynopsisArgs ¶
type CommandSynopsisArgs byte
type CommunicatorServer ¶
type CommunicatorServer struct {
// contains filtered or unexported fields
}
CommunicatorServer wraps a packer.Communicator implementation and makes it exportable as part of a Golang RPC server.
func (*CommunicatorServer) Download ¶
func (c *CommunicatorServer) Download(args *CommunicatorDownloadArgs, reply *interface{}) (err error)
func (*CommunicatorServer) Start ¶
func (c *CommunicatorServer) Start(args *CommunicatorStartArgs, reply *interface{}) error
func (*CommunicatorServer) Upload ¶
func (c *CommunicatorServer) Upload(args *CommunicatorUploadArgs, reply *interface{}) (err error)
func (*CommunicatorServer) UploadDir ¶ added in v0.3.5
func (c *CommunicatorServer) UploadDir(args *CommunicatorUploadDirArgs, reply *error) error
type CommunicatorStartArgs ¶
type CommunicatorUploadArgs ¶
type CommunicatorUploadDirArgs ¶ added in v0.3.5
type Environment ¶
type Environment struct {
// contains filtered or unexported fields
}
A Environment is an implementation of the packer.Environment interface where the actual environment is executed over an RPC connection.
func (*Environment) Builder ¶
func (e *Environment) Builder(name string) (b packer.Builder, err error)
func (*Environment) Cache ¶
func (e *Environment) Cache() packer.Cache
func (*Environment) PostProcessor ¶
func (e *Environment) PostProcessor(name string) (p packer.PostProcessor, err error)
func (*Environment) Provisioner ¶
func (e *Environment) Provisioner(name string) (p packer.Provisioner, err error)
func (*Environment) Ui ¶
func (e *Environment) Ui() packer.Ui
type EnvironmentCliArgs ¶
type EnvironmentCliArgs struct {
Args []string
}
type EnvironmentServer ¶
type EnvironmentServer struct {
// contains filtered or unexported fields
}
A EnvironmentServer wraps a packer.Environment and makes it exportable as part of a Golang RPC server.
func (*EnvironmentServer) Builder ¶
func (e *EnvironmentServer) Builder(name string, reply *uint32) error
func (*EnvironmentServer) Cache ¶
func (e *EnvironmentServer) Cache(args *interface{}, reply *uint32) error
func (*EnvironmentServer) Cli ¶
func (e *EnvironmentServer) Cli(args *EnvironmentCliArgs, reply *int) (err error)
func (*EnvironmentServer) PostProcessor ¶
func (e *EnvironmentServer) PostProcessor(name string, reply *uint32) error
func (*EnvironmentServer) Provisioner ¶
func (e *EnvironmentServer) Provisioner(name string, reply *uint32) error
func (*EnvironmentServer) Ui ¶
func (e *EnvironmentServer) Ui(args *interface{}, reply *uint32) error
type HookRunArgs ¶
type HookServer ¶
type HookServer struct {
// contains filtered or unexported fields
}
HookServer wraps a packer.Hook implementation and makes it exportable as part of a Golang RPC server.
func (*HookServer) Cancel ¶ added in v0.3.6
func (h *HookServer) Cancel(args *interface{}, reply *interface{}) error
func (*HookServer) Run ¶
func (h *HookServer) Run(args *HookRunArgs, reply *interface{}) error
type MuxConn ¶ added in v0.5.0
type MuxConn struct {
// contains filtered or unexported fields
}
MuxConn is able to multiplex multiple streams on top of any io.ReadWriteCloser. These streams act like TCP connections (Dial, Accept, Close, full duplex, etc.).
The underlying io.ReadWriteCloser is expected to guarantee delivery and ordering, such as TCP. Congestion control and such aren't implemented by the streams, so that is also up to the underlying connection.
MuxConn works using a fairly dumb multiplexing technique of simply framing every piece of data sent into a prefix + data format. Streams are established using a subset of the TCP protocol. Only a subset is necessary since we assume ordering on the underlying RWC.
func NewMuxConn ¶ added in v0.5.0
func NewMuxConn(rwc io.ReadWriteCloser) *MuxConn
Create a new MuxConn around any io.ReadWriteCloser.
func (*MuxConn) Accept ¶ added in v0.5.0
func (m *MuxConn) Accept(id uint32) (io.ReadWriteCloser, error)
Accept accepts a multiplexed connection with the given ID. This will block until a request is made to connect.
func (*MuxConn) Close ¶ added in v0.5.0
Close closes the underlying io.ReadWriteCloser. This will also close all streams that are open.
type PostProcessorConfigureArgs ¶ added in v0.1.4
type PostProcessorConfigureArgs struct {
Configs []interface{}
}
type PostProcessorProcessResponse ¶
type PostProcessorProcessResponse struct { Err *BasicError Keep bool StreamId uint32 }
type PostProcessorServer ¶
type PostProcessorServer struct {
// contains filtered or unexported fields
}
PostProcessorServer wraps a packer.PostProcessor implementation and makes it exportable as part of a Golang RPC server.
func (*PostProcessorServer) Configure ¶
func (p *PostProcessorServer) Configure(args *PostProcessorConfigureArgs, reply *interface{}) error
func (*PostProcessorServer) PostProcess ¶
func (p *PostProcessorServer) PostProcess(streamId uint32, reply *PostProcessorProcessResponse) error
type ProvisionerPrepareArgs ¶
type ProvisionerPrepareArgs struct {
Configs []interface{}
}
type ProvisionerServer ¶
type ProvisionerServer struct {
// contains filtered or unexported fields
}
ProvisionerServer wraps a packer.Provisioner implementation and makes it exportable as part of a Golang RPC server.
func (*ProvisionerServer) Cancel ¶ added in v0.3.6
func (p *ProvisionerServer) Cancel(args *interface{}, reply *interface{}) error
func (*ProvisionerServer) Prepare ¶
func (p *ProvisionerServer) Prepare(args *ProvisionerPrepareArgs, reply *interface{}) error
func (*ProvisionerServer) Provision ¶
func (p *ProvisionerServer) Provision(streamId uint32, reply *interface{}) error
type Server ¶ added in v0.5.0
type Server struct {
// contains filtered or unexported fields
}
Server represents an RPC server for Packer. This must be paired on the other side with a Client.
func NewServer ¶ added in v0.5.0
func NewServer(conn io.ReadWriteCloser) *Server
NewServer returns a new Packer RPC server.
func (*Server) RegisterArtifact ¶ added in v0.5.0
func (*Server) RegisterBuild ¶ added in v0.5.0
func (*Server) RegisterBuilder ¶ added in v0.5.0
func (*Server) RegisterCache ¶ added in v0.5.0
func (*Server) RegisterCommand ¶ added in v0.5.0
func (*Server) RegisterCommunicator ¶ added in v0.5.0
func (s *Server) RegisterCommunicator(c packer.Communicator)
func (*Server) RegisterEnvironment ¶ added in v0.5.0
func (s *Server) RegisterEnvironment(b packer.Environment)
func (*Server) RegisterHook ¶ added in v0.5.0
func (*Server) RegisterPostProcessor ¶ added in v0.5.0
func (s *Server) RegisterPostProcessor(p packer.PostProcessor)
func (*Server) RegisterProvisioner ¶ added in v0.5.0
func (s *Server) RegisterProvisioner(p packer.Provisioner)
func (*Server) RegisterUi ¶ added in v0.5.0
type Stream ¶ added in v0.5.0
type Stream struct {
// contains filtered or unexported fields
}
Stream is a single stream of data and implements io.ReadWriteCloser. A Stream is full-duplex so you can write data as well as read data.
type Ui ¶
type Ui struct {
// contains filtered or unexported fields
}
An implementation of packer.Ui where the Ui is actually executed over an RPC connection.
type UiMachineArgs ¶ added in v0.3.0
The arguments sent to Ui.Machine