containerd/api/v1/types.go
Michael Crosby ae9b2bafd5 Add basic checkpoint and restore support
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-12-03 16:07:53 -08:00

66 lines
1.6 KiB
Go

package v1
type State struct {
Containers []Container `json:"containers"`
Machine Machine `json:"machine"`
}
type Status string
const (
Paused Status = "paused"
Running Status = "running"
)
type Machine struct {
Cpus int `json:"cpus"`
Memory int64 `json:"memory"`
}
type ContainerState struct {
Status Status `json:"status,omitempty"`
}
type Container struct {
ID string `json:"id,omitempty"`
BundlePath string `json:"bundlePath,omitempty"`
Processes []Process `json:"processes,omitempty"`
Stdout string `json:"stdout,omitempty"`
Stderr string `json:"stderr,omitempty"`
State *ContainerState `json:"state,omitempty"`
Checkpoint *Checkpoint `json:"checkpoint,omitempty"`
}
type User struct {
UID uint32 `json:"uid"`
GID uint32 `json:"gid"`
AdditionalGids []uint32 `json:"additionalGids,omitempty"`
}
type Process struct {
Terminal bool `json:"terminal"`
User User `json:"user"`
Args []string `json:"args,omitempty"`
Env []string `json:"env,omitempty"`
Cwd string `json:"cwd,omitempty"`
Pid int `json:"pid,omitempty"`
}
type Signal struct {
Signal int `json:"signal"`
}
type Event struct {
Type string `json:"type"`
ID string `json:"id,omitempty"`
Status int `json:"status,omitempty"`
}
type Checkpoint struct {
Name string `json:"name,omitempty"`
Path string `json:"path"`
Running bool `json:"running,omitempty"`
Tcp bool `json:"tcp"`
UnixSockets bool `json:"unixSockets"`
Shell bool `json:"shell"`
}