cluster

package
v0.4.0-rc1 Latest Latest
Warning

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

Go to latest
Published: Jul 22, 2015 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const SwarmLabelNamespace = "com.docker.swarm"

SwarmLabelNamespace defines the key prefix in all custom labels

Variables

This section is empty.

Functions

This section is empty.

Types

type Cluster

type Cluster interface {
	// Create a container
	CreateContainer(config *ContainerConfig, name string) (*Container, error)

	// Remove a container
	RemoveContainer(container *Container, force bool) error

	// Return all images
	Images() []*Image

	// Return one image matching `IDOrName`
	Image(IDOrName string) *Image

	// Remove images from the cluster
	RemoveImages(name string) ([]*dockerclient.ImageDelete, error)

	// Return all containers
	Containers() Containers

	// Return container the matching `IDOrName`
	// TODO: remove this method from the interface as we can use
	// cluster.Containers().Get(IDOrName)
	Container(IDOrName string) *Container

	// Pull images
	// `callback` can be called multiple time
	//  `what` is what is being pulled
	//  `status` is the current status, like "", "in progress" or "downloaded
	Pull(name string, authConfig *dockerclient.AuthConfig, callback func(what, status string))

	// Import image
	// `callback` can be called multiple time
	// `what` is what is being imported
	// `status` is the current status, like "", "in progress" or "imported"
	Import(source string, repository string, tag string, imageReader io.Reader, callback func(what, status string))

	// Load images
	// `callback` can be called multiple time
	// `what` is what is being loaded
	// `status` is the current status, like "", "in progress" or "loaded"
	Load(imageReader io.Reader, callback func(what, status string))

	// Return some info about the cluster, like nb or containers / images
	// It is pretty open, so the implementation decides what to return.
	Info() [][]string

	// Return the total memory of the cluster
	TotalMemory() int64

	// Return the number of CPUs in the cluster
	TotalCpus() int64

	// Register an event handler for cluster-wide events.
	RegisterEventHandler(h EventHandler) error

	// FIXME: remove this method
	// Return a random engine
	RANDOMENGINE() (*Engine, error)

	// RenameContainer rename a container
	RenameContainer(container *Container, newName string) error
}

Cluster is exported

type Container

type Container struct {
	dockerclient.Container

	Config *ContainerConfig
	Info   dockerclient.ContainerInfo
	Engine *Engine
}

Container is exported

func (*Container) Refresh added in v0.3.0

func (c *Container) Refresh() error

Refresh container

type ContainerConfig added in v0.3.0

type ContainerConfig struct {
	dockerclient.ContainerConfig
}

ContainerConfig is exported TODO store affinities and constraints in their own fields

func BuildContainerConfig added in v0.3.0

func BuildContainerConfig(c dockerclient.ContainerConfig) *ContainerConfig

BuildContainerConfig creates a cluster.ContainerConfig from a dockerclient.ContainerConfig

func (*ContainerConfig) AddAffinity added in v0.4.0

func (c *ContainerConfig) AddAffinity(affinity string) error

AddAffinity to config

func (*ContainerConfig) Affinities added in v0.3.0

func (c *ContainerConfig) Affinities() []string

Affinities returns all the affinities from the ContainerConfig

func (*ContainerConfig) Constraints added in v0.3.0

func (c *ContainerConfig) Constraints() []string

Constraints returns all the constraints from the ContainerConfig

func (*ContainerConfig) SetSwarmID added in v0.3.0

func (c *ContainerConfig) SetSwarmID(id string)

SetSwarmID sets or overrides the Swarm ID in the Config.

func (*ContainerConfig) SwarmID added in v0.3.0

func (c *ContainerConfig) SwarmID() string

SwarmID extracts the Swarm ID from the Config. May return an empty string if not set.

type Containers added in v0.3.0

type Containers []*Container

Containers represents a list a containers

func (Containers) Get added in v0.3.0

func (containers Containers) Get(IDOrName string) *Container

Get returns a container using it's ID or Name

type DriverOpts added in v0.3.0

type DriverOpts []string

DriverOpts are key=values options

func (DriverOpts) Float added in v0.3.0

func (do DriverOpts) Float(key, env string) (float64, bool)

Float returns a float64 from the driver options

func (DriverOpts) IP added in v0.3.0

func (do DriverOpts) IP(key, env string) (net.IP, bool)

IP returns an IP address from the driver options

func (DriverOpts) Int added in v0.3.0

func (do DriverOpts) Int(key, env string) (int64, bool)

Int returns an int64 from the driver options

func (DriverOpts) String added in v0.3.0

func (do DriverOpts) String(key, env string) (string, bool)

String returns a string from the driver options

func (DriverOpts) Uint added in v0.3.0

func (do DriverOpts) Uint(key, env string) (uint64, bool)

Uint returns an int64 from the driver options

type Engine added in v0.3.0

type Engine struct {
	sync.RWMutex

	ID     string
	IP     string
	Addr   string
	Name   string
	Cpus   int64
	Memory int64
	Labels map[string]string
	// contains filtered or unexported fields
}

Engine represents a docker engine

func NewEngine added in v0.3.0

func NewEngine(addr string, overcommitRatio float64) *Engine

NewEngine is exported

func (*Engine) AddContainer added in v0.3.0

func (e *Engine) AddContainer(container *Container) error

AddContainer inject a container into the internal state.

func (*Engine) Connect added in v0.3.0

func (e *Engine) Connect(config *tls.Config) error

Connect will initialize a connection to the Docker daemon running on the host, gather machine specs (memory, cpu, ...) and monitor state changes.

func (*Engine) ConnectWithClient added in v0.3.0

func (e *Engine) ConnectWithClient(client dockerclient.Client) error

ConnectWithClient is exported

func (*Engine) Containers added in v0.3.0

func (e *Engine) Containers() Containers

Containers returns all the containers in the engine.

func (*Engine) Create added in v0.3.0

func (e *Engine) Create(config *ContainerConfig, name string, pullImage bool) (*Container, error)

Create a new container

func (*Engine) Disconnect added in v0.3.0

func (e *Engine) Disconnect()

Disconnect will stop all monitoring of the engine. The Engine object cannot be further used without reconnecting it first.

func (*Engine) Image added in v0.3.0

func (e *Engine) Image(IDOrName string) *Image

Image returns the image with IDOrName in the engine

func (*Engine) Images added in v0.3.0

func (e *Engine) Images() []*Image

Images returns all the images in the engine

func (*Engine) Import added in v0.3.0

func (e *Engine) Import(source string, repository string, tag string, imageReader io.Reader) error

Import image

func (*Engine) IsHealthy added in v0.3.0

func (e *Engine) IsHealthy() bool

IsHealthy returns true if the engine is healthy

func (*Engine) Load added in v0.3.0

func (e *Engine) Load(reader io.Reader) error

Load an image on the engine

func (*Engine) Pull added in v0.3.0

func (e *Engine) Pull(image string, authConfig *dockerclient.AuthConfig) error

Pull an image on the engine

func (*Engine) RefreshContainers added in v0.3.0

func (e *Engine) RefreshContainers(full bool) error

RefreshContainers will refresh the list and status of containers running on the engine. If `full` is true, each container will be inspected. FIXME: unexport this method after mesos scheduler stops using it directly

func (*Engine) RefreshImages added in v0.3.0

func (e *Engine) RefreshImages() error

RefreshImages refreshes the list of images on the engine.

func (*Engine) RegisterEventHandler added in v0.3.0

func (e *Engine) RegisterEventHandler(h EventHandler) error

RegisterEventHandler registers an event handler.

func (*Engine) RemoveContainer added in v0.3.0

func (e *Engine) RemoveContainer(container *Container, force bool) error

RemoveContainer a container from the engine.

func (*Engine) RemoveImage added in v0.3.0

func (e *Engine) RemoveImage(image *Image, name string) ([]*dockerclient.ImageDelete, error)

RemoveImage deletes an image from the engine.

func (*Engine) RenameContainer added in v0.3.0

func (e *Engine) RenameContainer(container *Container, newName string) error

RenameContainer rename a container

func (*Engine) String added in v0.3.0

func (e *Engine) String() string

func (*Engine) TotalCpus added in v0.3.0

func (e *Engine) TotalCpus() int64

TotalCpus returns the total cpus + overcommit

func (*Engine) TotalMemory added in v0.3.0

func (e *Engine) TotalMemory() int64

TotalMemory returns the total memory + overcommit

func (*Engine) UsedCpus added in v0.3.0

func (e *Engine) UsedCpus() int64

UsedCpus returns the sum of CPUs reserved by containers.

func (*Engine) UsedMemory added in v0.3.0

func (e *Engine) UsedMemory() int64

UsedMemory returns the sum of memory reserved by containers.

type EngineSorter added in v0.3.0

type EngineSorter []*Engine

EngineSorter implements the Sort interface to sort Cluster.Engine. It is not guaranteed to be a stable sort.

func (EngineSorter) Len added in v0.3.0

func (s EngineSorter) Len() int

Len returns the number of engines to be sorted.

func (EngineSorter) Less added in v0.3.0

func (s EngineSorter) Less(i, j int) bool

Less reports whether the engine with index i should sort before the engine with index j. Engines are sorted chronologically by name.

func (EngineSorter) Swap added in v0.3.0

func (s EngineSorter) Swap(i, j int)

Swap exchanges the engine elements with indices i and j.

type Event

type Event struct {
	dockerclient.Event
	Engine *Engine
}

Event is exported

type EventHandler

type EventHandler interface {
	Handle(*Event) error
}

EventHandler is exported

type Image added in v0.2.0

type Image struct {
	dockerclient.Image

	Engine *Engine
}

Image is exported

func (*Image) Match added in v0.2.0

func (image *Image) Match(IDOrName string, matchTag bool) bool

Match is exported

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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