Help us shape the future of Go! Take the 2026 Go Developer Survey

communicator

package
v0.30.0 Latest Latest
Warning

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

Go to latest
Published: Oct 19, 2026 License: MPL-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Retry

func Retry(ctx context.Context, f func() error) error

Retry retries the function f until it returns a nil error, a Fatal error, or the context expires.

Types

type Communicator

type Communicator interface {
	// Connect is used to set up the connection
	Connect(provisioners.UIOutput) error

	// Disconnect is used to terminate the connection
	Disconnect() error

	// Timeout returns the configured connection timeout
	Timeout() time.Duration

	// ScriptPath returns the configured script path
	ScriptPath() string

	// Start executes a remote command in a new session
	Start(*remote.Cmd) error

	// Upload is used to upload a single file
	Upload(string, io.Reader) error

	// UploadScript is used to upload a file as an executable script
	UploadScript(string, io.Reader) error

	// UploadDir is used to upload a directory
	UploadDir(string, string) error
}

Communicator is an interface that must be implemented by all communicators used for any of the provisioners

func New

func New(v cty.Value) (Communicator, error)

New returns a configured Communicator or an error if the connection type is not supported

type Fatal

type Fatal interface {
	FatalError() error
}

Fatal is an interface that error values can return to halt Retry

type MockCommunicator

type MockCommunicator struct {
	RemoteScriptPath string
	Commands         map[string]bool
	Uploads          map[string]string
	UploadScripts    map[string]string
	UploadDirs       map[string]string
	CommandFunc      func(*remote.Cmd) error
	DisconnectFunc   func() error
	ConnTimeout      time.Duration
}

MockCommunicator is an implementation of Communicator that can be used for tests.

func (*MockCommunicator) Connect

Connect implementation of communicator.Communicator interface

func (*MockCommunicator) Disconnect

func (c *MockCommunicator) Disconnect() error

Disconnect implementation of communicator.Communicator interface

func (*MockCommunicator) ScriptPath

func (c *MockCommunicator) ScriptPath() string

ScriptPath implementation of communicator.Communicator interface

func (*MockCommunicator) Start

func (c *MockCommunicator) Start(r *remote.Cmd) error

Start implementation of communicator.Communicator interface

func (*MockCommunicator) Timeout

func (c *MockCommunicator) Timeout() time.Duration

Timeout implementation of communicator.Communicator interface

func (*MockCommunicator) Upload

func (c *MockCommunicator) Upload(path string, input io.Reader) error

Upload implementation of communicator.Communicator interface

func (*MockCommunicator) UploadDir

func (c *MockCommunicator) UploadDir(dst string, src string) error

UploadDir implementation of communicator.Communicator interface

func (*MockCommunicator) UploadScript

func (c *MockCommunicator) UploadScript(path string, input io.Reader) error

UploadScript implementation of communicator.Communicator interface

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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