localbinary

package
v0.16.2-gitlab.18 Latest Latest
Warning

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

Go to latest
Published: Jul 18, 2022 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PluginEnvKey        = "MACHINE_PLUGIN_TOKEN"
	PluginEnvVal        = "42"
	PluginEnvDriverName = "MACHINE_PLUGIN_DRIVER_NAME"
)

Variables

View Source
var (
	CurrentBinaryIsDockerMachine = false
	CoreDrivers                  = []string{"amazonec2", "azure", "digitalocean",
		"exoscale", "generic", "google", "hyperv", "none", "openstack",
		"rackspace", "softlayer", "virtualbox", "vmwarefusion",
		"vmwarevcloudair", "vmwarevsphere"}
)

Functions

This section is empty.

Types

type DriverPlugin

type DriverPlugin interface {
	PluginServer
	PluginStreamer
}

DriverPlugin interface wraps the underlying mechanics of starting a driver plugin server and then figuring out where it can be dialed.

type ErrPluginBinaryNotFound

type ErrPluginBinaryNotFound struct {
	// contains filtered or unexported fields
}

func (ErrPluginBinaryNotFound) Error

func (e ErrPluginBinaryNotFound) Error() string

type Executor

type Executor struct {
	DriverName string
	// contains filtered or unexported fields
}

func (*Executor) Close

func (lbe *Executor) Close() error

func (*Executor) Start

func (lbe *Executor) Start() (*bufio.Scanner, *bufio.Scanner, error)

type McnBinaryExecutor

type McnBinaryExecutor interface {
	// Execute the driver plugin.  Returns scanners for plugin binary
	// stdout and stderr.
	Start() (*bufio.Scanner, *bufio.Scanner, error)

	// Stop reading from the plugins in question.
	Close() error
}

type Plugin

type Plugin struct {
	Executor    McnBinaryExecutor
	Addr        string
	MachineName string
	// contains filtered or unexported fields
}

func NewPlugin

func NewPlugin(driverName string) (*Plugin, error)

func (*Plugin) Address

func (lbp *Plugin) Address() (string, error)

func (*Plugin) AttachStream

func (lbp *Plugin) AttachStream(scanner *bufio.Scanner) <-chan string

func (*Plugin) Close

func (lbp *Plugin) Close() error

func (*Plugin) Serve

func (lbp *Plugin) Serve() error

type PluginServer

type PluginServer interface {
	// Get the address where the plugin server is listening.
	Address() (string, error)

	// Serve kicks off the plugin server.
	Serve() error

	// Close shuts down the initialized server.
	Close() error
}

type PluginStreamer

type PluginStreamer interface {
	// Return a channel for receiving the output of the stream line by
	// line.
	//
	// It happens to be the case that we do this all inside of the main
	// plugin struct today, but that may not be the case forever.
	AttachStream(*bufio.Scanner) <-chan string
}

Jump to

Keyboard shortcuts

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