Documentation ¶
Index ¶
- type BasicHandleFactory
- type Config
- type ConstantConfig
- type ContainerConfig
- type ContainerLifecycle
- type ContainerQuery
- type ContainerState
- type FileToCopy
- type Handle
- type HandleFactory
- type ID
- type PendingCommit
- type PortLayerVsphere
- func (p *PortLayerVsphere) Commit(handle Handle) (ID, error)
- func (p *PortLayerVsphere) CopyTo(handle Handle, targetDir string, fname string, perms int16, data []byte) (Handle, error)
- func (p *PortLayerVsphere) CreateContainer(name string) (Handle, error)
- func (p *PortLayerVsphere) DestroyContainer(cid ID) error
- func (p *PortLayerVsphere) GetHandle(cid ID) (Handle, error)
- func (p *PortLayerVsphere) Init(gateway VmomiGateway, factory HandleFactory) error
- func (p *PortLayerVsphere) SetEntryPoint(handle Handle, workDir string, execPath string, execArgs string) (Handle, error)
- func (p *PortLayerVsphere) SetLimits(handle Handle, memoryMb int, cpuMhz int) (Handle, error)
- func (p *PortLayerVsphere) SetRunState(handle Handle, runState RunState) (Handle, error)
- type ProcessConfig
- type ProcessLifecycle
- type ProcessRunState
- type ProcessState
- type ProcessStatus
- type ResourceLimits
- type RunState
- type VmomiGateway
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BasicHandleFactory ¶
type BasicHandleFactory struct { }
type Config ¶
type Config struct { Name string Limits ResourceLimits }
variable container configuration state
type ConstantConfig ¶
config state that cannot change for the lifetime of the container
type ContainerConfig ¶
type ContainerConfig struct { ConstantConfig Config MainProcess ProcessConfig ExecdProcs []ProcessConfig }
ContainerConfig is a type representing the configuration of a container and its processes
type ContainerLifecycle ¶
type ContainerLifecycle interface { // CreateContainer creates a new container representation and returns a Handle // The Handle can be used to configure the container before its actually created // Calling Commit on the Handle will create the container CreateContainer(name string) (Handle, error) // GetHandle allows for an existing container to be modified // The Handle can be used to reconfigure the container // Calling Commit on the Handle will apply the reconfiguration // Commit will fail if another client committed a modification after GetHandle was called GetHandle(cid ID) (Handle, error) // CopyTo copies a file into the container represented by the handle // If the container is stopped, the file will be copied in when it is next started CopyTo(handle Handle, targetDir string, fname string, perms int16, data []byte) (Handle, error) // SetEntryPoint sets the entry point for the container // This is the executable, the lifecycle of which is tied to the container lifecycle SetEntryPoint(handle Handle, workDir string, execPath string, execArgs string) (Handle, error) // SetLimits sets resource limits on the container // A value of -1 implies a default value, not unlimited // New limits will be ignored if committed to a running container SetLimits(handle Handle, memoryMb int, cpuMhz int) (Handle, error) // SetRunState allows for the running state of a container to be modified // Created is not a valid state and will return an error SetRunState(handle Handle, runState RunState) (Handle, error) // Commit applies changes made to the Handle to either a new or running container // Commit will fail if another client committed a modification after GetHandle was called // Commit blocks until all changes have been committed Commit(handle Handle) (ID, error) // DestroyContainer destroys an stopped container // It is up to the caller to put the container in stopped state before calling Destroy DestroyContainer(cid ID) error }
ContainerLifecycle represents operations concerned with the creation, modification and deletion of containers
type ContainerQuery ¶
type ContainerQuery interface { // ListContainers lists all container IDs for a given state // If forState is nil, all containers are returned ListContainers(forState RunState) ([]ID, error) // GetConfig returns container and process config GetContainerConfig(cid ID) (ContainerConfig, error) // GetState returns the current state of the container and its processes // This call will return a snapshot of the most recent state for each entity GetContainerState(cid ID) (ContainerState, error) // CopyFrom copies file data out of a running container // Returns an error if the container is not running CopyFrom(cid ID, sourceDir string, fname string) ([]byte, error) }
ContainerQuery represents queries that can be made against a Container
type ContainerState ¶
type ContainerState struct { Status RunState MainProcess ProcessState ExecdProcs []ProcessState }
ContainerState is a type representing the runtime state of a container and its processes
type FileToCopy ¶
type FileToCopy struct {
// contains filtered or unexported fields
}
type HandleFactory ¶
type HandleFactory interface {
// contains filtered or unexported methods
}
type ID ¶
func GenerateID ¶
func GenerateID() ID
type PendingCommit ¶
type PendingCommit struct { ConstantConfig // contains filtered or unexported fields }
config that will be applied to a container on commit Needs to be public as it will be shared by net, storage etc
type PortLayerVsphere ¶
type PortLayerVsphere struct {
// contains filtered or unexported fields
}
PortLayerVsphere is a WIP implementation of the execution.go interfaces
func (*PortLayerVsphere) CreateContainer ¶
func (p *PortLayerVsphere) CreateContainer(name string) (Handle, error)
func (*PortLayerVsphere) DestroyContainer ¶
func (p *PortLayerVsphere) DestroyContainer(cid ID) error
func (*PortLayerVsphere) Init ¶
func (p *PortLayerVsphere) Init(gateway VmomiGateway, factory HandleFactory) error
func (*PortLayerVsphere) SetEntryPoint ¶
func (*PortLayerVsphere) SetRunState ¶
func (p *PortLayerVsphere) SetRunState(handle Handle, runState RunState) (Handle, error)
type ProcessConfig ¶
configuration state of a container process
func NewProcessConfig ¶
func NewProcessConfig(workDir string, execPath string, execArgs string) ProcessConfig
type ProcessLifecycle ¶
type ProcessLifecycle interface { // ExecProcess executes a process in the container // The lifecycle of the process is independent of the container main process // The ID returned is a uuid handle to the process ExecProcess(cid ID, workDir string, execPath string, execArgs string) (ID, error) // Send a signal to the process // Specifying a process ID will signal an exec'd process. Specifying the container ID will signal the main process Signal(processID ID, signal int) error }
type ProcessRunState ¶
type ProcessRunState struct { ProcessID ID Status ProcessStatus GuestPid int ExitCode int ExitMsg string StartedAt time.Time FinishedAt time.Time }
runtime status of a container process
type ProcessState ¶
type ProcessState struct {
ProcessRunState
}
ProcessState is the runtime state of a process in a container
type ResourceLimits ¶
type RunState ¶
type RunState int
RunState represents the running state of a container
const ( Created RunState Running Stopped )
type VmomiGateway ¶
type VmomiGateway interface { }
VmomiGateway represents an interface to a pre-authenticated Vmomi API