60 lines
1.8 KiB
Go
60 lines
1.8 KiB
Go
|
package libcontainerd
|
||
|
|
||
|
import "io"
|
||
|
|
||
|
// State constants used in state change reporting.
|
||
|
const (
|
||
|
StateStart = "start-container"
|
||
|
StatePause = "pause"
|
||
|
StateResume = "resume"
|
||
|
StateExit = "exit"
|
||
|
StateRestart = "restart"
|
||
|
StateRestore = "restore"
|
||
|
StateStartProcess = "start-process"
|
||
|
StateExitProcess = "exit-process"
|
||
|
StateOOM = "oom" // fake state
|
||
|
stateLive = "live"
|
||
|
)
|
||
|
|
||
|
// StateInfo contains description about the new state container has entered.
|
||
|
type StateInfo struct { // FIXME: event?
|
||
|
State string
|
||
|
Pid uint32
|
||
|
ExitCode uint32
|
||
|
ProcessID string
|
||
|
OOMKilled bool // TODO Windows containerd factor out
|
||
|
}
|
||
|
|
||
|
// Backend defines callbacks that the client of the library needs to implement.
|
||
|
type Backend interface {
|
||
|
StateChanged(containerID string, state StateInfo) error
|
||
|
AttachStreams(processFriendlyName string, io IOPipe) error
|
||
|
}
|
||
|
|
||
|
// Client provides access to containerd features.
|
||
|
type Client interface {
|
||
|
Create(containerID string, spec Spec, options ...CreateOption) error
|
||
|
Signal(containerID string, sig int) error
|
||
|
AddProcess(containerID, processFriendlyName string, process Process) error
|
||
|
Resize(containerID, processFriendlyName string, width, height int) error
|
||
|
Pause(containerID string) error
|
||
|
Resume(containerID string) error
|
||
|
Restore(containerID string, options ...CreateOption) error
|
||
|
Stats(containerID string) (*Stats, error)
|
||
|
GetPidsForContainer(containerID string) ([]int, error)
|
||
|
UpdateResources(containerID string, resources Resources) error
|
||
|
}
|
||
|
|
||
|
// CreateOption allows to configure parameters of container creation.
|
||
|
type CreateOption interface {
|
||
|
Apply(interface{}) error
|
||
|
}
|
||
|
|
||
|
// IOPipe contains the stdio streams.
|
||
|
type IOPipe struct {
|
||
|
Stdin io.WriteCloser
|
||
|
Stdout io.Reader
|
||
|
Stderr io.Reader
|
||
|
Terminal bool // Whether stderr is connected on Windows
|
||
|
}
|