Add checkpoint and restore

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Update go-runc to 49b2a02ec1ed3e4ae52d30b54a291b75

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Add shim to restore creation

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Keep checkpoint path in service

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Add C/R to non-shim build

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Checkpoint rw and image

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Pause container on bind checkpoints

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Return dump.log in error on checkpoint failure

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Pause container for checkpoint

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Update runc to 639454475cb9c8b861cc599f8bcd5c8c790ae402

For checkpoint into to work you need runc version
639454475cb9c8b861cc599f8bcd5c8c790ae402 + and criu 3.0 as this is what
I have been testing with.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Move restore behind create calls

This remove the restore RPCs in favor of providing the checkpoint
information to the `Create` calls of a container.  If provided, the
container will be created/restored from the checkpoint instead of an
existing container.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Regen protos after rebase

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
This commit is contained in:
Michael Crosby
2017-05-12 10:18:00 -07:00
parent 5ee77fc281
commit 7cc1b64bd8
31 changed files with 2153 additions and 406 deletions

View File

@@ -27,6 +27,8 @@
ResumeRequest
ProcessesRequest
ProcessesResponse
CheckpointRequest
CheckpointResponse
*/
package execution
@@ -38,9 +40,11 @@ import google_protobuf1 "github.com/gogo/protobuf/types"
import _ "github.com/gogo/protobuf/gogoproto"
import containerd_v1_types "github.com/containerd/containerd/api/types/mount"
import containerd_v1_types1 "github.com/containerd/containerd/api/types/container"
import containerd_v1_types2 "github.com/containerd/containerd/api/types/descriptor"
import _ "github.com/gogo/protobuf/types"
import time "time"
import github_com_opencontainers_go_digest "github.com/opencontainers/go-digest"
import (
context "golang.org/x/net/context"
@@ -67,14 +71,15 @@ var _ = time.Kitchen
const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
type CreateRequest struct {
ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Spec *google_protobuf1.Any `protobuf:"bytes,2,opt,name=spec" json:"spec,omitempty"`
Rootfs []*containerd_v1_types.Mount `protobuf:"bytes,3,rep,name=rootfs" json:"rootfs,omitempty"`
Runtime string `protobuf:"bytes,4,opt,name=runtime,proto3" json:"runtime,omitempty"`
Stdin string `protobuf:"bytes,5,opt,name=stdin,proto3" json:"stdin,omitempty"`
Stdout string `protobuf:"bytes,6,opt,name=stdout,proto3" json:"stdout,omitempty"`
Stderr string `protobuf:"bytes,7,opt,name=stderr,proto3" json:"stderr,omitempty"`
Terminal bool `protobuf:"varint,8,opt,name=terminal,proto3" json:"terminal,omitempty"`
ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Spec *google_protobuf1.Any `protobuf:"bytes,2,opt,name=spec" json:"spec,omitempty"`
Rootfs []*containerd_v1_types.Mount `protobuf:"bytes,3,rep,name=rootfs" json:"rootfs,omitempty"`
Runtime string `protobuf:"bytes,4,opt,name=runtime,proto3" json:"runtime,omitempty"`
Stdin string `protobuf:"bytes,5,opt,name=stdin,proto3" json:"stdin,omitempty"`
Stdout string `protobuf:"bytes,6,opt,name=stdout,proto3" json:"stdout,omitempty"`
Stderr string `protobuf:"bytes,7,opt,name=stderr,proto3" json:"stderr,omitempty"`
Terminal bool `protobuf:"varint,8,opt,name=terminal,proto3" json:"terminal,omitempty"`
Checkpoint *containerd_v1_types2.Descriptor `protobuf:"bytes,9,opt,name=checkpoint" json:"checkpoint,omitempty"`
}
func (m *CreateRequest) Reset() { *m = CreateRequest{} }
@@ -337,6 +342,29 @@ func (m *ProcessesResponse) Reset() { *m = ProcessesResponse{
func (*ProcessesResponse) ProtoMessage() {}
func (*ProcessesResponse) Descriptor() ([]byte, []int) { return fileDescriptorExecution, []int{17} }
type CheckpointRequest struct {
ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
AllowTcp bool `protobuf:"varint,2,opt,name=allow_tcp,json=allowTcp,proto3" json:"allow_tcp,omitempty"`
AllowUnixSockets bool `protobuf:"varint,3,opt,name=allow_unix_sockets,json=allowUnixSockets,proto3" json:"allow_unix_sockets,omitempty"`
AllowTerminal bool `protobuf:"varint,4,opt,name=allow_terminal,json=allowTerminal,proto3" json:"allow_terminal,omitempty"`
FileLocks bool `protobuf:"varint,5,opt,name=file_locks,json=fileLocks,proto3" json:"file_locks,omitempty"`
EmptyNamespaces []string `protobuf:"bytes,6,rep,name=empty_namespaces,json=emptyNamespaces" json:"empty_namespaces,omitempty"`
ParentCheckpoint github_com_opencontainers_go_digest.Digest `protobuf:"bytes,7,opt,name=parent_checkpoint,json=parentCheckpoint,proto3,customtype=github.com/opencontainers/go-digest.Digest" json:"parent_checkpoint"`
Exit bool `protobuf:"varint,8,opt,name=exit,proto3" json:"exit,omitempty"`
}
func (m *CheckpointRequest) Reset() { *m = CheckpointRequest{} }
func (*CheckpointRequest) ProtoMessage() {}
func (*CheckpointRequest) Descriptor() ([]byte, []int) { return fileDescriptorExecution, []int{18} }
type CheckpointResponse struct {
Descriptors []*containerd_v1_types2.Descriptor `protobuf:"bytes,1,rep,name=descriptors" json:"descriptors,omitempty"`
}
func (m *CheckpointResponse) Reset() { *m = CheckpointResponse{} }
func (*CheckpointResponse) ProtoMessage() {}
func (*CheckpointResponse) Descriptor() ([]byte, []int) { return fileDescriptorExecution, []int{19} }
func init() {
proto.RegisterType((*CreateRequest)(nil), "containerd.v1.services.CreateRequest")
proto.RegisterType((*CreateResponse)(nil), "containerd.v1.services.CreateResponse")
@@ -356,6 +384,8 @@ func init() {
proto.RegisterType((*ResumeRequest)(nil), "containerd.v1.services.ResumeRequest")
proto.RegisterType((*ProcessesRequest)(nil), "containerd.v1.services.ProcessesRequest")
proto.RegisterType((*ProcessesResponse)(nil), "containerd.v1.services.ProcessesResponse")
proto.RegisterType((*CheckpointRequest)(nil), "containerd.v1.services.CheckpointRequest")
proto.RegisterType((*CheckpointResponse)(nil), "containerd.v1.services.CheckpointResponse")
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -382,6 +412,7 @@ type ContainerServiceClient interface {
Pause(ctx context.Context, in *PauseRequest, opts ...grpc.CallOption) (*google_protobuf.Empty, error)
Resume(ctx context.Context, in *ResumeRequest, opts ...grpc.CallOption) (*google_protobuf.Empty, error)
Processes(ctx context.Context, in *ProcessesRequest, opts ...grpc.CallOption) (*ProcessesResponse, error)
Checkpoint(ctx context.Context, in *CheckpointRequest, opts ...grpc.CallOption) (*CheckpointResponse, error)
}
type containerServiceClient struct {
@@ -532,6 +563,15 @@ func (c *containerServiceClient) Processes(ctx context.Context, in *ProcessesReq
return out, nil
}
func (c *containerServiceClient) Checkpoint(ctx context.Context, in *CheckpointRequest, opts ...grpc.CallOption) (*CheckpointResponse, error) {
out := new(CheckpointResponse)
err := grpc.Invoke(ctx, "/containerd.v1.services.ContainerService/Checkpoint", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// Server API for ContainerService service
type ContainerServiceServer interface {
@@ -548,6 +588,7 @@ type ContainerServiceServer interface {
Pause(context.Context, *PauseRequest) (*google_protobuf.Empty, error)
Resume(context.Context, *ResumeRequest) (*google_protobuf.Empty, error)
Processes(context.Context, *ProcessesRequest) (*ProcessesResponse, error)
Checkpoint(context.Context, *CheckpointRequest) (*CheckpointResponse, error)
}
func RegisterContainerServiceServer(s *grpc.Server, srv ContainerServiceServer) {
@@ -791,6 +832,24 @@ func _ContainerService_Processes_Handler(srv interface{}, ctx context.Context, d
return interceptor(ctx, in, info, handler)
}
func _ContainerService_Checkpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CheckpointRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ContainerServiceServer).Checkpoint(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/containerd.v1.services.ContainerService/Checkpoint",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ContainerServiceServer).Checkpoint(ctx, req.(*CheckpointRequest))
}
return interceptor(ctx, in, info, handler)
}
var _ContainerService_serviceDesc = grpc.ServiceDesc{
ServiceName: "containerd.v1.services.ContainerService",
HandlerType: (*ContainerServiceServer)(nil),
@@ -843,6 +902,10 @@ var _ContainerService_serviceDesc = grpc.ServiceDesc{
MethodName: "Processes",
Handler: _ContainerService_Processes_Handler,
},
{
MethodName: "Checkpoint",
Handler: _ContainerService_Checkpoint_Handler,
},
},
Streams: []grpc.StreamDesc{
{
@@ -931,6 +994,16 @@ func (m *CreateRequest) MarshalTo(dAtA []byte) (int, error) {
}
i++
}
if m.Checkpoint != nil {
dAtA[i] = 0x4a
i++
i = encodeVarintExecution(dAtA, i, uint64(m.Checkpoint.Size()))
n2, err := m.Checkpoint.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n2
}
return i, nil
}
@@ -1040,11 +1113,11 @@ func (m *DeleteResponse) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1a
i++
i = encodeVarintExecution(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(m.ExitedAt)))
n2, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.ExitedAt, dAtA[i:])
n3, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.ExitedAt, dAtA[i:])
if err != nil {
return 0, err
}
i += n2
i += n3
return i, nil
}
@@ -1147,11 +1220,11 @@ func (m *KillRequest) MarshalTo(dAtA []byte) (int, error) {
i = encodeVarintExecution(dAtA, i, uint64(m.Signal))
}
if m.PidOrAll != nil {
nn3, err := m.PidOrAll.MarshalTo(dAtA[i:])
nn4, err := m.PidOrAll.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += nn3
i += nn4
}
return i, nil
}
@@ -1246,11 +1319,11 @@ func (m *ExecRequest) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x32
i++
i = encodeVarintExecution(dAtA, i, uint64(m.Spec.Size()))
n4, err := m.Spec.MarshalTo(dAtA[i:])
n5, err := m.Spec.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n4
i += n5
}
return i, nil
}
@@ -1448,6 +1521,131 @@ func (m *ProcessesResponse) MarshalTo(dAtA []byte) (int, error) {
return i, nil
}
func (m *CheckpointRequest) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *CheckpointRequest) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
_ = l
if len(m.ID) > 0 {
dAtA[i] = 0xa
i++
i = encodeVarintExecution(dAtA, i, uint64(len(m.ID)))
i += copy(dAtA[i:], m.ID)
}
if m.AllowTcp {
dAtA[i] = 0x10
i++
if m.AllowTcp {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i++
}
if m.AllowUnixSockets {
dAtA[i] = 0x18
i++
if m.AllowUnixSockets {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i++
}
if m.AllowTerminal {
dAtA[i] = 0x20
i++
if m.AllowTerminal {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i++
}
if m.FileLocks {
dAtA[i] = 0x28
i++
if m.FileLocks {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i++
}
if len(m.EmptyNamespaces) > 0 {
for _, s := range m.EmptyNamespaces {
dAtA[i] = 0x32
i++
l = len(s)
for l >= 1<<7 {
dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
l >>= 7
i++
}
dAtA[i] = uint8(l)
i++
i += copy(dAtA[i:], s)
}
}
if len(m.ParentCheckpoint) > 0 {
dAtA[i] = 0x3a
i++
i = encodeVarintExecution(dAtA, i, uint64(len(m.ParentCheckpoint)))
i += copy(dAtA[i:], m.ParentCheckpoint)
}
if m.Exit {
dAtA[i] = 0x40
i++
if m.Exit {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i++
}
return i, nil
}
func (m *CheckpointResponse) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *CheckpointResponse) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
_ = l
if len(m.Descriptors) > 0 {
for _, msg := range m.Descriptors {
dAtA[i] = 0xa
i++
i = encodeVarintExecution(dAtA, i, uint64(msg.Size()))
n, err := msg.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n
}
}
return i, nil
}
func encodeFixed64Execution(dAtA []byte, offset int, v uint64) int {
dAtA[offset] = uint8(v)
dAtA[offset+1] = uint8(v >> 8)
@@ -1511,6 +1709,10 @@ func (m *CreateRequest) Size() (n int) {
if m.Terminal {
n += 2
}
if m.Checkpoint != nil {
l = m.Checkpoint.Size()
n += 1 + l + sovExecution(uint64(l))
}
return n
}
@@ -1736,6 +1938,53 @@ func (m *ProcessesResponse) Size() (n int) {
return n
}
func (m *CheckpointRequest) Size() (n int) {
var l int
_ = l
l = len(m.ID)
if l > 0 {
n += 1 + l + sovExecution(uint64(l))
}
if m.AllowTcp {
n += 2
}
if m.AllowUnixSockets {
n += 2
}
if m.AllowTerminal {
n += 2
}
if m.FileLocks {
n += 2
}
if len(m.EmptyNamespaces) > 0 {
for _, s := range m.EmptyNamespaces {
l = len(s)
n += 1 + l + sovExecution(uint64(l))
}
}
l = len(m.ParentCheckpoint)
if l > 0 {
n += 1 + l + sovExecution(uint64(l))
}
if m.Exit {
n += 2
}
return n
}
func (m *CheckpointResponse) Size() (n int) {
var l int
_ = l
if len(m.Descriptors) > 0 {
for _, e := range m.Descriptors {
l = e.Size()
n += 1 + l + sovExecution(uint64(l))
}
}
return n
}
func sovExecution(x uint64) (n int) {
for {
n++
@@ -1762,6 +2011,7 @@ func (this *CreateRequest) String() string {
`Stdout:` + fmt.Sprintf("%v", this.Stdout) + `,`,
`Stderr:` + fmt.Sprintf("%v", this.Stderr) + `,`,
`Terminal:` + fmt.Sprintf("%v", this.Terminal) + `,`,
`Checkpoint:` + strings.Replace(fmt.Sprintf("%v", this.Checkpoint), "Descriptor", "containerd_v1_types2.Descriptor", 1) + `,`,
`}`,
}, "")
return s
@@ -1968,6 +2218,33 @@ func (this *ProcessesResponse) String() string {
}, "")
return s
}
func (this *CheckpointRequest) String() string {
if this == nil {
return "nil"
}
s := strings.Join([]string{`&CheckpointRequest{`,
`ID:` + fmt.Sprintf("%v", this.ID) + `,`,
`AllowTcp:` + fmt.Sprintf("%v", this.AllowTcp) + `,`,
`AllowUnixSockets:` + fmt.Sprintf("%v", this.AllowUnixSockets) + `,`,
`AllowTerminal:` + fmt.Sprintf("%v", this.AllowTerminal) + `,`,
`FileLocks:` + fmt.Sprintf("%v", this.FileLocks) + `,`,
`EmptyNamespaces:` + fmt.Sprintf("%v", this.EmptyNamespaces) + `,`,
`ParentCheckpoint:` + fmt.Sprintf("%v", this.ParentCheckpoint) + `,`,
`Exit:` + fmt.Sprintf("%v", this.Exit) + `,`,
`}`,
}, "")
return s
}
func (this *CheckpointResponse) String() string {
if this == nil {
return "nil"
}
s := strings.Join([]string{`&CheckpointResponse{`,
`Descriptors:` + strings.Replace(fmt.Sprintf("%v", this.Descriptors), "Descriptor", "containerd_v1_types2.Descriptor", 1) + `,`,
`}`,
}, "")
return s
}
func valueToStringExecution(v interface{}) string {
rv := reflect.ValueOf(v)
if rv.IsNil() {
@@ -2234,6 +2511,39 @@ func (m *CreateRequest) Unmarshal(dAtA []byte) error {
}
}
m.Terminal = bool(v != 0)
case 9:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Checkpoint", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowExecution
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthExecution
}
postIndex := iNdEx + msglen
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.Checkpoint == nil {
m.Checkpoint = &containerd_v1_types2.Descriptor{}
}
if err := m.Checkpoint.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipExecution(dAtA[iNdEx:])
@@ -3878,6 +4188,324 @@ func (m *ProcessesResponse) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *CheckpointRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowExecution
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: CheckpointRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: CheckpointRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ID", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowExecution
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthExecution
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.ID = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field AllowTcp", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowExecution
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
m.AllowTcp = bool(v != 0)
case 3:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field AllowUnixSockets", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowExecution
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
m.AllowUnixSockets = bool(v != 0)
case 4:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field AllowTerminal", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowExecution
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
m.AllowTerminal = bool(v != 0)
case 5:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field FileLocks", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowExecution
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
m.FileLocks = bool(v != 0)
case 6:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field EmptyNamespaces", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowExecution
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthExecution
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.EmptyNamespaces = append(m.EmptyNamespaces, string(dAtA[iNdEx:postIndex]))
iNdEx = postIndex
case 7:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ParentCheckpoint", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowExecution
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthExecution
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.ParentCheckpoint = github_com_opencontainers_go_digest.Digest(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 8:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Exit", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowExecution
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
m.Exit = bool(v != 0)
default:
iNdEx = preIndex
skippy, err := skipExecution(dAtA[iNdEx:])
if err != nil {
return err
}
if skippy < 0 {
return ErrInvalidLengthExecution
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *CheckpointResponse) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowExecution
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: CheckpointResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: CheckpointResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Descriptors", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowExecution
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthExecution
}
postIndex := iNdEx + msglen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Descriptors = append(m.Descriptors, &containerd_v1_types2.Descriptor{})
if err := m.Descriptors[len(m.Descriptors)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipExecution(dAtA[iNdEx:])
if err != nil {
return err
}
if skippy < 0 {
return ErrInvalidLengthExecution
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func skipExecution(dAtA []byte) (n int, err error) {
l := len(dAtA)
iNdEx := 0
@@ -3988,64 +4616,79 @@ func init() {
}
var fileDescriptorExecution = []byte{
// 930 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0xcf, 0x6f, 0xe3, 0x44,
0x14, 0xae, 0xf3, 0xc3, 0x9b, 0xbe, 0x34, 0x4b, 0x77, 0x54, 0x55, 0xc6, 0xa0, 0x24, 0x32, 0xbb,
0x4b, 0x96, 0x83, 0x03, 0xe5, 0xb6, 0x02, 0xa4, 0xfe, 0x88, 0x96, 0xd5, 0xb2, 0x6c, 0x71, 0x91,
0x38, 0x16, 0x37, 0x9e, 0x26, 0x23, 0x39, 0x1e, 0xe3, 0x19, 0x97, 0xe6, 0x06, 0x77, 0x0e, 0x1c,
0xf9, 0x37, 0xf8, 0x2f, 0x7a, 0xe4, 0xc8, 0x69, 0x61, 0xf3, 0x97, 0xa0, 0xf1, 0x8c, 0x13, 0x3b,
0xcd, 0xe0, 0xf6, 0x12, 0xcd, 0x7b, 0xf9, 0xde, 0xf8, 0x7b, 0x6f, 0xbe, 0xf9, 0x06, 0x5e, 0x4c,
0x08, 0x9f, 0xa6, 0x17, 0xee, 0x98, 0xce, 0x86, 0x63, 0x1a, 0x71, 0x9f, 0x44, 0x38, 0x09, 0x8a,
0x4b, 0x3f, 0x26, 0x43, 0x86, 0x93, 0x2b, 0x32, 0xc6, 0x6c, 0x88, 0xaf, 0xf1, 0x38, 0xe5, 0x84,
0x46, 0xab, 0x95, 0x1b, 0x27, 0x94, 0x53, 0xb4, 0xbf, 0x2a, 0x71, 0xaf, 0x3e, 0x73, 0xf3, 0x0a,
0xfb, 0x83, 0x09, 0xa5, 0x93, 0x10, 0x0f, 0x33, 0xd4, 0x45, 0x7a, 0x39, 0xc4, 0xb3, 0x98, 0xcf,
0x65, 0x91, 0xfd, 0xfe, 0xfa, 0x9f, 0x7e, 0x94, 0xff, 0xb5, 0x37, 0xa1, 0x13, 0x9a, 0x2d, 0x87,
0x62, 0xa5, 0xb2, 0x5f, 0xdc, 0x89, 0x2e, 0x9f, 0xc7, 0x98, 0x0d, 0x67, 0x34, 0x8d, 0xb8, 0xfc,
0x55, 0xd5, 0x27, 0xf7, 0xa8, 0x5e, 0x26, 0x57, 0x2b, 0xb5, 0x4b, 0x6f, 0x9d, 0x34, 0x27, 0x33,
0xcc, 0xb8, 0x3f, 0x8b, 0x25, 0xc0, 0xf9, 0xb5, 0x06, 0x9d, 0xe3, 0x04, 0xfb, 0x1c, 0x7b, 0xf8,
0xa7, 0x14, 0x33, 0x8e, 0xf6, 0xa1, 0x46, 0x02, 0xcb, 0xe8, 0x1b, 0x83, 0xed, 0x23, 0x73, 0xf1,
0xb6, 0x57, 0x7b, 0x79, 0xe2, 0xd5, 0x48, 0x80, 0x06, 0xd0, 0x60, 0x31, 0x1e, 0x5b, 0xb5, 0xbe,
0x31, 0x68, 0x1f, 0xec, 0xb9, 0x72, 0x67, 0x37, 0xdf, 0xd9, 0x3d, 0x8c, 0xe6, 0x5e, 0x86, 0x40,
0x07, 0x60, 0x26, 0x94, 0xf2, 0x4b, 0x66, 0xd5, 0xfb, 0xf5, 0x41, 0xfb, 0xc0, 0x76, 0xcb, 0xf3,
0xce, 0x48, 0xbb, 0xaf, 0x45, 0xb3, 0x9e, 0x42, 0x22, 0x0b, 0x1e, 0x24, 0x69, 0x24, 0xd8, 0x59,
0x0d, 0xf1, 0x69, 0x2f, 0x0f, 0xd1, 0x1e, 0x34, 0x19, 0x0f, 0x48, 0x64, 0x35, 0xb3, 0xbc, 0x0c,
0xd0, 0x3e, 0x98, 0x8c, 0x07, 0x34, 0xe5, 0x96, 0x99, 0xa5, 0x55, 0xa4, 0xf2, 0x38, 0x49, 0xac,
0x07, 0xcb, 0x3c, 0x4e, 0x12, 0x64, 0x43, 0x8b, 0xe3, 0x64, 0x46, 0x22, 0x3f, 0xb4, 0x5a, 0x7d,
0x63, 0xd0, 0xf2, 0x96, 0xb1, 0xf3, 0x1c, 0x1e, 0xe6, 0x23, 0x60, 0x31, 0x8d, 0x18, 0xd6, 0xce,
0x60, 0x17, 0xea, 0x31, 0x09, 0xb2, 0x11, 0x74, 0x3c, 0xb1, 0x74, 0x9e, 0xc2, 0xce, 0x19, 0xf7,
0x13, 0x5e, 0x31, 0x3d, 0xe7, 0x63, 0xe8, 0x9c, 0xe0, 0x10, 0x57, 0x8e, 0xd9, 0xf9, 0xcd, 0x80,
0x87, 0x39, 0xb2, 0x82, 0x4d, 0x0f, 0xda, 0xf8, 0x9a, 0xf0, 0x73, 0xc6, 0x7d, 0x9e, 0x32, 0xc5,
0x0a, 0x44, 0xea, 0x2c, 0xcb, 0xa0, 0x43, 0xd8, 0x16, 0x11, 0x0e, 0xce, 0x7d, 0x6e, 0xd5, 0xb3,
0x73, 0xb3, 0x6f, 0x9d, 0xdb, 0xf7, 0xb9, 0x22, 0x8e, 0x5a, 0x37, 0x6f, 0x7b, 0x5b, 0xbf, 0xff,
0xd3, 0x33, 0xbc, 0x96, 0x2c, 0x3b, 0xe4, 0xce, 0x13, 0x68, 0xbf, 0x8c, 0x2e, 0x69, 0x15, 0xeb,
0x0e, 0xb4, 0xbf, 0x21, 0x2c, 0x9f, 0x82, 0xf3, 0x2d, 0xec, 0xc8, 0x50, 0x75, 0xf0, 0x15, 0xc0,
0x52, 0x02, 0xcc, 0x32, 0x32, 0x55, 0x74, 0x37, 0xaa, 0xe2, 0x38, 0xcf, 0x79, 0x85, 0x0a, 0x87,
0x41, 0xfb, 0x15, 0x09, 0xc3, 0x2a, 0x89, 0x8a, 0xc3, 0x27, 0x13, 0x71, 0xc4, 0x72, 0x16, 0x2a,
0x42, 0x08, 0xea, 0x7e, 0x18, 0x66, 0x13, 0x68, 0x7d, 0xbd, 0xe5, 0x89, 0x40, 0xe4, 0xc4, 0x51,
0x0a, 0xb1, 0x75, 0x44, 0x2e, 0x26, 0xc1, 0xd1, 0x0e, 0x40, 0x4c, 0x82, 0x73, 0x9a, 0x9c, 0xfb,
0x61, 0xe8, 0xbc, 0x07, 0x9d, 0xd1, 0x15, 0x8e, 0x38, 0xcb, 0xbb, 0xfa, 0xd3, 0x80, 0xf6, 0xe8,
0x1a, 0x8f, 0xab, 0x68, 0x14, 0xb5, 0x56, 0x2b, 0x6b, 0x6d, 0xa5, 0xe6, 0xfa, 0x66, 0x35, 0x37,
0x34, 0x6a, 0x6e, 0x96, 0xd4, 0x9c, 0xdf, 0x45, 0xb3, 0xea, 0x2e, 0x3a, 0x7d, 0xd8, 0x91, 0x94,
0xd5, 0x49, 0x28, 0x05, 0x1b, 0x2b, 0x05, 0x07, 0x00, 0xa7, 0x7c, 0x5e, 0xd5, 0xd3, 0x2d, 0xe5,
0x8b, 0x4e, 0x7e, 0x26, 0x01, 0x9f, 0x66, 0x9d, 0x74, 0x3c, 0x19, 0x08, 0xc6, 0x53, 0x4c, 0x26,
0x53, 0xd9, 0x49, 0xc7, 0x53, 0x91, 0xf3, 0x25, 0x3c, 0x3a, 0x0e, 0x29, 0xc3, 0x67, 0xa2, 0xdf,
0x7b, 0x7f, 0x4c, 0x5c, 0xb3, 0x53, 0x3f, 0x65, 0xf8, 0x0e, 0xd7, 0xcc, 0xc3, 0x2c, 0x9d, 0x55,
0x02, 0x3f, 0x81, 0xdd, 0xd3, 0x84, 0x8e, 0x31, 0x63, 0x98, 0x55, 0x61, 0xdf, 0xc0, 0xa3, 0x02,
0x56, 0x0d, 0xf2, 0x39, 0x6c, 0xc7, 0x79, 0x52, 0x29, 0xfa, 0xc3, 0x8d, 0x8a, 0x56, 0xa5, 0xde,
0x0a, 0x7e, 0xf0, 0x47, 0x0b, 0x76, 0x97, 0x42, 0x3f, 0x93, 0xaf, 0x0f, 0xfa, 0x01, 0x4c, 0xe9,
0x42, 0xe8, 0x89, 0xbb, 0xf9, 0x7d, 0x72, 0x4b, 0x46, 0x6d, 0x3f, 0xad, 0x82, 0x29, 0xa6, 0x23,
0x68, 0x66, 0x16, 0x85, 0x1e, 0xeb, 0x0a, 0x8a, 0x0e, 0x66, 0xef, 0xdf, 0x52, 0xd3, 0x48, 0xbc,
0x82, 0x82, 0x9f, 0xf4, 0x25, 0x3d, 0xbf, 0x92, 0xc3, 0xe9, 0xf9, 0xad, 0xd9, 0xdb, 0x2b, 0x68,
0x08, 0x8b, 0x41, 0x1f, 0xe9, 0xf0, 0x05, 0x03, 0xb2, 0x2b, 0x5c, 0x03, 0x7d, 0x07, 0x0d, 0xe1,
0x3c, 0xfa, 0xcd, 0x0a, 0x36, 0x65, 0x3f, 0xfe, 0x7f, 0x90, 0xe2, 0x77, 0x0c, 0x0d, 0x61, 0x3e,
0xfa, 0x2d, 0x0b, 0xd6, 0xa4, 0x9d, 0xde, 0x6b, 0x30, 0xa5, 0x99, 0xe8, 0xa7, 0x57, 0x32, 0x1b,
0x7b, 0xf3, 0xa3, 0x99, 0x61, 0x3e, 0x35, 0x44, 0x9b, 0xe2, 0x5a, 0xeb, 0x39, 0x15, 0x7c, 0x4a,
0xdf, 0x66, 0xc9, 0x19, 0x0e, 0xa1, 0x7e, 0xca, 0xe7, 0xc8, 0xd1, 0x81, 0x57, 0x26, 0xa1, 0x6d,
0xf2, 0x0d, 0xc0, 0xea, 0x92, 0xa3, 0x67, 0x5a, 0x7d, 0xae, 0x1b, 0x81, 0x76, 0xc3, 0x11, 0x34,
0xb3, 0x6b, 0xaf, 0x97, 0x6e, 0xd1, 0x15, 0xb4, 0xdb, 0xbc, 0x00, 0x53, 0xba, 0x82, 0x7e, 0xf8,
0x25, 0xd7, 0xd0, 0x6e, 0xf4, 0x23, 0x6c, 0x2f, 0x9d, 0x00, 0x0d, 0xb4, 0x9c, 0xd6, 0x8c, 0xc5,
0x7e, 0x76, 0x07, 0xa4, 0x3c, 0x85, 0x23, 0xeb, 0xe6, 0x5d, 0x77, 0xeb, 0xef, 0x77, 0xdd, 0xad,
0x5f, 0x16, 0x5d, 0xe3, 0x66, 0xd1, 0x35, 0xfe, 0x5a, 0x74, 0x8d, 0x7f, 0x17, 0x5d, 0xe3, 0xc2,
0xcc, 0xb8, 0x7c, 0xfe, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x76, 0x89, 0x1c, 0x40, 0x06, 0x0b,
0x00, 0x00,
// 1173 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0xdd, 0x6e, 0xe3, 0x44,
0x14, 0xae, 0x93, 0x34, 0x9b, 0x9c, 0x34, 0xdd, 0x74, 0x54, 0x55, 0xc6, 0x0b, 0x49, 0x64, 0xb6,
0x4b, 0x5a, 0x81, 0x03, 0xe5, 0x6e, 0xc5, 0x8f, 0xfa, 0xc7, 0xb2, 0xda, 0xbf, 0xe2, 0x2e, 0xda,
0xcb, 0xe0, 0xda, 0xd3, 0x74, 0x54, 0xc7, 0x63, 0x3c, 0xe3, 0x6e, 0x7b, 0xc7, 0x03, 0x70, 0xc1,
0xab, 0xf0, 0x0a, 0x5c, 0xf5, 0x92, 0x4b, 0x84, 0x50, 0x61, 0xfb, 0x1e, 0x48, 0x68, 0xc6, 0x76,
0xe2, 0xa4, 0x19, 0xdc, 0xde, 0x24, 0x73, 0x8e, 0xcf, 0x39, 0x3e, 0x7f, 0xf3, 0x7d, 0x86, 0x27,
0x43, 0xc2, 0x4f, 0xe2, 0x23, 0xcb, 0xa5, 0xa3, 0xbe, 0x4b, 0x03, 0xee, 0x90, 0x00, 0x47, 0x5e,
0xfe, 0xe8, 0x84, 0xa4, 0xcf, 0x70, 0x74, 0x46, 0x5c, 0xcc, 0xfa, 0xf8, 0x1c, 0xbb, 0x31, 0x27,
0x34, 0x98, 0x9c, 0xac, 0x30, 0xa2, 0x9c, 0xa2, 0xb5, 0x89, 0x8b, 0x75, 0xf6, 0x99, 0x95, 0x79,
0x18, 0x0f, 0x86, 0x94, 0x0e, 0x7d, 0xdc, 0x97, 0x56, 0x47, 0xf1, 0x71, 0x1f, 0x8f, 0x42, 0x7e,
0x91, 0x38, 0x19, 0xef, 0xcd, 0x3e, 0x74, 0x82, 0xec, 0xd1, 0xea, 0x90, 0x0e, 0xa9, 0x3c, 0xf6,
0xc5, 0x29, 0xd5, 0x7e, 0x71, 0xab, 0x74, 0xf9, 0x45, 0x88, 0x59, 0x7f, 0x44, 0xe3, 0x80, 0x27,
0xbf, 0xa9, 0xf7, 0xde, 0x1d, 0xbc, 0xc7, 0xca, 0xc9, 0x29, 0x8d, 0xf2, 0xcd, 0x1d, 0xa2, 0x78,
0x98, 0xb9, 0x11, 0x09, 0x39, 0x8d, 0x72, 0xc7, 0x34, 0x4e, 0x67, 0xb6, 0x78, 0x4e, 0x46, 0x98,
0x71, 0x67, 0x14, 0x26, 0x06, 0xe6, 0x6f, 0x25, 0x68, 0xee, 0x46, 0xd8, 0xe1, 0xd8, 0xc6, 0x3f,
0xc6, 0x98, 0x71, 0xb4, 0x06, 0x25, 0xe2, 0xe9, 0x5a, 0x57, 0xeb, 0xd5, 0x77, 0xaa, 0xd7, 0x57,
0x9d, 0xd2, 0xd3, 0x3d, 0xbb, 0x44, 0x3c, 0xd4, 0x83, 0x0a, 0x0b, 0xb1, 0xab, 0x97, 0xba, 0x5a,
0xaf, 0xb1, 0xb5, 0x6a, 0x25, 0x91, 0xad, 0x2c, 0xb2, 0xb5, 0x1d, 0x5c, 0xd8, 0xd2, 0x02, 0x6d,
0x41, 0x35, 0xa2, 0x94, 0x1f, 0x33, 0xbd, 0xdc, 0x2d, 0xf7, 0x1a, 0x5b, 0x86, 0x35, 0x3d, 0x37,
0x99, 0xb6, 0xf5, 0x42, 0x34, 0xcd, 0x4e, 0x2d, 0x91, 0x0e, 0xf7, 0xa2, 0x38, 0x10, 0xd9, 0xe9,
0x15, 0xf1, 0x6a, 0x3b, 0x13, 0xd1, 0x2a, 0x2c, 0x32, 0xee, 0x91, 0x40, 0x5f, 0x94, 0xfa, 0x44,
0x40, 0x6b, 0x50, 0x65, 0xdc, 0xa3, 0x31, 0xd7, 0xab, 0x52, 0x9d, 0x4a, 0xa9, 0x1e, 0x47, 0x91,
0x7e, 0x6f, 0xac, 0xc7, 0x51, 0x84, 0x0c, 0xa8, 0x71, 0x1c, 0x8d, 0x48, 0xe0, 0xf8, 0x7a, 0xad,
0xab, 0xf5, 0x6a, 0xf6, 0x58, 0x46, 0x5f, 0x03, 0xb8, 0x27, 0xd8, 0x3d, 0x0d, 0x29, 0x09, 0xb8,
0x5e, 0x97, 0xf5, 0x75, 0xe6, 0xe6, 0xbc, 0x37, 0xee, 0xaf, 0x9d, 0x73, 0x31, 0x1f, 0xc3, 0x72,
0xd6, 0x43, 0x16, 0xd2, 0x80, 0x61, 0x65, 0x13, 0x5b, 0x50, 0x0e, 0x89, 0x27, 0x7b, 0xd8, 0xb4,
0xc5, 0xd1, 0x7c, 0x04, 0x4b, 0x87, 0xdc, 0x89, 0x78, 0x41, 0xfb, 0xcd, 0x8f, 0xa0, 0xb9, 0x87,
0x7d, 0x5c, 0x38, 0x27, 0xf3, 0x67, 0x0d, 0x96, 0x33, 0xcb, 0x82, 0x6c, 0x3a, 0xd0, 0xc0, 0xe7,
0x84, 0x0f, 0x18, 0x77, 0x78, 0xcc, 0xd2, 0xac, 0x40, 0xa8, 0x0e, 0xa5, 0x06, 0x6d, 0x43, 0x5d,
0x48, 0xd8, 0x1b, 0x38, 0x5c, 0x2f, 0xcb, 0xc6, 0x18, 0x37, 0x06, 0xff, 0x3a, 0x5b, 0xa9, 0x9d,
0xda, 0xe5, 0x55, 0x67, 0xe1, 0x97, 0xbf, 0x3b, 0x9a, 0x5d, 0x4b, 0xdc, 0xb6, 0xb9, 0xb9, 0x0e,
0x8d, 0xa7, 0xc1, 0x31, 0x2d, 0xca, 0xba, 0x09, 0x8d, 0xe7, 0x84, 0x65, 0x5d, 0x30, 0x5f, 0xc2,
0x52, 0x22, 0xa6, 0x15, 0x7c, 0x05, 0x30, 0x9e, 0x07, 0xd3, 0x35, 0xb9, 0x56, 0xed, 0xb9, 0x23,
0xda, 0xcd, 0x74, 0x76, 0xce, 0xc3, 0x64, 0xd0, 0x78, 0x46, 0x7c, 0xbf, 0x68, 0xc7, 0xc5, 0xf6,
0x90, 0xa1, 0xd8, 0x91, 0xa4, 0x17, 0xa9, 0x84, 0x10, 0x94, 0x1d, 0xdf, 0x97, 0x1d, 0xa8, 0x7d,
0xbb, 0x60, 0x0b, 0x41, 0xe8, 0xc4, 0x28, 0xc5, 0xb6, 0x36, 0x85, 0x2e, 0x24, 0xde, 0xce, 0x12,
0x40, 0x48, 0xbc, 0x01, 0x8d, 0x06, 0x8e, 0xef, 0x9b, 0xf7, 0xa1, 0xb9, 0x7f, 0x86, 0x03, 0xce,
0xb2, 0xaa, 0x7e, 0xd5, 0xa0, 0xb1, 0x7f, 0x8e, 0xdd, 0xa2, 0x34, 0xf2, 0xcb, 0x5a, 0x9a, 0x59,
0xd6, 0xf1, 0x75, 0x28, 0xcf, 0xbf, 0x0e, 0x15, 0xc5, 0x75, 0x58, 0x9c, 0xba, 0x0e, 0xd9, 0x65,
0xae, 0x16, 0x5d, 0x66, 0xb3, 0x0b, 0x4b, 0x49, 0xca, 0xe9, 0x24, 0xd2, 0x0d, 0xd6, 0x26, 0x1b,
0xec, 0x01, 0x1c, 0xf0, 0x8b, 0xa2, 0x9a, 0x6e, 0x6c, 0xbe, 0xa8, 0xe4, 0x2d, 0xf1, 0xf8, 0x89,
0xac, 0xa4, 0x69, 0x27, 0x82, 0xc8, 0xf8, 0x04, 0x93, 0xe1, 0x49, 0x52, 0x49, 0xd3, 0x4e, 0x25,
0xf3, 0x4b, 0x58, 0xd9, 0xf5, 0x29, 0xc3, 0x87, 0xa2, 0xde, 0x3b, 0xbf, 0x4c, 0x5c, 0xb3, 0x03,
0x27, 0x66, 0xf8, 0x16, 0xd7, 0xcc, 0xc6, 0x2c, 0x1e, 0x15, 0x1a, 0x6e, 0x42, 0xeb, 0x20, 0xa2,
0x2e, 0x66, 0x0c, 0xb3, 0x22, 0xdb, 0x57, 0xb0, 0x92, 0xb3, 0x4d, 0x1b, 0xf9, 0x18, 0xea, 0x61,
0xa6, 0x4c, 0x37, 0xfa, 0xfd, 0xb9, 0x1b, 0x9d, 0xba, 0xda, 0x13, 0x73, 0xf3, 0xaf, 0x12, 0xac,
0xec, 0x8e, 0xf1, 0xa7, 0xa8, 0x1b, 0x0f, 0xa0, 0xee, 0xf8, 0x3e, 0x7d, 0x3b, 0xe0, 0x6e, 0x98,
0xed, 0x93, 0x54, 0xbc, 0x76, 0x43, 0xf4, 0x31, 0xa0, 0xe4, 0x61, 0x1c, 0x90, 0xf3, 0x01, 0xa3,
0xee, 0x29, 0xe6, 0x2c, 0xd9, 0x74, 0xbb, 0x25, 0x9f, 0x7c, 0x1f, 0x90, 0xf3, 0xc3, 0x44, 0x8f,
0xd6, 0x61, 0x39, 0x0d, 0x95, 0xed, 0x67, 0x45, 0x5a, 0x36, 0x93, 0x78, 0xd9, 0x92, 0x7e, 0x00,
0x70, 0x4c, 0x7c, 0x3c, 0xf0, 0xa9, 0x7b, 0xca, 0xe4, 0xea, 0xd5, 0xec, 0xba, 0xd0, 0x3c, 0x17,
0x0a, 0xb4, 0x01, 0x2d, 0xc9, 0xd0, 0x83, 0xc0, 0x19, 0x61, 0x16, 0x3a, 0x2e, 0x66, 0x7a, 0xb5,
0x5b, 0xee, 0xd5, 0xed, 0xfb, 0x52, 0xff, 0x72, 0xac, 0x46, 0x03, 0x58, 0x09, 0x9d, 0x08, 0x07,
0x7c, 0x90, 0x83, 0x68, 0x09, 0xed, 0x3b, 0x5b, 0x02, 0x6d, 0xfe, 0xbc, 0xea, 0x6c, 0xe6, 0xb8,
0x92, 0x86, 0x38, 0x98, 0x5c, 0xfb, 0xfe, 0x90, 0x7e, 0xe2, 0x91, 0x21, 0x66, 0xdc, 0xda, 0x93,
0x7f, 0x76, 0x2b, 0x09, 0x36, 0xe9, 0x1d, 0x42, 0x50, 0x11, 0x58, 0x95, 0x92, 0x82, 0x3c, 0x9b,
0x6f, 0x00, 0xe5, 0xbb, 0x9b, 0x0e, 0x6c, 0x1b, 0x1a, 0x13, 0x7e, 0xcd, 0x46, 0x56, 0xc8, 0x13,
0x79, 0x9f, 0xad, 0x7f, 0x6b, 0xd0, 0x1a, 0x03, 0xd4, 0x61, 0xf2, 0xf9, 0x82, 0xde, 0x40, 0x35,
0x61, 0x0f, 0xb4, 0x6e, 0xcd, 0xff, 0xc0, 0xb1, 0xa6, 0x18, 0xda, 0x78, 0x54, 0x64, 0x96, 0x26,
0xbc, 0x0f, 0x8b, 0x92, 0x5a, 0xd0, 0x43, 0x95, 0x43, 0x9e, 0x79, 0x8c, 0xb5, 0x1b, 0x28, 0xb0,
0x2f, 0x86, 0x21, 0xf2, 0x4b, 0xf8, 0x44, 0x9d, 0xdf, 0x14, 0x33, 0xa9, 0xf3, 0x9b, 0xa1, 0xa5,
0x67, 0x50, 0x11, 0xd4, 0x80, 0x3e, 0x54, 0xd9, 0xe7, 0x88, 0xc3, 0x28, 0x40, 0x7b, 0xf4, 0x1d,
0x54, 0x04, 0x63, 0xa8, 0x83, 0xe5, 0xe8, 0xc5, 0x78, 0xf8, 0xff, 0x46, 0x69, 0x7e, 0xbb, 0x50,
0x11, 0xa4, 0xa1, 0x0e, 0x99, 0xa3, 0x14, 0x65, 0xf7, 0x5e, 0x40, 0x35, 0x21, 0x01, 0x75, 0xf7,
0xa6, 0x48, 0xc2, 0x98, 0xff, 0xb5, 0x24, 0x6d, 0x3e, 0xd5, 0x44, 0x99, 0x02, 0x8e, 0xd5, 0x39,
0xe5, 0xf8, 0x45, 0x5d, 0xe6, 0x14, 0xa2, 0x6f, 0x43, 0xf9, 0x80, 0x5f, 0x20, 0x53, 0x65, 0x3c,
0x01, 0x77, 0x65, 0x91, 0xaf, 0x00, 0x26, 0xe0, 0x8c, 0x36, 0x94, 0xfb, 0x39, 0x0b, 0xe0, 0xca,
0x80, 0xfb, 0xb0, 0x28, 0xe1, 0x5a, 0xbd, 0xba, 0x79, 0x34, 0x57, 0x86, 0x79, 0x02, 0xd5, 0x04,
0xcd, 0xd5, 0xcd, 0x9f, 0x42, 0x7b, 0x65, 0xa0, 0x1f, 0xa0, 0x3e, 0x46, 0x70, 0xd4, 0x53, 0xe6,
0x34, 0x43, 0x08, 0xc6, 0xc6, 0x2d, 0x2c, 0xd3, 0x29, 0xb8, 0x00, 0x39, 0x54, 0x52, 0xb7, 0x70,
0x16, 0xf5, 0x8d, 0xcd, 0xdb, 0x98, 0x26, 0x2f, 0xd9, 0xd1, 0x2f, 0xdf, 0xb5, 0x17, 0xfe, 0x78,
0xd7, 0x5e, 0xf8, 0xe9, 0xba, 0xad, 0x5d, 0x5e, 0xb7, 0xb5, 0xdf, 0xaf, 0xdb, 0xda, 0x3f, 0xd7,
0x6d, 0xed, 0xa8, 0x2a, 0x0b, 0xfe, 0xfc, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x60, 0x79, 0x3f,
0x8c, 0xac, 0x0d, 0x00, 0x00,
}

View File

@@ -7,6 +7,7 @@ import "google/protobuf/any.proto";
import "gogoproto/gogo.proto";
import "github.com/containerd/containerd/api/types/mount/mount.proto";
import "github.com/containerd/containerd/api/types/container/container.proto";
import "github.com/containerd/containerd/api/types/descriptor/descriptor.proto";
import "google/protobuf/timestamp.proto";
service ContainerService {
@@ -23,6 +24,7 @@ service ContainerService {
rpc Pause(PauseRequest) returns (google.protobuf.Empty);
rpc Resume(ResumeRequest) returns (google.protobuf.Empty);
rpc Processes(ProcessesRequest) returns (ProcessesResponse);
rpc Checkpoint(CheckpointRequest) returns (CheckpointResponse);
}
message CreateRequest {
@@ -34,6 +36,7 @@ message CreateRequest {
string stdout = 6;
string stderr = 7;
bool terminal = 8;
types.Descriptor checkpoint = 9;
}
message CreateResponse {
@@ -118,3 +121,18 @@ message ProcessesRequest {
message ProcessesResponse{
repeated containerd.v1.types.Process processes = 1;
}
message CheckpointRequest {
string id = 1;
bool allow_tcp = 2;
bool allow_unix_sockets = 3;
bool allow_terminal = 4;
bool file_locks = 5;
repeated string empty_namespaces = 6;
string parent_checkpoint = 7 [(gogoproto.customtype) = "github.com/opencontainers/go-digest.Digest", (gogoproto.nullable) = false];
bool exit = 8;
}
message CheckpointResponse {
repeated types.Descriptor descriptors = 1;
}

View File

@@ -28,6 +28,7 @@
CloseStdinRequest
ProcessesRequest
ProcessesResponse
CheckpointRequest
*/
package shim
@@ -68,15 +69,17 @@ var _ = time.Kitchen
const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
type CreateRequest struct {
ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Bundle string `protobuf:"bytes,2,opt,name=bundle,proto3" json:"bundle,omitempty"`
Runtime string `protobuf:"bytes,3,opt,name=runtime,proto3" json:"runtime,omitempty"`
NoPivot bool `protobuf:"varint,4,opt,name=no_pivot,json=noPivot,proto3" json:"no_pivot,omitempty"`
Terminal bool `protobuf:"varint,5,opt,name=terminal,proto3" json:"terminal,omitempty"`
Stdin string `protobuf:"bytes,6,opt,name=stdin,proto3" json:"stdin,omitempty"`
Stdout string `protobuf:"bytes,7,opt,name=stdout,proto3" json:"stdout,omitempty"`
Stderr string `protobuf:"bytes,8,opt,name=stderr,proto3" json:"stderr,omitempty"`
Rootfs []*containerd_v1_types.Mount `protobuf:"bytes,9,rep,name=rootfs" json:"rootfs,omitempty"`
ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Bundle string `protobuf:"bytes,2,opt,name=bundle,proto3" json:"bundle,omitempty"`
Runtime string `protobuf:"bytes,3,opt,name=runtime,proto3" json:"runtime,omitempty"`
NoPivot bool `protobuf:"varint,4,opt,name=no_pivot,json=noPivot,proto3" json:"no_pivot,omitempty"`
Terminal bool `protobuf:"varint,5,opt,name=terminal,proto3" json:"terminal,omitempty"`
Stdin string `protobuf:"bytes,6,opt,name=stdin,proto3" json:"stdin,omitempty"`
Stdout string `protobuf:"bytes,7,opt,name=stdout,proto3" json:"stdout,omitempty"`
Stderr string `protobuf:"bytes,8,opt,name=stderr,proto3" json:"stderr,omitempty"`
Rootfs []*containerd_v1_types.Mount `protobuf:"bytes,9,rep,name=rootfs" json:"rootfs,omitempty"`
Checkpoint string `protobuf:"bytes,10,opt,name=checkpoint,proto3" json:"checkpoint,omitempty"`
ParentCheckpoint string `protobuf:"bytes,11,opt,name=parent_checkpoint,json=parentCheckpoint,proto3" json:"parent_checkpoint,omitempty"`
}
func (m *CreateRequest) Reset() { *m = CreateRequest{} }
@@ -236,6 +239,20 @@ func (m *ProcessesResponse) Reset() { *m = ProcessesResponse{
func (*ProcessesResponse) ProtoMessage() {}
func (*ProcessesResponse) Descriptor() ([]byte, []int) { return fileDescriptorShim, []int{18} }
type CheckpointRequest struct {
Exit bool `protobuf:"varint,1,opt,name=exit,proto3" json:"exit,omitempty"`
AllowTcp bool `protobuf:"varint,2,opt,name=allow_tcp,json=allowTcp,proto3" json:"allow_tcp,omitempty"`
AllowUnixSockets bool `protobuf:"varint,3,opt,name=allow_unix_sockets,json=allowUnixSockets,proto3" json:"allow_unix_sockets,omitempty"`
AllowTerminal bool `protobuf:"varint,4,opt,name=allow_terminal,json=allowTerminal,proto3" json:"allow_terminal,omitempty"`
FileLocks bool `protobuf:"varint,5,opt,name=file_locks,json=fileLocks,proto3" json:"file_locks,omitempty"`
EmptyNamespaces []string `protobuf:"bytes,6,rep,name=empty_namespaces,json=emptyNamespaces" json:"empty_namespaces,omitempty"`
Image string `protobuf:"bytes,7,opt,name=image,proto3" json:"image,omitempty"`
}
func (m *CheckpointRequest) Reset() { *m = CheckpointRequest{} }
func (*CheckpointRequest) ProtoMessage() {}
func (*CheckpointRequest) Descriptor() ([]byte, []int) { return fileDescriptorShim, []int{19} }
func init() {
proto.RegisterType((*CreateRequest)(nil), "containerd.v1.services.shim.CreateRequest")
proto.RegisterType((*CreateResponse)(nil), "containerd.v1.services.shim.CreateResponse")
@@ -256,6 +273,7 @@ func init() {
proto.RegisterType((*CloseStdinRequest)(nil), "containerd.v1.services.shim.CloseStdinRequest")
proto.RegisterType((*ProcessesRequest)(nil), "containerd.v1.services.shim.ProcessesRequest")
proto.RegisterType((*ProcessesResponse)(nil), "containerd.v1.services.shim.ProcessesResponse")
proto.RegisterType((*CheckpointRequest)(nil), "containerd.v1.services.shim.CheckpointRequest")
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -276,6 +294,7 @@ type ShimClient interface {
Processes(ctx context.Context, in *ProcessesRequest, opts ...grpc.CallOption) (*ProcessesResponse, error)
Pause(ctx context.Context, in *PauseRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
Resume(ctx context.Context, in *ResumeRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
Checkpoint(ctx context.Context, in *CheckpointRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
Exit(ctx context.Context, in *ExitRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
Events(ctx context.Context, in *EventsRequest, opts ...grpc.CallOption) (Shim_EventsClient, error)
Kill(ctx context.Context, in *KillRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
@@ -355,6 +374,15 @@ func (c *shimClient) Resume(ctx context.Context, in *ResumeRequest, opts ...grpc
return out, nil
}
func (c *shimClient) Checkpoint(ctx context.Context, in *CheckpointRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
out := new(google_protobuf1.Empty)
err := grpc.Invoke(ctx, "/containerd.v1.services.shim.Shim/Checkpoint", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *shimClient) Exit(ctx context.Context, in *ExitRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
out := new(google_protobuf1.Empty)
err := grpc.Invoke(ctx, "/containerd.v1.services.shim.Shim/Exit", in, out, c.cc, opts...)
@@ -442,6 +470,7 @@ type ShimServer interface {
Processes(context.Context, *ProcessesRequest) (*ProcessesResponse, error)
Pause(context.Context, *PauseRequest) (*google_protobuf1.Empty, error)
Resume(context.Context, *ResumeRequest) (*google_protobuf1.Empty, error)
Checkpoint(context.Context, *CheckpointRequest) (*google_protobuf1.Empty, error)
Exit(context.Context, *ExitRequest) (*google_protobuf1.Empty, error)
Events(*EventsRequest, Shim_EventsServer) error
Kill(context.Context, *KillRequest) (*google_protobuf1.Empty, error)
@@ -580,6 +609,24 @@ func _Shim_Resume_Handler(srv interface{}, ctx context.Context, dec func(interfa
return interceptor(ctx, in, info, handler)
}
func _Shim_Checkpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CheckpointRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ShimServer).Checkpoint(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/containerd.v1.services.shim.Shim/Checkpoint",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ShimServer).Checkpoint(ctx, req.(*CheckpointRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Shim_Exit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ExitRequest)
if err := dec(in); err != nil {
@@ -723,6 +770,10 @@ var _Shim_serviceDesc = grpc.ServiceDesc{
MethodName: "Resume",
Handler: _Shim_Resume_Handler,
},
{
MethodName: "Checkpoint",
Handler: _Shim_Checkpoint_Handler,
},
{
MethodName: "Exit",
Handler: _Shim_Exit_Handler,
@@ -837,6 +888,18 @@ func (m *CreateRequest) MarshalTo(dAtA []byte) (int, error) {
i += n
}
}
if len(m.Checkpoint) > 0 {
dAtA[i] = 0x52
i++
i = encodeVarintShim(dAtA, i, uint64(len(m.Checkpoint)))
i += copy(dAtA[i:], m.Checkpoint)
}
if len(m.ParentCheckpoint) > 0 {
dAtA[i] = 0x5a
i++
i = encodeVarintShim(dAtA, i, uint64(len(m.ParentCheckpoint)))
i += copy(dAtA[i:], m.ParentCheckpoint)
}
return i, nil
}
@@ -1338,6 +1401,95 @@ func (m *ProcessesResponse) MarshalTo(dAtA []byte) (int, error) {
return i, nil
}
func (m *CheckpointRequest) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *CheckpointRequest) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
_ = l
if m.Exit {
dAtA[i] = 0x8
i++
if m.Exit {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i++
}
if m.AllowTcp {
dAtA[i] = 0x10
i++
if m.AllowTcp {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i++
}
if m.AllowUnixSockets {
dAtA[i] = 0x18
i++
if m.AllowUnixSockets {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i++
}
if m.AllowTerminal {
dAtA[i] = 0x20
i++
if m.AllowTerminal {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i++
}
if m.FileLocks {
dAtA[i] = 0x28
i++
if m.FileLocks {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i++
}
if len(m.EmptyNamespaces) > 0 {
for _, s := range m.EmptyNamespaces {
dAtA[i] = 0x32
i++
l = len(s)
for l >= 1<<7 {
dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
l >>= 7
i++
}
dAtA[i] = uint8(l)
i++
i += copy(dAtA[i:], s)
}
}
if len(m.Image) > 0 {
dAtA[i] = 0x3a
i++
i = encodeVarintShim(dAtA, i, uint64(len(m.Image)))
i += copy(dAtA[i:], m.Image)
}
return i, nil
}
func encodeFixed64Shim(dAtA []byte, offset int, v uint64) int {
dAtA[offset] = uint8(v)
dAtA[offset+1] = uint8(v >> 8)
@@ -1404,6 +1556,14 @@ func (m *CreateRequest) Size() (n int) {
n += 1 + l + sovShim(uint64(l))
}
}
l = len(m.Checkpoint)
if l > 0 {
n += 1 + l + sovShim(uint64(l))
}
l = len(m.ParentCheckpoint)
if l > 0 {
n += 1 + l + sovShim(uint64(l))
}
return n
}
@@ -1609,6 +1769,37 @@ func (m *ProcessesResponse) Size() (n int) {
return n
}
func (m *CheckpointRequest) Size() (n int) {
var l int
_ = l
if m.Exit {
n += 2
}
if m.AllowTcp {
n += 2
}
if m.AllowUnixSockets {
n += 2
}
if m.AllowTerminal {
n += 2
}
if m.FileLocks {
n += 2
}
if len(m.EmptyNamespaces) > 0 {
for _, s := range m.EmptyNamespaces {
l = len(s)
n += 1 + l + sovShim(uint64(l))
}
}
l = len(m.Image)
if l > 0 {
n += 1 + l + sovShim(uint64(l))
}
return n
}
func sovShim(x uint64) (n int) {
for {
n++
@@ -1636,6 +1827,8 @@ func (this *CreateRequest) String() string {
`Stdout:` + fmt.Sprintf("%v", this.Stdout) + `,`,
`Stderr:` + fmt.Sprintf("%v", this.Stderr) + `,`,
`Rootfs:` + strings.Replace(fmt.Sprintf("%v", this.Rootfs), "Mount", "containerd_v1_types.Mount", 1) + `,`,
`Checkpoint:` + fmt.Sprintf("%v", this.Checkpoint) + `,`,
`ParentCheckpoint:` + fmt.Sprintf("%v", this.ParentCheckpoint) + `,`,
`}`,
}, "")
return s
@@ -1829,6 +2022,22 @@ func (this *ProcessesResponse) String() string {
}, "")
return s
}
func (this *CheckpointRequest) String() string {
if this == nil {
return "nil"
}
s := strings.Join([]string{`&CheckpointRequest{`,
`Exit:` + fmt.Sprintf("%v", this.Exit) + `,`,
`AllowTcp:` + fmt.Sprintf("%v", this.AllowTcp) + `,`,
`AllowUnixSockets:` + fmt.Sprintf("%v", this.AllowUnixSockets) + `,`,
`AllowTerminal:` + fmt.Sprintf("%v", this.AllowTerminal) + `,`,
`FileLocks:` + fmt.Sprintf("%v", this.FileLocks) + `,`,
`EmptyNamespaces:` + fmt.Sprintf("%v", this.EmptyNamespaces) + `,`,
`Image:` + fmt.Sprintf("%v", this.Image) + `,`,
`}`,
}, "")
return s
}
func valueToStringShim(v interface{}) string {
rv := reflect.ValueOf(v)
if rv.IsNil() {
@@ -2111,6 +2320,64 @@ func (m *CreateRequest) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
case 10:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Checkpoint", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowShim
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthShim
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Checkpoint = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 11:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ParentCheckpoint", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowShim
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthShim
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.ParentCheckpoint = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipShim(dAtA[iNdEx:])
@@ -3666,6 +3933,214 @@ func (m *ProcessesResponse) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *CheckpointRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowShim
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: CheckpointRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: CheckpointRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Exit", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowShim
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
m.Exit = bool(v != 0)
case 2:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field AllowTcp", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowShim
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
m.AllowTcp = bool(v != 0)
case 3:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field AllowUnixSockets", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowShim
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
m.AllowUnixSockets = bool(v != 0)
case 4:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field AllowTerminal", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowShim
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
m.AllowTerminal = bool(v != 0)
case 5:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field FileLocks", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowShim
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
m.FileLocks = bool(v != 0)
case 6:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field EmptyNamespaces", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowShim
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthShim
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.EmptyNamespaces = append(m.EmptyNamespaces, string(dAtA[iNdEx:postIndex]))
iNdEx = postIndex
case 7:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Image", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowShim
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthShim
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Image = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipShim(dAtA[iNdEx:])
if err != nil {
return err
}
if skippy < 0 {
return ErrInvalidLengthShim
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func skipShim(dAtA []byte) (n int, err error) {
l := len(dAtA)
iNdEx := 0
@@ -3776,65 +4251,76 @@ func init() {
}
var fileDescriptorShim = []byte{
// 951 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0xcf, 0x6f, 0xe3, 0x44,
0x14, 0x5e, 0x27, 0xa9, 0x9b, 0xbe, 0xac, 0xbb, 0xbb, 0xa3, 0xaa, 0xf2, 0xa6, 0x28, 0x29, 0x96,
0x10, 0xd9, 0x22, 0x1c, 0xc8, 0xde, 0x10, 0x1c, 0xda, 0x6d, 0x11, 0x0b, 0x8b, 0x88, 0xa6, 0x7b,
0x43, 0xa2, 0x72, 0x93, 0x69, 0x32, 0xc8, 0xf6, 0x18, 0xcf, 0xb8, 0x6c, 0x6e, 0x9c, 0x39, 0x71,
0xe5, 0xdf, 0xe1, 0xd4, 0x23, 0x47, 0x4e, 0x0b, 0xcd, 0x5f, 0x82, 0xe6, 0x87, 0x9d, 0xa4, 0xa9,
0x93, 0xf4, 0x62, 0xcd, 0x7b, 0xfe, 0x66, 0xe6, 0x7b, 0xdf, 0xfb, 0x31, 0xf0, 0xd5, 0x88, 0x8a,
0x71, 0x76, 0xe9, 0x0f, 0x58, 0xd4, 0x1d, 0xb0, 0x58, 0x04, 0x34, 0x26, 0xe9, 0x70, 0x7e, 0x19,
0x24, 0xb4, 0xcb, 0x49, 0x7a, 0x4d, 0x07, 0x84, 0x77, 0xf9, 0x98, 0x46, 0xea, 0xe3, 0x27, 0x29,
0x13, 0x0c, 0x1d, 0xcc, 0x80, 0xfe, 0xf5, 0xe7, 0x7e, 0x8e, 0xf3, 0x25, 0xa4, 0xf9, 0x7c, 0xc4,
0xd8, 0x28, 0x24, 0x5d, 0x05, 0xbd, 0xcc, 0xae, 0xba, 0x41, 0x3c, 0xd1, 0xfb, 0x9a, 0x07, 0x77,
0x7f, 0x91, 0x28, 0x11, 0xf9, 0xcf, 0xbd, 0x11, 0x1b, 0x31, 0xb5, 0xec, 0xca, 0x95, 0xf1, 0x7e,
0xb9, 0x11, 0x53, 0x31, 0x49, 0x08, 0xef, 0x46, 0x2c, 0x8b, 0x85, 0xfe, 0x9a, 0xdd, 0xa7, 0x0f,
0xd8, 0x5d, 0x38, 0x67, 0x2b, 0x73, 0x4a, 0xfb, 0x2e, 0x6d, 0x41, 0x23, 0xc2, 0x45, 0x10, 0x25,
0x1a, 0xe0, 0xfd, 0x5e, 0x01, 0xe7, 0x55, 0x4a, 0x02, 0x41, 0x30, 0xf9, 0x25, 0x23, 0x5c, 0xa0,
0x7d, 0xa8, 0xd0, 0xa1, 0x6b, 0x1d, 0x5a, 0x9d, 0x9d, 0x13, 0x7b, 0xfa, 0xbe, 0x5d, 0x79, 0x7d,
0x8a, 0x2b, 0x74, 0x88, 0xf6, 0xc1, 0xbe, 0xcc, 0xe2, 0x61, 0x48, 0xdc, 0x8a, 0xfc, 0x87, 0x8d,
0x85, 0x5c, 0xd8, 0x4e, 0xb3, 0x58, 0x9e, 0xeb, 0x56, 0xd5, 0x8f, 0xdc, 0x44, 0xcf, 0xa1, 0x1e,
0xb3, 0x8b, 0x84, 0x5e, 0x33, 0xe1, 0xd6, 0x0e, 0xad, 0x4e, 0x1d, 0x6f, 0xc7, 0xac, 0x2f, 0x4d,
0xd4, 0x84, 0xba, 0x20, 0x69, 0x44, 0xe3, 0x20, 0x74, 0xb7, 0xd4, 0xaf, 0xc2, 0x46, 0x7b, 0xb0,
0xc5, 0xc5, 0x90, 0xc6, 0xae, 0xad, 0x8e, 0xd3, 0x86, 0xbc, 0x9e, 0x8b, 0x21, 0xcb, 0x84, 0xbb,
0xad, 0xaf, 0xd7, 0x96, 0xf1, 0x93, 0x34, 0x75, 0xeb, 0x85, 0x9f, 0xa4, 0x29, 0xea, 0x81, 0x9d,
0x32, 0x26, 0xae, 0xb8, 0xbb, 0x73, 0x58, 0xed, 0x34, 0x7a, 0x4d, 0x7f, 0x31, 0xf3, 0x4a, 0x39,
0xff, 0x7b, 0xa9, 0x38, 0x36, 0x48, 0xcf, 0x83, 0xdd, 0x5c, 0x0b, 0x9e, 0xb0, 0x98, 0x13, 0xf4,
0x14, 0xaa, 0x89, 0x51, 0xc3, 0xc1, 0x72, 0xe9, 0xed, 0xc2, 0xe3, 0x73, 0x11, 0xa4, 0xc2, 0xc8,
0xe5, 0x7d, 0x08, 0xce, 0x29, 0x09, 0xc9, 0x4c, 0xbf, 0xe5, 0x2d, 0x02, 0x76, 0x73, 0x88, 0x39,
0xb6, 0x0d, 0x0d, 0xf2, 0x8e, 0x8a, 0x0b, 0x2e, 0x02, 0x91, 0x71, 0x83, 0x05, 0xe9, 0x3a, 0x57,
0x1e, 0x74, 0x0c, 0x3b, 0xd2, 0x22, 0xc3, 0x8b, 0x40, 0x28, 0xbd, 0x65, 0x00, 0x3a, 0x97, 0x7e,
0x9e, 0x4b, 0xff, 0x6d, 0x9e, 0xcb, 0x93, 0xfa, 0xcd, 0xfb, 0xf6, 0xa3, 0x3f, 0xfe, 0x6d, 0x5b,
0xb8, 0xae, 0xb7, 0x1d, 0x0b, 0xef, 0x4f, 0x0b, 0x1a, 0x67, 0xef, 0xc8, 0x20, 0xe7, 0x35, 0x2f,
0xb9, 0x55, 0x26, 0x79, 0xe5, 0x7e, 0xc9, 0xab, 0x25, 0x92, 0xd7, 0x16, 0x24, 0xef, 0x40, 0x8d,
0x27, 0x64, 0xa0, 0x12, 0xda, 0xe8, 0xed, 0x2d, 0xf1, 0x3d, 0x8e, 0x27, 0x58, 0x21, 0xbc, 0x53,
0xb0, 0x71, 0x48, 0x23, 0x2a, 0x10, 0x82, 0x9a, 0xcc, 0x84, 0xae, 0x37, 0xac, 0xd6, 0xd2, 0x37,
0x0e, 0xd2, 0xa1, 0x22, 0x53, 0xc3, 0x6a, 0x2d, 0x7d, 0x9c, 0x5d, 0x69, 0x26, 0x35, 0xac, 0xd6,
0xde, 0x21, 0x3c, 0xd6, 0x01, 0x96, 0x26, 0xeb, 0x0d, 0x40, 0x5f, 0x4c, 0x4a, 0x33, 0x23, 0xe3,
0xfe, 0x95, 0x0e, 0xc5, 0x58, 0x5d, 0xe5, 0x60, 0x6d, 0xc8, 0xf8, 0xc6, 0x84, 0x8e, 0xc6, 0xfa,
0x36, 0x07, 0x1b, 0xcb, 0x7b, 0x02, 0xce, 0xd9, 0x35, 0x89, 0x05, 0xcf, 0x73, 0xaf, 0x6b, 0xa1,
0x48, 0xbd, 0xf7, 0x97, 0x05, 0x8e, 0x71, 0x18, 0x4a, 0x0f, 0x6d, 0x26, 0x43, 0xb1, 0x3a, 0xa3,
0xf8, 0x52, 0x8a, 0xad, 0xaa, 0x44, 0x8a, 0xbd, 0xdb, 0x3b, 0xb8, 0xb7, 0x8e, 0x75, 0xd9, 0x60,
0x03, 0x45, 0x5f, 0xc0, 0x4e, 0x92, 0xb2, 0x01, 0xe1, 0x9c, 0x70, 0x77, 0x4b, 0xd5, 0xff, 0x07,
0xf7, 0xee, 0xeb, 0x6b, 0x14, 0x9e, 0xc1, 0x65, 0x50, 0xfd, 0x20, 0xe3, 0x45, 0x50, 0x4f, 0xc0,
0xc1, 0x84, 0x67, 0x51, 0xe1, 0x70, 0x64, 0x5d, 0xd1, 0xa2, 0x01, 0x5e, 0x43, 0xe3, 0x3b, 0x1a,
0x86, 0xb3, 0xf1, 0x61, 0x73, 0x3a, 0xca, 0x8b, 0xcc, 0xc1, 0xc6, 0x92, 0x91, 0x05, 0x61, 0xa8,
0xc2, 0xad, 0x63, 0xb9, 0x5c, 0x8e, 0xd5, 0xfb, 0x08, 0x9e, 0xbd, 0x0a, 0x19, 0x27, 0xe7, 0xb2,
0xfc, 0xca, 0xfb, 0xe9, 0x08, 0x9e, 0xf6, 0x73, 0xba, 0x6b, 0xa6, 0x96, 0xf7, 0x03, 0x3c, 0x9b,
0xc3, 0x9a, 0xac, 0x2c, 0xc8, 0x63, 0x3d, 0x48, 0x9e, 0xde, 0x6d, 0x1d, 0x6a, 0xe7, 0x63, 0x1a,
0xa1, 0x00, 0x6c, 0x3d, 0x2c, 0xd0, 0x91, 0xbf, 0xe2, 0x51, 0xf1, 0x17, 0xa6, 0x6b, 0xf3, 0x93,
0x8d, 0xb0, 0x86, 0xe7, 0xb7, 0xb0, 0xa5, 0x66, 0x0d, 0x7a, 0xb1, 0x72, 0xd7, 0xfc, 0x3c, 0x6a,
0xee, 0x2f, 0xb5, 0xdd, 0x99, 0x7c, 0xa9, 0x24, 0x5d, 0x3d, 0x84, 0xd6, 0xd0, 0x5d, 0x18, 0x66,
0x6b, 0xe8, 0xde, 0x99, 0x6a, 0x3f, 0x29, 0xba, 0x82, 0xac, 0xa7, 0x3b, 0xbb, 0xe0, 0x68, 0x13,
0xa8, 0x39, 0xff, 0x67, 0xd8, 0x29, 0x72, 0x89, 0x3e, 0x5d, 0xb9, 0xf1, 0x6e, 0x7d, 0x34, 0xfd,
0x4d, 0xe1, 0x33, 0xe9, 0x55, 0x17, 0xac, 0x89, 0x65, 0xbe, 0x53, 0x4a, 0xa5, 0x7f, 0x03, 0xb6,
0xee, 0xa0, 0x35, 0xd2, 0x2f, 0xb4, 0x59, 0xe9, 0x69, 0xdf, 0x40, 0x4d, 0xb6, 0x1f, 0xea, 0xac,
0x3c, 0x6b, 0xae, 0x43, 0x4b, 0x4f, 0xc2, 0x60, 0xeb, 0x79, 0xb6, 0x86, 0xd7, 0xc2, 0xd0, 0x6b,
0xde, 0xff, 0x90, 0x2a, 0xcc, 0x67, 0x96, 0x64, 0x27, 0xa7, 0xc1, 0x1a, 0x76, 0x73, 0x03, 0xa3,
0x94, 0xdd, 0x8f, 0x32, 0x4e, 0x32, 0x58, 0x1b, 0x67, 0xf1, 0xc2, 0x35, 0x5f, 0x6c, 0x80, 0x34,
0xe9, 0xfd, 0x1a, 0xaa, 0x7d, 0x31, 0x41, 0x1f, 0xaf, 0x4e, 0x6e, 0xf1, 0x74, 0x94, 0x92, 0x7c,
0x0b, 0x30, 0x9b, 0x58, 0x68, 0x75, 0x91, 0x2d, 0x8d, 0xb6, 0xb2, 0x53, 0x4f, 0xdc, 0x9b, 0xdb,
0xd6, 0xa3, 0x7f, 0x6e, 0x5b, 0x8f, 0x7e, 0x9b, 0xb6, 0xac, 0x9b, 0x69, 0xcb, 0xfa, 0x7b, 0xda,
0xb2, 0xfe, 0x9b, 0xb6, 0xac, 0x4b, 0x5b, 0x21, 0x5f, 0xfe, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x26,
0xfb, 0xd6, 0x0f, 0x06, 0x0b, 0x00, 0x00,
// 1125 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0xcb, 0x72, 0xe3, 0x44,
0x17, 0x1e, 0xd9, 0x8e, 0xc7, 0x3e, 0x1e, 0xe7, 0xd2, 0x95, 0x4a, 0x69, 0x9c, 0xff, 0x77, 0x82,
0xaa, 0xa6, 0x70, 0x32, 0x20, 0x43, 0x66, 0x47, 0xc1, 0x22, 0x37, 0x8a, 0x81, 0x00, 0xae, 0x4e,
0x58, 0x51, 0x85, 0x4b, 0x91, 0x3b, 0x76, 0x13, 0x49, 0x2d, 0xd4, 0xad, 0x4c, 0xb2, 0xe3, 0x11,
0xd8, 0xf2, 0x24, 0xec, 0x59, 0x65, 0xc9, 0x0e, 0x56, 0x03, 0x93, 0xb7, 0x60, 0x47, 0xf5, 0x45,
0xb2, 0x9d, 0x44, 0x76, 0xb2, 0x71, 0x9d, 0x73, 0xfa, 0xeb, 0xa3, 0x73, 0xfd, 0xda, 0xf0, 0xd9,
0x90, 0x8a, 0x51, 0x7a, 0xea, 0xfa, 0x2c, 0xec, 0xfa, 0x2c, 0x12, 0x1e, 0x8d, 0x48, 0x32, 0x98,
0x14, 0xbd, 0x98, 0x76, 0x39, 0x49, 0x2e, 0xa8, 0x4f, 0x78, 0x97, 0x8f, 0x68, 0xa8, 0x7e, 0xdc,
0x38, 0x61, 0x82, 0xa1, 0xf5, 0x31, 0xd0, 0xbd, 0xf8, 0xd8, 0xcd, 0x70, 0xae, 0x84, 0xb4, 0x9e,
0x0f, 0x19, 0x1b, 0x06, 0xa4, 0xab, 0xa0, 0xa7, 0xe9, 0x59, 0xd7, 0x8b, 0xae, 0xf4, 0xbd, 0xd6,
0xfa, 0xed, 0x23, 0x12, 0xc6, 0x22, 0x3b, 0x5c, 0x1d, 0xb2, 0x21, 0x53, 0x62, 0x57, 0x4a, 0xc6,
0xfa, 0xe9, 0x83, 0x22, 0x15, 0x57, 0x31, 0xe1, 0xdd, 0x90, 0xa5, 0x91, 0xd0, 0xbf, 0xe6, 0xf6,
0xc1, 0x23, 0x6e, 0xe7, 0xc6, 0xb1, 0x64, 0xbc, 0x6c, 0xdc, 0x0e, 0x5b, 0xd0, 0x90, 0x70, 0xe1,
0x85, 0xb1, 0x06, 0x38, 0x7f, 0x96, 0xa0, 0xb9, 0x9f, 0x10, 0x4f, 0x10, 0x4c, 0x7e, 0x4a, 0x09,
0x17, 0x68, 0x0d, 0x4a, 0x74, 0x60, 0x5b, 0x9b, 0x56, 0xa7, 0xbe, 0x57, 0xbd, 0x79, 0xbb, 0x51,
0x7a, 0x7d, 0x80, 0x4b, 0x74, 0x80, 0xd6, 0xa0, 0x7a, 0x9a, 0x46, 0x83, 0x80, 0xd8, 0x25, 0x79,
0x86, 0x8d, 0x86, 0x6c, 0x78, 0x9a, 0xa4, 0x91, 0xf4, 0x6b, 0x97, 0xd5, 0x41, 0xa6, 0xa2, 0xe7,
0x50, 0x8b, 0x58, 0x3f, 0xa6, 0x17, 0x4c, 0xd8, 0x95, 0x4d, 0xab, 0x53, 0xc3, 0x4f, 0x23, 0xd6,
0x93, 0x2a, 0x6a, 0x41, 0x4d, 0x90, 0x24, 0xa4, 0x91, 0x17, 0xd8, 0x0b, 0xea, 0x28, 0xd7, 0xd1,
0x2a, 0x2c, 0x70, 0x31, 0xa0, 0x91, 0x5d, 0x55, 0xee, 0xb4, 0x22, 0x3f, 0xcf, 0xc5, 0x80, 0xa5,
0xc2, 0x7e, 0xaa, 0x3f, 0xaf, 0x35, 0x63, 0x27, 0x49, 0x62, 0xd7, 0x72, 0x3b, 0x49, 0x12, 0xb4,
0x03, 0xd5, 0x84, 0x31, 0x71, 0xc6, 0xed, 0xfa, 0x66, 0xb9, 0xd3, 0xd8, 0x69, 0xb9, 0xd3, 0x9d,
0x57, 0x95, 0x73, 0xbf, 0x96, 0x15, 0xc7, 0x06, 0x89, 0xda, 0x00, 0xfe, 0x88, 0xf8, 0xe7, 0x31,
0xa3, 0x91, 0xb0, 0x41, 0xf9, 0x9b, 0xb0, 0xa0, 0x97, 0xb0, 0x12, 0x7b, 0x09, 0x89, 0x44, 0x7f,
0x02, 0xd6, 0x50, 0xb0, 0x65, 0x7d, 0xb0, 0x9f, 0xdb, 0x1d, 0x07, 0x16, 0xb3, 0xc2, 0xf2, 0x98,
0x45, 0x9c, 0xa0, 0x65, 0x28, 0xc7, 0xa6, 0xb4, 0x4d, 0x2c, 0x45, 0x67, 0x11, 0x9e, 0x1d, 0x0b,
0x2f, 0x11, 0xa6, 0xf6, 0xce, 0x7b, 0xd0, 0x3c, 0x20, 0x01, 0x19, 0x37, 0xe3, 0xee, 0x15, 0x01,
0x8b, 0x19, 0xc4, 0xb8, 0xdd, 0x80, 0x06, 0xb9, 0xa4, 0xa2, 0xcf, 0x85, 0x27, 0x52, 0x6e, 0xb0,
0x20, 0x4d, 0xc7, 0xca, 0x82, 0x76, 0xa1, 0x2e, 0x35, 0x32, 0xe8, 0x7b, 0x42, 0x35, 0x4f, 0x56,
0x43, 0x0f, 0x86, 0x9b, 0x0d, 0x86, 0x7b, 0x92, 0x0d, 0xc6, 0x5e, 0xed, 0xfa, 0xed, 0xc6, 0x93,
0x5f, 0xfe, 0xde, 0xb0, 0x70, 0x4d, 0x5f, 0xdb, 0x15, 0xce, 0xaf, 0x16, 0x34, 0x0e, 0x2f, 0x89,
0x9f, 0xc5, 0x35, 0xd9, 0x3f, 0xab, 0xa8, 0x7f, 0xa5, 0xfb, 0xfb, 0x57, 0x2e, 0xe8, 0x5f, 0x65,
0xaa, 0x7f, 0x1d, 0xa8, 0xf0, 0x98, 0xf8, 0x6a, 0x3a, 0x1a, 0x3b, 0xab, 0x77, 0xe2, 0xdd, 0x8d,
0xae, 0xb0, 0x42, 0x38, 0x07, 0x50, 0xc5, 0x01, 0x0d, 0xa9, 0x40, 0x08, 0x2a, 0xb2, 0xad, 0x7a,
0x78, 0xb1, 0x92, 0xa5, 0x6d, 0xe4, 0x25, 0x03, 0x15, 0x4c, 0x05, 0x2b, 0x59, 0xda, 0x38, 0x3b,
0xd3, 0x91, 0x54, 0xb0, 0x92, 0x9d, 0x4d, 0x78, 0xa6, 0x13, 0x2c, 0x6c, 0xd6, 0x11, 0x40, 0x4f,
0x5c, 0x15, 0x76, 0x46, 0xe6, 0xfd, 0x86, 0x0e, 0xc4, 0x48, 0x7d, 0xaa, 0x89, 0xb5, 0x22, 0xf3,
0x1b, 0x11, 0x3a, 0x1c, 0xe9, 0xaf, 0x35, 0xb1, 0xd1, 0x9c, 0x25, 0x68, 0x1e, 0x5e, 0x90, 0x48,
0xf0, 0xac, 0xf7, 0x7a, 0x16, 0xf2, 0xd6, 0x3b, 0xbf, 0x5b, 0xd0, 0x34, 0x06, 0x13, 0xd2, 0x63,
0x37, 0xd3, 0x84, 0x58, 0x1e, 0x87, 0xf8, 0x4a, 0x16, 0x5b, 0x4d, 0x89, 0x2c, 0xf6, 0xe2, 0xce,
0xfa, 0xbd, 0x4b, 0xa1, 0xc7, 0x06, 0x1b, 0x28, 0xfa, 0x04, 0xea, 0x71, 0xc2, 0x7c, 0xc2, 0x39,
0xe1, 0xf6, 0x82, 0x5a, 0xa6, 0xff, 0xdd, 0x7b, 0xaf, 0xa7, 0x51, 0x78, 0x0c, 0x97, 0x49, 0xf5,
0xbc, 0x94, 0xe7, 0x49, 0x2d, 0x41, 0x13, 0x13, 0x9e, 0x86, 0xb9, 0xa1, 0x29, 0xe7, 0x8a, 0xe6,
0x0b, 0xf0, 0x1a, 0x1a, 0x5f, 0xd1, 0x20, 0x18, 0x73, 0x51, 0x95, 0xd3, 0x61, 0x36, 0x64, 0x4d,
0x6c, 0x34, 0x99, 0x99, 0x17, 0x04, 0x2a, 0xdd, 0x1a, 0x96, 0xe2, 0xdd, 0x5c, 0x9d, 0x17, 0xb0,
0xb2, 0x1f, 0x30, 0x4e, 0x8e, 0xe5, 0xf8, 0x15, 0xef, 0xd3, 0x36, 0x2c, 0xf7, 0xb2, 0x70, 0xe7,
0x50, 0xa0, 0xf3, 0x2d, 0xac, 0x4c, 0x60, 0x4d, 0x57, 0xa6, 0xca, 0x63, 0x3d, 0xae, 0x3c, 0xff,
0x5a, 0xb0, 0x32, 0xa6, 0x8c, 0xec, 0xf3, 0x08, 0x2a, 0x72, 0xf1, 0xcc, 0x62, 0x29, 0x19, 0xad,
0x43, 0xdd, 0x0b, 0x02, 0xf6, 0xa6, 0x2f, 0xfc, 0xd8, 0xe4, 0x5d, 0x53, 0x86, 0x13, 0x3f, 0x46,
0x1f, 0x00, 0xd2, 0x87, 0x69, 0x44, 0x2f, 0xfb, 0x9c, 0xf9, 0xe7, 0x44, 0x70, 0x55, 0x8b, 0x1a,
0x5e, 0x56, 0x27, 0xdf, 0x45, 0xf4, 0xf2, 0x58, 0xdb, 0xd1, 0x0b, 0x58, 0x34, 0xae, 0xb2, 0x0d,
0xd6, 0xe4, 0xdc, 0xd4, 0xfe, 0xb2, 0x35, 0xfe, 0x3f, 0xc0, 0x19, 0x0d, 0x48, 0x3f, 0x60, 0xfe,
0x39, 0x37, 0x24, 0x5d, 0x97, 0x96, 0x23, 0x69, 0x40, 0x5b, 0xb0, 0xac, 0x9e, 0xc0, 0x7e, 0xe4,
0x85, 0x84, 0xc7, 0x9e, 0x4f, 0xb8, 0x5d, 0xdd, 0x2c, 0x77, 0xea, 0x78, 0x49, 0xd9, 0xbf, 0xc9,
0xcd, 0x72, 0x31, 0x68, 0xe8, 0x0d, 0x89, 0x61, 0x6e, 0xad, 0xec, 0xfc, 0x56, 0x87, 0xca, 0xf1,
0x88, 0x86, 0xc8, 0x83, 0xaa, 0x26, 0x4a, 0xb4, 0xed, 0xce, 0x78, 0x9d, 0xdd, 0xa9, 0x67, 0xaa,
0xf5, 0xf2, 0x41, 0x58, 0xd3, 0xa3, 0x2f, 0x61, 0x41, 0xf1, 0x2c, 0xda, 0x9a, 0x79, 0x6b, 0x92,
0x8b, 0x5b, 0x6b, 0x77, 0x28, 0xe7, 0x50, 0xe6, 0x25, 0xc3, 0xd5, 0x04, 0x3c, 0x27, 0xdc, 0x29,
0x22, 0x9f, 0x13, 0xee, 0x2d, 0x46, 0xff, 0x41, 0x85, 0x2b, 0xc8, 0xfc, 0x70, 0xc7, 0x1f, 0xd8,
0x7e, 0x08, 0xd4, 0xf8, 0xff, 0x11, 0xea, 0xf9, 0x1c, 0xa3, 0x0f, 0x67, 0x5e, 0xbc, 0xbd, 0x1b,
0x2d, 0xf7, 0xa1, 0xf0, 0x71, 0xe9, 0x15, 0x03, 0xcc, 0xc9, 0x65, 0x92, 0x25, 0x0a, 0x4b, 0x7f,
0x04, 0x55, 0xcd, 0x1e, 0x73, 0x4a, 0x3f, 0x45, 0x31, 0x85, 0xde, 0x4e, 0x00, 0xc6, 0xbb, 0x87,
0x66, 0xe7, 0x75, 0x67, 0x49, 0x0b, 0xbd, 0x7e, 0x01, 0x15, 0x49, 0x68, 0xa8, 0x33, 0xd3, 0xdf,
0x04, 0xe7, 0x15, 0x7a, 0xc2, 0x50, 0xd5, 0x2f, 0xc4, 0x9c, 0x6c, 0xa7, 0x9e, 0x91, 0xd6, 0xfd,
0xff, 0x73, 0x14, 0xe6, 0x23, 0x4b, 0x46, 0x27, 0xf9, 0x75, 0x4e, 0x74, 0x13, 0x14, 0x5c, 0x18,
0xdd, 0xf7, 0x32, 0x4f, 0xe2, 0xcf, 0xcd, 0x33, 0xff, 0xcf, 0xd0, 0xda, 0x7a, 0x00, 0xd2, 0x0c,
0xcd, 0xe7, 0x50, 0xee, 0x89, 0x2b, 0xf4, 0xfe, 0xec, 0x91, 0xc9, 0x1f, 0xe3, 0x99, 0x2d, 0xce,
0xdf, 0x80, 0x79, 0x2d, 0xbe, 0xfd, 0x58, 0x14, 0x79, 0xdd, 0xb3, 0xaf, 0xdf, 0xb5, 0x9f, 0xfc,
0xf5, 0xae, 0xfd, 0xe4, 0xe7, 0x9b, 0xb6, 0x75, 0x7d, 0xd3, 0xb6, 0xfe, 0xb8, 0x69, 0x5b, 0xff,
0xdc, 0xb4, 0xad, 0xd3, 0xaa, 0x42, 0xbe, 0xfa, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x5d, 0x44, 0x45,
0xe4, 0xa5, 0x0c, 0x00, 0x00,
}

View File

@@ -21,6 +21,7 @@ service Shim {
rpc Processes(ProcessesRequest) returns (ProcessesResponse);
rpc Pause(PauseRequest) returns (google.protobuf.Empty);
rpc Resume(ResumeRequest) returns (google.protobuf.Empty);
rpc Checkpoint(CheckpointRequest) returns (google.protobuf.Empty);
rpc Exit(ExitRequest) returns (google.protobuf.Empty);
rpc Events(EventsRequest) returns (stream containerd.v1.types.Event);
@@ -40,6 +41,8 @@ message CreateRequest {
string stdout = 7;
string stderr = 8;
repeated containerd.v1.types.Mount rootfs = 9;
string checkpoint = 10;
string parent_checkpoint = 11;
}
message CreateResponse {
@@ -122,3 +125,13 @@ message ProcessesRequest {
message ProcessesResponse{
repeated containerd.v1.types.Process processes = 1;
}
message CheckpointRequest {
bool exit = 1;
bool allow_tcp = 2;
bool allow_unix_sockets = 3;
bool allow_terminal = 4;
bool file_locks = 5;
repeated string empty_namespaces = 6;
string image = 7;
}

View File

@@ -19,8 +19,8 @@ package container
import proto "github.com/gogo/protobuf/proto"
import fmt "fmt"
import math "math"
import google_protobuf "github.com/gogo/protobuf/types"
import _ "github.com/gogo/protobuf/gogoproto"
import google_protobuf1 "github.com/gogo/protobuf/types"
import _ "github.com/gogo/protobuf/types"
import time "time"
@@ -108,9 +108,10 @@ func (x Event_EventType) String() string {
func (Event_EventType) EnumDescriptor() ([]byte, []int) { return fileDescriptorContainer, []int{3, 0} }
type Container struct {
ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Pid uint32 `protobuf:"varint,2,opt,name=pid,proto3" json:"pid,omitempty"`
Status Status `protobuf:"varint,3,opt,name=status,proto3,enum=containerd.v1.types.Status" json:"status,omitempty"`
ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Pid uint32 `protobuf:"varint,2,opt,name=pid,proto3" json:"pid,omitempty"`
Status Status `protobuf:"varint,3,opt,name=status,proto3,enum=containerd.v1.types.Status" json:"status,omitempty"`
Spec *google_protobuf1.Any `protobuf:"bytes,4,opt,name=spec" json:"spec,omitempty"`
}
func (m *Container) Reset() { *m = Container{} }
@@ -118,15 +119,15 @@ func (*Container) ProtoMessage() {}
func (*Container) Descriptor() ([]byte, []int) { return fileDescriptorContainer, []int{0} }
type Process struct {
Pid uint32 `protobuf:"varint,1,opt,name=pid,proto3" json:"pid,omitempty"`
Args []string `protobuf:"bytes,2,rep,name=args" json:"args,omitempty"`
Env []string `protobuf:"bytes,3,rep,name=env" json:"env,omitempty"`
User *User `protobuf:"bytes,4,opt,name=user" json:"user,omitempty"`
Cwd string `protobuf:"bytes,5,opt,name=cwd,proto3" json:"cwd,omitempty"`
Terminal bool `protobuf:"varint,6,opt,name=terminal,proto3" json:"terminal,omitempty"`
ExitStatus uint32 `protobuf:"varint,7,opt,name=exit_status,json=exitStatus,proto3" json:"exit_status,omitempty"`
Status Status `protobuf:"varint,8,opt,name=status,proto3,enum=containerd.v1.types.Status" json:"status,omitempty"`
RuntimeData *google_protobuf.Any `protobuf:"bytes,9,opt,name=runtime_data,json=runtimeData" json:"runtime_data,omitempty"`
Pid uint32 `protobuf:"varint,1,opt,name=pid,proto3" json:"pid,omitempty"`
Args []string `protobuf:"bytes,2,rep,name=args" json:"args,omitempty"`
Env []string `protobuf:"bytes,3,rep,name=env" json:"env,omitempty"`
User *User `protobuf:"bytes,4,opt,name=user" json:"user,omitempty"`
Cwd string `protobuf:"bytes,5,opt,name=cwd,proto3" json:"cwd,omitempty"`
Terminal bool `protobuf:"varint,6,opt,name=terminal,proto3" json:"terminal,omitempty"`
ExitStatus uint32 `protobuf:"varint,7,opt,name=exit_status,json=exitStatus,proto3" json:"exit_status,omitempty"`
Status Status `protobuf:"varint,8,opt,name=status,proto3,enum=containerd.v1.types.Status" json:"status,omitempty"`
RuntimeData *google_protobuf1.Any `protobuf:"bytes,9,opt,name=runtime_data,json=runtimeData" json:"runtime_data,omitempty"`
}
func (m *Process) Reset() { *m = Process{} }
@@ -194,6 +195,16 @@ func (m *Container) MarshalTo(dAtA []byte) (int, error) {
i++
i = encodeVarintContainer(dAtA, i, uint64(m.Status))
}
if m.Spec != nil {
dAtA[i] = 0x22
i++
i = encodeVarintContainer(dAtA, i, uint64(m.Spec.Size()))
n1, err := m.Spec.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n1
}
return i, nil
}
@@ -251,11 +262,11 @@ func (m *Process) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x22
i++
i = encodeVarintContainer(dAtA, i, uint64(m.User.Size()))
n1, err := m.User.MarshalTo(dAtA[i:])
n2, err := m.User.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n1
i += n2
}
if len(m.Cwd) > 0 {
dAtA[i] = 0x2a
@@ -287,11 +298,11 @@ func (m *Process) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x4a
i++
i = encodeVarintContainer(dAtA, i, uint64(m.RuntimeData.Size()))
n2, err := m.RuntimeData.MarshalTo(dAtA[i:])
n3, err := m.RuntimeData.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n2
i += n3
}
return i, nil
}
@@ -322,21 +333,21 @@ func (m *User) MarshalTo(dAtA []byte) (int, error) {
i = encodeVarintContainer(dAtA, i, uint64(m.Gid))
}
if len(m.AdditionalGids) > 0 {
dAtA4 := make([]byte, len(m.AdditionalGids)*10)
var j3 int
dAtA5 := make([]byte, len(m.AdditionalGids)*10)
var j4 int
for _, num := range m.AdditionalGids {
for num >= 1<<7 {
dAtA4[j3] = uint8(uint64(num)&0x7f | 0x80)
dAtA5[j4] = uint8(uint64(num)&0x7f | 0x80)
num >>= 7
j3++
j4++
}
dAtA4[j3] = uint8(num)
j3++
dAtA5[j4] = uint8(num)
j4++
}
dAtA[i] = 0x1a
i++
i = encodeVarintContainer(dAtA, i, uint64(j3))
i += copy(dAtA[i:], dAtA4[:j3])
i = encodeVarintContainer(dAtA, i, uint64(j4))
i += copy(dAtA[i:], dAtA5[:j4])
}
return i, nil
}
@@ -380,11 +391,11 @@ func (m *Event) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x2a
i++
i = encodeVarintContainer(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(m.ExitedAt)))
n5, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.ExitedAt, dAtA[i:])
n6, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.ExitedAt, dAtA[i:])
if err != nil {
return 0, err
}
i += n5
i += n6
return i, nil
}
@@ -428,6 +439,10 @@ func (m *Container) Size() (n int) {
if m.Status != 0 {
n += 1 + sovContainer(uint64(m.Status))
}
if m.Spec != nil {
l = m.Spec.Size()
n += 1 + l + sovContainer(uint64(l))
}
return n
}
@@ -534,6 +549,7 @@ func (this *Container) String() string {
`ID:` + fmt.Sprintf("%v", this.ID) + `,`,
`Pid:` + fmt.Sprintf("%v", this.Pid) + `,`,
`Status:` + fmt.Sprintf("%v", this.Status) + `,`,
`Spec:` + strings.Replace(fmt.Sprintf("%v", this.Spec), "Any", "google_protobuf1.Any", 1) + `,`,
`}`,
}, "")
return s
@@ -551,7 +567,7 @@ func (this *Process) String() string {
`Terminal:` + fmt.Sprintf("%v", this.Terminal) + `,`,
`ExitStatus:` + fmt.Sprintf("%v", this.ExitStatus) + `,`,
`Status:` + fmt.Sprintf("%v", this.Status) + `,`,
`RuntimeData:` + strings.Replace(fmt.Sprintf("%v", this.RuntimeData), "Any", "google_protobuf.Any", 1) + `,`,
`RuntimeData:` + strings.Replace(fmt.Sprintf("%v", this.RuntimeData), "Any", "google_protobuf1.Any", 1) + `,`,
`}`,
}, "")
return s
@@ -686,6 +702,39 @@ func (m *Container) Unmarshal(dAtA []byte) error {
break
}
}
case 4:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowContainer
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthContainer
}
postIndex := iNdEx + msglen
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.Spec == nil {
m.Spec = &google_protobuf1.Any{}
}
if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipContainer(dAtA[iNdEx:])
@@ -960,7 +1009,7 @@ func (m *Process) Unmarshal(dAtA []byte) error {
return io.ErrUnexpectedEOF
}
if m.RuntimeData == nil {
m.RuntimeData = &google_protobuf.Any{}
m.RuntimeData = &google_protobuf1.Any{}
}
if err := m.RuntimeData.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
@@ -1413,48 +1462,49 @@ func init() {
}
var fileDescriptorContainer = []byte{
// 680 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x52, 0x4d, 0x6f, 0xd3, 0x4a,
0x14, 0x8d, 0x3f, 0xf2, 0x35, 0x69, 0xf3, 0xfc, 0xe6, 0x55, 0x4f, 0x6e, 0x40, 0x8e, 0x15, 0x21,
0x11, 0x21, 0xe1, 0x88, 0x74, 0x01, 0xdb, 0x34, 0xb6, 0xaa, 0x0a, 0x91, 0x04, 0x27, 0x11, 0xdd,
0x45, 0xd3, 0x78, 0x30, 0x03, 0xcd, 0xd8, 0xb2, 0xc7, 0x2d, 0xd9, 0xb1, 0x44, 0x5d, 0xf1, 0x07,
0xba, 0x01, 0xb6, 0x6c, 0x59, 0xf0, 0x0b, 0xba, 0x64, 0xc9, 0xaa, 0xd0, 0xfc, 0x12, 0x34, 0xe3,
0xa4, 0x8e, 0xda, 0x22, 0xb1, 0xb1, 0xce, 0xdc, 0x73, 0xe6, 0xce, 0x3d, 0xf7, 0x18, 0xd8, 0x3e,
0x61, 0xaf, 0x92, 0x43, 0x6b, 0x1a, 0xcc, 0x5a, 0xd3, 0x80, 0x32, 0x44, 0x28, 0x8e, 0xbc, 0x75,
0x88, 0x42, 0xd2, 0x62, 0xf3, 0x10, 0xc7, 0x59, 0x31, 0x43, 0x56, 0x18, 0x05, 0x2c, 0x80, 0xff,
0x65, 0x7a, 0xeb, 0xf8, 0x91, 0x25, 0xe4, 0xb5, 0x6d, 0x3f, 0x08, 0xfc, 0x23, 0xdc, 0x12, 0x92,
0xc3, 0xe4, 0x65, 0x0b, 0xd1, 0x79, 0xaa, 0xaf, 0x6d, 0xf9, 0x81, 0x1f, 0x08, 0xd8, 0xe2, 0x68,
0x59, 0xad, 0x5f, 0xbf, 0xc0, 0xc8, 0x0c, 0xc7, 0x0c, 0xcd, 0xc2, 0x54, 0xd0, 0x78, 0x0d, 0xca,
0xdd, 0xd5, 0x43, 0xf0, 0x7f, 0x20, 0x13, 0x4f, 0x97, 0x4c, 0xa9, 0x59, 0xde, 0x2d, 0x2c, 0x2e,
0xea, 0xf2, 0xbe, 0xed, 0xca, 0xc4, 0x83, 0x1a, 0x50, 0x42, 0xe2, 0xe9, 0xb2, 0x29, 0x35, 0x37,
0x5d, 0x0e, 0xe1, 0x0e, 0x28, 0xc4, 0x0c, 0xb1, 0x24, 0xd6, 0x15, 0x53, 0x6a, 0x56, 0xdb, 0x77,
0xac, 0x5b, 0xc6, 0xb5, 0x86, 0x42, 0xe2, 0x2e, 0xa5, 0x8d, 0x2f, 0x32, 0x28, 0x0e, 0xa2, 0x60,
0x8a, 0xe3, 0x78, 0xd5, 0x52, 0xca, 0x5a, 0x42, 0xa0, 0xa2, 0xc8, 0x8f, 0x75, 0xd9, 0x54, 0x9a,
0x65, 0x57, 0x60, 0xae, 0xc2, 0xf4, 0x58, 0x57, 0x44, 0x89, 0x43, 0xf8, 0x10, 0xa8, 0x49, 0x8c,
0x23, 0x5d, 0x35, 0xa5, 0x66, 0xa5, 0xbd, 0x7d, 0xeb, 0xb3, 0xe3, 0x18, 0x47, 0xae, 0x90, 0xf1,
0x06, 0xd3, 0x13, 0x4f, 0xcf, 0x73, 0x4b, 0x2e, 0x87, 0xb0, 0x06, 0x4a, 0x0c, 0x47, 0x33, 0x42,
0xd1, 0x91, 0x5e, 0x30, 0xa5, 0x66, 0xc9, 0xbd, 0x3a, 0xc3, 0x3a, 0xa8, 0xe0, 0xb7, 0x84, 0x4d,
0x96, 0xd6, 0x8a, 0x62, 0x38, 0xc0, 0x4b, 0xa9, 0x93, 0x35, 0xdb, 0xa5, 0xbf, 0xb6, 0x0d, 0x1f,
0x83, 0x8d, 0x28, 0xa1, 0x7c, 0xf1, 0x13, 0x0f, 0x31, 0xa4, 0x97, 0xc5, 0xe8, 0x5b, 0x56, 0x1a,
0x8d, 0xb5, 0x8a, 0xc6, 0xea, 0xd0, 0xb9, 0x5b, 0x59, 0x2a, 0x6d, 0xc4, 0x50, 0x63, 0x08, 0xd4,
0xf1, 0xd2, 0x44, 0x92, 0xed, 0x2a, 0x49, 0x03, 0xf1, 0xb3, 0x40, 0x7c, 0xe2, 0xc1, 0xfb, 0xe0,
0x1f, 0xe4, 0x79, 0x84, 0x91, 0x80, 0xa2, 0xa3, 0x89, 0x4f, 0xbc, 0x58, 0x6c, 0x6d, 0xd3, 0xad,
0x66, 0xe5, 0x3d, 0xe2, 0xc5, 0x8d, 0x8f, 0x32, 0xc8, 0x3b, 0xc7, 0x98, 0xb2, 0x3f, 0xa6, 0xfd,
0x04, 0xa8, 0xdc, 0x87, 0xe8, 0x5e, 0x6d, 0xdf, 0xbb, 0xd5, 0xa2, 0xe8, 0x90, 0x7e, 0x47, 0xf3,
0x10, 0xbb, 0xe2, 0xc6, 0x2a, 0x54, 0x25, 0x0b, 0xf5, 0xda, 0x46, 0xd5, 0x1b, 0x1b, 0xed, 0x80,
0x32, 0x3f, 0x61, 0x6f, 0x82, 0x98, 0x88, 0xa9, 0xd2, 0xae, 0xdd, 0xd8, 0xcc, 0x68, 0xf5, 0xd3,
0xee, 0x96, 0xce, 0x2f, 0xea, 0xb9, 0x0f, 0x3f, 0xeb, 0x92, 0x5b, 0x4a, 0xaf, 0x75, 0x58, 0xe3,
0x39, 0x28, 0x5f, 0x0d, 0x02, 0x4b, 0x40, 0x75, 0x0e, 0xf6, 0x47, 0x5a, 0x0e, 0x16, 0x81, 0xd2,
0xef, 0x3f, 0xd3, 0x24, 0x08, 0x40, 0xa1, 0xeb, 0x3a, 0x9d, 0x91, 0xa3, 0xc9, 0xb0, 0x0c, 0xf2,
0xc3, 0x51, 0xc7, 0x1d, 0x69, 0x0a, 0xac, 0x02, 0xe0, 0x1c, 0x38, 0xdd, 0x49, 0xc7, 0xb6, 0x1d,
0x5b, 0x53, 0xb9, 0x6c, 0xd0, 0x19, 0x0f, 0x1d, 0x5b, 0xcb, 0x3f, 0xf8, 0x2a, 0x81, 0xc2, 0x72,
0x40, 0x03, 0x14, 0xc7, 0xbd, 0xa7, 0xbd, 0xfe, 0x8b, 0x9e, 0x96, 0xab, 0xfd, 0x7b, 0x7a, 0x66,
0x6e, 0xa6, 0xc4, 0x98, 0xbe, 0xa1, 0xc1, 0x09, 0xe5, 0x7c, 0xda, 0xdd, 0xd6, 0xa4, 0x75, 0xbe,
0x1b, 0x61, 0xc4, 0xb0, 0xc7, 0x79, 0x77, 0xdc, 0xeb, 0xed, 0xf7, 0xf6, 0x34, 0x79, 0x9d, 0x77,
0x13, 0x4a, 0x09, 0xf5, 0x39, 0x3f, 0x1c, 0xf5, 0x07, 0x03, 0xc7, 0xd6, 0x94, 0x75, 0x7e, 0xc8,
0x82, 0x30, 0xc4, 0x1e, 0xbc, 0x7b, 0x35, 0x96, 0x5a, 0xd3, 0x4e, 0xcf, 0xcc, 0x8d, 0x94, 0x1e,
0xa0, 0x24, 0xc6, 0x5e, 0xad, 0xfa, 0xfe, 0x93, 0x91, 0xfb, 0xf6, 0xd9, 0x58, 0x4e, 0xbb, 0xab,
0x9f, 0x5f, 0x1a, 0xb9, 0x1f, 0x97, 0x46, 0xee, 0xdd, 0xc2, 0x90, 0xce, 0x17, 0x86, 0xf4, 0x7d,
0x61, 0x48, 0xbf, 0x16, 0x86, 0x74, 0x58, 0x10, 0xdb, 0xdc, 0xf9, 0x1d, 0x00, 0x00, 0xff, 0xff,
0x0d, 0x06, 0xaf, 0x6b, 0x9e, 0x04, 0x00, 0x00,
// 694 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x52, 0xbf, 0x6f, 0xdb, 0x46,
0x18, 0xd5, 0x91, 0xd4, 0xaf, 0x93, 0xad, 0xb2, 0x57, 0xa3, 0xa0, 0xd5, 0x82, 0x22, 0x84, 0x02,
0x15, 0x0a, 0x94, 0x42, 0xe5, 0xa1, 0x5d, 0x65, 0x91, 0x30, 0x8c, 0x22, 0x92, 0x42, 0x49, 0x88,
0x37, 0xe1, 0x2c, 0x5e, 0x18, 0x22, 0xd6, 0x91, 0x20, 0x8f, 0x76, 0xb4, 0x65, 0x0c, 0x3c, 0x65,
0xc8, 0xea, 0x25, 0xc9, 0x9a, 0x35, 0x43, 0xfe, 0x02, 0x8f, 0x19, 0x33, 0x39, 0xb1, 0xfe, 0x92,
0xe0, 0x8e, 0x94, 0x29, 0xd8, 0x4e, 0x90, 0x85, 0x78, 0x77, 0xef, 0xf1, 0xfb, 0xde, 0xf7, 0xbe,
0x83, 0x96, 0xe7, 0xb3, 0x27, 0xc9, 0xb1, 0x39, 0x0f, 0x16, 0x9d, 0x79, 0x40, 0x19, 0xf6, 0x29,
0x89, 0xdc, 0x4d, 0x88, 0x43, 0xbf, 0xc3, 0x96, 0x21, 0x89, 0xf3, 0xcb, 0x1c, 0x99, 0x61, 0x14,
0xb0, 0x00, 0xfd, 0x92, 0xeb, 0xcd, 0xd3, 0x7f, 0x4c, 0x21, 0x6f, 0xec, 0x78, 0x81, 0x17, 0x08,
0xbe, 0xc3, 0x51, 0x2a, 0x6d, 0xec, 0x7a, 0x41, 0xe0, 0x9d, 0x90, 0x8e, 0x38, 0x1d, 0x27, 0x8f,
0x3b, 0x98, 0x2e, 0x33, 0xaa, 0x79, 0x9b, 0x62, 0xfe, 0x82, 0xc4, 0x0c, 0x2f, 0xc2, 0x54, 0xd0,
0x7a, 0x05, 0x60, 0xb5, 0xbf, 0xee, 0x84, 0x7e, 0x85, 0x92, 0xef, 0x6a, 0xc0, 0x00, 0xed, 0xea,
0x7e, 0x69, 0x75, 0xd5, 0x94, 0x0e, 0x2d, 0x47, 0xf2, 0x5d, 0xa4, 0x42, 0x39, 0xf4, 0x5d, 0x4d,
0x32, 0x40, 0x7b, 0xdb, 0xe1, 0x10, 0xed, 0xc1, 0x52, 0xcc, 0x30, 0x4b, 0x62, 0x4d, 0x36, 0x40,
0xbb, 0xde, 0xfd, 0xcd, 0xbc, 0xc7, 0xaf, 0x39, 0x16, 0x12, 0x27, 0x93, 0xa2, 0x36, 0x54, 0xe2,
0x90, 0xcc, 0x35, 0xc5, 0x00, 0xed, 0x5a, 0x77, 0xc7, 0x4c, 0xcd, 0x99, 0x6b, 0x73, 0x66, 0x8f,
0x2e, 0x1d, 0xa1, 0x68, 0xbd, 0x93, 0x60, 0x79, 0x14, 0x05, 0x73, 0x12, 0xc7, 0xeb, 0xe6, 0x20,
0x6f, 0x8e, 0xa0, 0x82, 0x23, 0x2f, 0xd6, 0x24, 0x43, 0x6e, 0x57, 0x1d, 0x81, 0xb9, 0x8a, 0xd0,
0x53, 0x4d, 0x16, 0x57, 0x1c, 0xa2, 0xbf, 0xa1, 0x92, 0xc4, 0x24, 0xca, 0xba, 0xed, 0xde, 0x6b,
0x70, 0x1a, 0x93, 0xc8, 0x11, 0x32, 0x5e, 0x60, 0x7e, 0xe6, 0x6a, 0x45, 0x3e, 0xbc, 0xc3, 0x21,
0x6a, 0xc0, 0x0a, 0x23, 0xd1, 0xc2, 0xa7, 0xf8, 0x44, 0x2b, 0x19, 0xa0, 0x5d, 0x71, 0x6e, 0xce,
0xa8, 0x09, 0x6b, 0xe4, 0x99, 0xcf, 0x66, 0x59, 0x08, 0x65, 0x61, 0x0e, 0xf2, 0xab, 0x74, 0xe6,
0x8d, 0x80, 0x2a, 0x3f, 0x1e, 0xd0, 0xbf, 0x70, 0x2b, 0x4a, 0x28, 0xdf, 0xd1, 0xcc, 0xc5, 0x0c,
0x6b, 0xd5, 0xef, 0x04, 0x55, 0xcb, 0x94, 0x16, 0x66, 0xb8, 0x35, 0x86, 0xca, 0x34, 0x1b, 0x22,
0xc9, 0xb3, 0x4a, 0xd2, 0xd5, 0x79, 0xf9, 0xea, 0x3c, 0xdf, 0x45, 0x7f, 0xc2, 0x9f, 0xb0, 0xeb,
0xfa, 0xcc, 0x0f, 0x28, 0x3e, 0x99, 0x79, 0xbe, 0x1b, 0x8b, 0xd4, 0xb6, 0x9d, 0x7a, 0x7e, 0x7d,
0xe0, 0xbb, 0x71, 0xeb, 0xb5, 0x04, 0x8b, 0xf6, 0x29, 0xa1, 0xec, 0x9b, 0xef, 0xe2, 0x3f, 0xa8,
0xf0, 0x39, 0x44, 0xf5, 0x7a, 0xf7, 0x8f, 0x7b, 0x47, 0x14, 0x15, 0xd2, 0xef, 0x64, 0x19, 0x12,
0x47, 0xfc, 0xb1, 0x5e, 0xaa, 0x9c, 0x2f, 0xf5, 0x56, 0xa2, 0xca, 0x9d, 0x44, 0x7b, 0xb0, 0xca,
0x4f, 0xc4, 0x9d, 0x61, 0x26, 0xd6, 0x54, 0xeb, 0x36, 0xee, 0x24, 0x33, 0x59, 0xbf, 0xef, 0xfd,
0xca, 0xe5, 0x55, 0xb3, 0xf0, 0xf2, 0x73, 0x13, 0x38, 0x95, 0xf4, 0xb7, 0x1e, 0x6b, 0x3d, 0x84,
0xd5, 0x1b, 0x23, 0xa8, 0x02, 0x15, 0xfb, 0xe8, 0x70, 0xa2, 0x16, 0x50, 0x19, 0xca, 0xc3, 0xe1,
0x03, 0x15, 0x20, 0x08, 0x4b, 0x7d, 0xc7, 0xee, 0x4d, 0x6c, 0x55, 0x42, 0x55, 0x58, 0x1c, 0x4f,
0x7a, 0xce, 0x44, 0x95, 0x51, 0x1d, 0x42, 0xfb, 0xc8, 0xee, 0xcf, 0x7a, 0x96, 0x65, 0x5b, 0xaa,
0xc2, 0x65, 0xa3, 0xde, 0x74, 0x6c, 0x5b, 0x6a, 0xf1, 0xaf, 0xf7, 0x00, 0x96, 0x32, 0x83, 0x3a,
0x2c, 0x4f, 0x07, 0xff, 0x0f, 0x86, 0x8f, 0x06, 0x6a, 0xa1, 0xf1, 0xf3, 0xf9, 0x85, 0xb1, 0x9d,
0x12, 0x53, 0xfa, 0x94, 0x06, 0x67, 0x94, 0xf3, 0x69, 0x75, 0x4b, 0x05, 0x9b, 0x7c, 0x3f, 0x22,
0x98, 0x11, 0x97, 0xf3, 0xce, 0x74, 0x30, 0x38, 0x1c, 0x1c, 0xa8, 0xd2, 0x26, 0xef, 0x24, 0x94,
0xfa, 0xd4, 0xe3, 0xfc, 0x78, 0x32, 0x1c, 0x8d, 0x6c, 0x4b, 0x95, 0x37, 0xf9, 0x31, 0x0b, 0xc2,
0x90, 0xb8, 0xe8, 0xf7, 0x1b, 0x5b, 0x4a, 0x43, 0x3d, 0xbf, 0x30, 0xb6, 0x52, 0x7a, 0x84, 0x93,
0x98, 0xb8, 0x8d, 0xfa, 0x8b, 0x37, 0x7a, 0xe1, 0xc3, 0x5b, 0x3d, 0x73, 0xbb, 0xaf, 0x5d, 0x5e,
0xeb, 0x85, 0x4f, 0xd7, 0x7a, 0xe1, 0xf9, 0x4a, 0x07, 0x97, 0x2b, 0x1d, 0x7c, 0x5c, 0xe9, 0xe0,
0xcb, 0x4a, 0x07, 0xc7, 0x25, 0x91, 0xe6, 0xde, 0xd7, 0x00, 0x00, 0x00, 0xff, 0xff, 0x17, 0x6e,
0xa4, 0xd7, 0xc9, 0x04, 0x00, 0x00,
}

View File

@@ -2,8 +2,8 @@ syntax = "proto3";
package containerd.v1.types;
import "google/protobuf/any.proto";
import "gogoproto/gogo.proto";
import "google/protobuf/any.proto";
import "google/protobuf/timestamp.proto";
enum Status {
@@ -21,6 +21,7 @@ message Container {
string id = 1;
uint32 pid = 2;
Status status = 3;
google.protobuf.Any spec = 4;
}
message Process {