linux_backend

package
v0.0.0-...-68efac8 Latest Latest
Warning

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

Go to latest
Published: Oct 17, 2014 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StateBorn    = State("born")
	StateActive  = State("active")
	StateStopped = State("stopped")
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Container

type Container interface {
	ID() string
	Properties() api.Properties
	GraceTime() time.Duration

	Start(mtu uint32) error

	Snapshot(io.Writer) error
	Cleanup()

	api.Container
}

type ContainerPool

type ContainerPool interface {
	Setup() error
	Create(api.ContainerSpec) (Container, error)
	Restore(io.Reader) (Container, error)
	Destroy(Container) error
	Prune(keep map[string]bool) error
	MaxContainers() int
}

type ContainerSnapshot

type ContainerSnapshot struct {
	ID     string
	Handle string

	GraceTime time.Duration

	State  string
	Events []string

	Limits LimitsSnapshot

	Resources ResourcesSnapshot

	Processes []ProcessSnapshot

	NetIns  []NetInSpec
	NetOuts []NetOutSpec

	Properties api.Properties

	EnvVars []string
}

type FailedToSnapshotError

type FailedToSnapshotError struct {
	OriginalError error
}

func (FailedToSnapshotError) Error

func (e FailedToSnapshotError) Error() string

type HandleExistsError

type HandleExistsError struct {
	Handle string
}

func (HandleExistsError) Error

func (e HandleExistsError) Error() string

type LimitsSnapshot

type LimitsSnapshot struct {
	Memory    *api.MemoryLimits
	Disk      *api.DiskLimits
	Bandwidth *api.BandwidthLimits
	CPU       *api.CPULimits
}

type LinuxBackend

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

func New

func New(logger lager.Logger, containerPool ContainerPool, systemInfo system_info.Provider, snapshotsPath string, mtu uint32) *LinuxBackend

func (*LinuxBackend) Capacity

func (b *LinuxBackend) Capacity() (api.Capacity, error)

func (*LinuxBackend) Containers

func (b *LinuxBackend) Containers(filter api.Properties) (containers []api.Container, err error)

func (*LinuxBackend) Create

func (b *LinuxBackend) Create(spec api.ContainerSpec) (api.Container, error)

func (*LinuxBackend) Destroy

func (b *LinuxBackend) Destroy(handle string) error

func (*LinuxBackend) GraceTime

func (b *LinuxBackend) GraceTime(container api.Container) time.Duration

func (*LinuxBackend) Lookup

func (b *LinuxBackend) Lookup(handle string) (api.Container, error)

func (*LinuxBackend) Ping

func (b *LinuxBackend) Ping() error

func (*LinuxBackend) Setup

func (b *LinuxBackend) Setup() error

func (*LinuxBackend) Start

func (b *LinuxBackend) Start() error

func (*LinuxBackend) Stop

func (b *LinuxBackend) Stop()

type LinuxContainer

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

func NewLinuxContainer

func NewLinuxContainer(
	logger lager.Logger,
	id, handle, path string,
	properties api.Properties,
	graceTime time.Duration,
	resources *Resources,
	portPool PortPool,
	runner command_runner.CommandRunner,
	cgroupsManager cgroups_manager.CgroupsManager,
	quotaManager quota_manager.QuotaManager,
	bandwidthManager bandwidth_manager.BandwidthManager,
	processTracker process_tracker.ProcessTracker,
	envvars []string,
) *LinuxContainer

func (*LinuxContainer) Attach

func (c *LinuxContainer) Attach(processID uint32, processIO api.ProcessIO) (api.Process, error)

func (*LinuxContainer) Cleanup

func (c *LinuxContainer) Cleanup()

func (*LinuxContainer) CurrentBandwidthLimits

func (c *LinuxContainer) CurrentBandwidthLimits() (api.BandwidthLimits, error)

func (*LinuxContainer) CurrentCPULimits

func (c *LinuxContainer) CurrentCPULimits() (api.CPULimits, error)

func (*LinuxContainer) CurrentDiskLimits

func (c *LinuxContainer) CurrentDiskLimits() (api.DiskLimits, error)

func (*LinuxContainer) CurrentEnvVars

func (c *LinuxContainer) CurrentEnvVars() []string

func (*LinuxContainer) CurrentMemoryLimits

func (c *LinuxContainer) CurrentMemoryLimits() (api.MemoryLimits, error)

func (*LinuxContainer) Events

func (c *LinuxContainer) Events() []string

func (*LinuxContainer) GraceTime

func (c *LinuxContainer) GraceTime() time.Duration

func (*LinuxContainer) Handle

func (c *LinuxContainer) Handle() string

func (*LinuxContainer) ID

func (c *LinuxContainer) ID() string

func (*LinuxContainer) Info

func (c *LinuxContainer) Info() (api.ContainerInfo, error)

func (*LinuxContainer) LimitBandwidth

func (c *LinuxContainer) LimitBandwidth(limits api.BandwidthLimits) error

func (*LinuxContainer) LimitCPU

func (c *LinuxContainer) LimitCPU(limits api.CPULimits) error

func (*LinuxContainer) LimitDisk

func (c *LinuxContainer) LimitDisk(limits api.DiskLimits) error

func (*LinuxContainer) LimitMemory

func (c *LinuxContainer) LimitMemory(limits api.MemoryLimits) error

func (*LinuxContainer) NetIn

func (c *LinuxContainer) NetIn(hostPort uint32, containerPort uint32) (uint32, uint32, error)

func (*LinuxContainer) NetOut

func (c *LinuxContainer) NetOut(network string, port uint32) error

func (*LinuxContainer) Properties

func (c *LinuxContainer) Properties() api.Properties

func (*LinuxContainer) Resources

func (c *LinuxContainer) Resources() *Resources

func (*LinuxContainer) Restore

func (c *LinuxContainer) Restore(snapshot ContainerSnapshot) error

func (*LinuxContainer) Run

func (c *LinuxContainer) Run(spec api.ProcessSpec, processIO api.ProcessIO) (api.Process, error)

func (*LinuxContainer) Snapshot

func (c *LinuxContainer) Snapshot(out io.Writer) error

func (*LinuxContainer) Start

func (c *LinuxContainer) Start(mtu uint32) error

func (*LinuxContainer) State

func (c *LinuxContainer) State() State

func (*LinuxContainer) Stop

func (c *LinuxContainer) Stop(kill bool) error

func (*LinuxContainer) StreamIn

func (c *LinuxContainer) StreamIn(dstPath string, tarStream io.Reader) error

func (*LinuxContainer) StreamOut

func (c *LinuxContainer) StreamOut(srcPath string) (io.ReadCloser, error)

type NetInSpec

type NetInSpec struct {
	HostPort      uint32
	ContainerPort uint32
}

type NetOutSpec

type NetOutSpec struct {
	Network string
	Port    uint32
}

type PortPool

type PortPool interface {
	Acquire() (uint32, error)
	Remove(uint32) error
	Release(uint32)
}

type ProcessSnapshot

type ProcessSnapshot struct {
	ID  uint32
	TTY bool
}

type Resources

type Resources struct {
	UID     uint32
	Network *network.Network
	Ports   []uint32
	// contains filtered or unexported fields
}

func NewResources

func NewResources(
	uid uint32,
	network *network.Network,
	ports []uint32,
) *Resources

func (*Resources) AddPort

func (r *Resources) AddPort(port uint32)

type ResourcesSnapshot

type ResourcesSnapshot struct {
	UID     uint32
	Network *network.Network
	Ports   []uint32
}

type State

type State string

type UnknownHandleError

type UnknownHandleError struct {
	Handle string
}

func (UnknownHandleError) Error

func (e UnknownHandleError) Error() string

Jump to

Keyboard shortcuts

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