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
    }

    Source Files