drivers

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Feb 26, 2015 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrHostIsNotRunning = errors.New("host is not running")

Functions

func AddPublicKeyToAuthorizedHosts

func AddPublicKeyToAuthorizedHosts(d Driver, authorizedKeysPath string) error

func GetCreateFlags

func GetCreateFlags() []cli.Flag

GetCreateFlags runs GetCreateFlags for all of the drivers and returns their return values indexed by the driver name

func GetDriverNames

func GetDriverNames() []string

GetDriverNames returns a slice of all registered driver names

func PublicKeyExists

func PublicKeyExists() (bool, error)

func PublicKeyPath

func PublicKeyPath() string

func Register

func Register(name string, registeredDriver *RegisteredDriver) error

Register a driver

Types

type ByFlagName

type ByFlagName []cli.Flag

func (ByFlagName) Len

func (flags ByFlagName) Len() int

func (ByFlagName) Less

func (flags ByFlagName) Less(i, j int) bool

func (ByFlagName) Swap

func (flags ByFlagName) Swap(i, j int)

type Driver

type Driver interface {
	// DriverName returns the name of the driver as it is registered
	DriverName() string

	// SetConfigFromFlags configures the driver with the object that was returned
	// by RegisterCreateFlags
	SetConfigFromFlags(flags DriverOptions) error

	// GetURL returns a Docker compatible host URL for connecting to this host
	// e.g. tcp://1.2.3.4:2376
	GetURL() (string, error)

	// GetIP returns an IP or hostname that this host is available at
	// e.g. 1.2.3.4 or docker-host-d60b70a14d3a.cloudapp.net
	GetIP() (string, error)

	// GetState returns the state that the host is in (running, stopped, etc)
	GetState() (state.State, error)

	// PreCreate allows for pre-create operations to make sure a driver is ready for creation
	PreCreateCheck() error

	// Create a host using the driver's config
	Create() error

	// Remove a host
	Remove() error

	// Start a host
	Start() error

	// Stop a host gracefully
	Stop() error

	// Restart a host. This may just call Stop(); Start() if the provider does not
	// have any special restart behaviour.
	Restart() error

	// Kill stops a host forcefully
	Kill() error

	// RestartDocker restarts a Docker daemon on the machine
	StartDocker() error

	// RestartDocker restarts a Docker daemon on the machine
	StopDocker() error

	// Upgrade the version of Docker on the host to the latest version
	Upgrade() error

	// GetDockerConfigDir returns the config directory for storing daemon configs
	GetDockerConfigDir() string

	// GetSSHCommand returns a command for SSH pointing at the correct user, host
	// and keys for the host with args appended. If no args are passed, it will
	// initiate an interactive SSH session as if SSH were passed no args.
	GetSSHCommand(args ...string) (*exec.Cmd, error)
}

Driver defines how a host is created and controlled. Different types of driver represent different ways hosts can be created (e.g. different hypervisors, different cloud providers)

func NewDriver

func NewDriver(name string, machineName string, storePath string, caCert string, privateKey string) (Driver, error)

NewDriver creates a new driver of type "name"

type DriverOptions

type DriverOptions interface {
	String(key string) string
	Int(key string) int
	Bool(key string) bool
}

type RegisteredDriver

type RegisteredDriver struct {
	New            func(machineName string, storePath string, caCert string, privateKey string) (Driver, error)
	GetCreateFlags func() []cli.Flag
}

RegisteredDriver is used to register a driver with the Register function. It has two attributes:

  • New: a function that returns a new driver given a path to store host configuration in
  • RegisterCreateFlags: a function that takes the FlagSet for "docker hosts create" and returns an object to pass to SetConfigFromFlags

Directories

Path Synopsis
this is empty to allow builds on non-windows platforms
this is empty to allow builds on non-windows platforms
this is empty to allow builds on non-darwin platforms
this is empty to allow builds on non-darwin platforms

Jump to

Keyboard shortcuts

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