communicator

package
v1.5.0-alpha20230405 Latest Latest
Warning

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

Go to latest
Published: Apr 5, 2023 License: MPL-2.0 Imports: 15 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