Add Get of task and process state

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
This commit is contained in:
Michael Crosby 2017-07-31 15:56:56 -04:00
parent 2974e485f3
commit 504033e373
13 changed files with 358 additions and 270 deletions

View File

@ -16,8 +16,8 @@
DeleteTaskRequest
DeleteResponse
DeleteProcessRequest
GetTaskRequest
GetTaskResponse
GetRequest
GetResponse
ListTasksRequest
ListTasksResponse
KillRequest
@ -148,21 +148,22 @@ func (m *DeleteProcessRequest) Reset() { *m = DeleteProcessRe
func (*DeleteProcessRequest) ProtoMessage() {}
func (*DeleteProcessRequest) Descriptor() ([]byte, []int) { return fileDescriptorTasks, []int{6} }
type GetTaskRequest struct {
type GetRequest struct {
ContainerID string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
ExecID string `protobuf:"bytes,2,opt,name=exec_id,json=execId,proto3" json:"exec_id,omitempty"`
}
func (m *GetTaskRequest) Reset() { *m = GetTaskRequest{} }
func (*GetTaskRequest) ProtoMessage() {}
func (*GetTaskRequest) Descriptor() ([]byte, []int) { return fileDescriptorTasks, []int{7} }
func (m *GetRequest) Reset() { *m = GetRequest{} }
func (*GetRequest) ProtoMessage() {}
func (*GetRequest) Descriptor() ([]byte, []int) { return fileDescriptorTasks, []int{7} }
type GetTaskResponse struct {
Task *containerd_v1_types.Task `protobuf:"bytes,1,opt,name=task" json:"task,omitempty"`
type GetResponse struct {
Process *containerd_v1_types.Process `protobuf:"bytes,1,opt,name=process" json:"process,omitempty"`
}
func (m *GetTaskResponse) Reset() { *m = GetTaskResponse{} }
func (*GetTaskResponse) ProtoMessage() {}
func (*GetTaskResponse) Descriptor() ([]byte, []int) { return fileDescriptorTasks, []int{8} }
func (m *GetResponse) Reset() { *m = GetResponse{} }
func (*GetResponse) ProtoMessage() {}
func (*GetResponse) Descriptor() ([]byte, []int) { return fileDescriptorTasks, []int{8} }
type ListTasksRequest struct {
Filter string `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
@ -173,7 +174,7 @@ func (*ListTasksRequest) ProtoMessage() {}
func (*ListTasksRequest) Descriptor() ([]byte, []int) { return fileDescriptorTasks, []int{9} }
type ListTasksResponse struct {
Tasks []*containerd_v1_types.Task `protobuf:"bytes,1,rep,name=tasks" json:"tasks,omitempty"`
Tasks []*containerd_v1_types.Process `protobuf:"bytes,1,rep,name=tasks" json:"tasks,omitempty"`
}
func (m *ListTasksResponse) Reset() { *m = ListTasksResponse{} }
@ -304,8 +305,8 @@ func init() {
proto.RegisterType((*DeleteTaskRequest)(nil), "containerd.services.tasks.v1.DeleteTaskRequest")
proto.RegisterType((*DeleteResponse)(nil), "containerd.services.tasks.v1.DeleteResponse")
proto.RegisterType((*DeleteProcessRequest)(nil), "containerd.services.tasks.v1.DeleteProcessRequest")
proto.RegisterType((*GetTaskRequest)(nil), "containerd.services.tasks.v1.GetTaskRequest")
proto.RegisterType((*GetTaskResponse)(nil), "containerd.services.tasks.v1.GetTaskResponse")
proto.RegisterType((*GetRequest)(nil), "containerd.services.tasks.v1.GetRequest")
proto.RegisterType((*GetResponse)(nil), "containerd.services.tasks.v1.GetResponse")
proto.RegisterType((*ListTasksRequest)(nil), "containerd.services.tasks.v1.ListTasksRequest")
proto.RegisterType((*ListTasksResponse)(nil), "containerd.services.tasks.v1.ListTasksResponse")
proto.RegisterType((*KillRequest)(nil), "containerd.services.tasks.v1.KillRequest")
@ -340,7 +341,7 @@ type TasksClient interface {
// Delete a task and on disk state.
Delete(ctx context.Context, in *DeleteTaskRequest, opts ...grpc.CallOption) (*DeleteResponse, error)
DeleteProcess(ctx context.Context, in *DeleteProcessRequest, opts ...grpc.CallOption) (*DeleteResponse, error)
Get(ctx context.Context, in *GetTaskRequest, opts ...grpc.CallOption) (*GetTaskResponse, error)
Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error)
List(ctx context.Context, in *ListTasksRequest, opts ...grpc.CallOption) (*ListTasksResponse, error)
// Kill a task or process.
Kill(ctx context.Context, in *KillRequest, opts ...grpc.CallOption) (*google_protobuf.Empty, error)
@ -398,8 +399,8 @@ func (c *tasksClient) DeleteProcess(ctx context.Context, in *DeleteProcessReques
return out, nil
}
func (c *tasksClient) Get(ctx context.Context, in *GetTaskRequest, opts ...grpc.CallOption) (*GetTaskResponse, error) {
out := new(GetTaskResponse)
func (c *tasksClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) {
out := new(GetResponse)
err := grpc.Invoke(ctx, "/containerd.services.tasks.v1.Tasks/Get", in, out, c.cc, opts...)
if err != nil {
return nil, err
@ -507,7 +508,7 @@ type TasksServer interface {
// Delete a task and on disk state.
Delete(context.Context, *DeleteTaskRequest) (*DeleteResponse, error)
DeleteProcess(context.Context, *DeleteProcessRequest) (*DeleteResponse, error)
Get(context.Context, *GetTaskRequest) (*GetTaskResponse, error)
Get(context.Context, *GetRequest) (*GetResponse, error)
List(context.Context, *ListTasksRequest) (*ListTasksResponse, error)
// Kill a task or process.
Kill(context.Context, *KillRequest) (*google_protobuf.Empty, error)
@ -598,7 +599,7 @@ func _Tasks_DeleteProcess_Handler(srv interface{}, ctx context.Context, dec func
}
func _Tasks_Get_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetTaskRequest)
in := new(GetRequest)
if err := dec(in); err != nil {
return nil, err
}
@ -610,7 +611,7 @@ func _Tasks_Get_Handler(srv interface{}, ctx context.Context, dec func(interface
FullMethod: "/containerd.services.tasks.v1.Tasks/Get",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(TasksServer).Get(ctx, req.(*GetTaskRequest))
return srv.(TasksServer).Get(ctx, req.(*GetRequest))
}
return interceptor(ctx, in, info, handler)
}
@ -1126,7 +1127,7 @@ func (m *DeleteProcessRequest) MarshalTo(dAtA []byte) (int, error) {
return i, nil
}
func (m *GetTaskRequest) Marshal() (dAtA []byte, err error) {
func (m *GetRequest) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
@ -1136,7 +1137,7 @@ func (m *GetTaskRequest) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
func (m *GetTaskRequest) MarshalTo(dAtA []byte) (int, error) {
func (m *GetRequest) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
@ -1147,10 +1148,16 @@ func (m *GetTaskRequest) MarshalTo(dAtA []byte) (int, error) {
i = encodeVarintTasks(dAtA, i, uint64(len(m.ContainerID)))
i += copy(dAtA[i:], m.ContainerID)
}
if len(m.ExecID) > 0 {
dAtA[i] = 0x12
i++
i = encodeVarintTasks(dAtA, i, uint64(len(m.ExecID)))
i += copy(dAtA[i:], m.ExecID)
}
return i, nil
}
func (m *GetTaskResponse) Marshal() (dAtA []byte, err error) {
func (m *GetResponse) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
@ -1160,16 +1167,16 @@ func (m *GetTaskResponse) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
func (m *GetTaskResponse) MarshalTo(dAtA []byte) (int, error) {
func (m *GetResponse) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
_ = l
if m.Task != nil {
if m.Process != nil {
dAtA[i] = 0xa
i++
i = encodeVarintTasks(dAtA, i, uint64(m.Task.Size()))
n4, err := m.Task.MarshalTo(dAtA[i:])
i = encodeVarintTasks(dAtA, i, uint64(m.Process.Size()))
n4, err := m.Process.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
@ -1798,21 +1805,25 @@ func (m *DeleteProcessRequest) Size() (n int) {
return n
}
func (m *GetTaskRequest) Size() (n int) {
func (m *GetRequest) Size() (n int) {
var l int
_ = l
l = len(m.ContainerID)
if l > 0 {
n += 1 + l + sovTasks(uint64(l))
}
l = len(m.ExecID)
if l > 0 {
n += 1 + l + sovTasks(uint64(l))
}
return n
}
func (m *GetTaskResponse) Size() (n int) {
func (m *GetResponse) Size() (n int) {
var l int
_ = l
if m.Task != nil {
l = m.Task.Size()
if m.Process != nil {
l = m.Process.Size()
n += 1 + l + sovTasks(uint64(l))
}
return n
@ -2119,22 +2130,23 @@ func (this *DeleteProcessRequest) String() string {
}, "")
return s
}
func (this *GetTaskRequest) String() string {
func (this *GetRequest) String() string {
if this == nil {
return "nil"
}
s := strings.Join([]string{`&GetTaskRequest{`,
s := strings.Join([]string{`&GetRequest{`,
`ContainerID:` + fmt.Sprintf("%v", this.ContainerID) + `,`,
`ExecID:` + fmt.Sprintf("%v", this.ExecID) + `,`,
`}`,
}, "")
return s
}
func (this *GetTaskResponse) String() string {
func (this *GetResponse) String() string {
if this == nil {
return "nil"
}
s := strings.Join([]string{`&GetTaskResponse{`,
`Task:` + strings.Replace(fmt.Sprintf("%v", this.Task), "Task", "containerd_v1_types.Task", 1) + `,`,
s := strings.Join([]string{`&GetResponse{`,
`Process:` + strings.Replace(fmt.Sprintf("%v", this.Process), "Process", "containerd_v1_types.Process", 1) + `,`,
`}`,
}, "")
return s
@ -2154,7 +2166,7 @@ func (this *ListTasksResponse) String() string {
return "nil"
}
s := strings.Join([]string{`&ListTasksResponse{`,
`Tasks:` + strings.Replace(fmt.Sprintf("%v", this.Tasks), "Task", "containerd_v1_types.Task", 1) + `,`,
`Tasks:` + strings.Replace(fmt.Sprintf("%v", this.Tasks), "Process", "containerd_v1_types.Process", 1) + `,`,
`}`,
}, "")
return s
@ -3195,7 +3207,7 @@ func (m *DeleteProcessRequest) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *GetTaskRequest) Unmarshal(dAtA []byte) error {
func (m *GetRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@ -3218,10 +3230,10 @@ func (m *GetTaskRequest) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: GetTaskRequest: wiretype end group for non-group")
return fmt.Errorf("proto: GetRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: GetTaskRequest: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: GetRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
@ -3253,6 +3265,35 @@ func (m *GetTaskRequest) Unmarshal(dAtA []byte) error {
}
m.ContainerID = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ExecID", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTasks
}
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 ErrInvalidLengthTasks
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.ExecID = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipTasks(dAtA[iNdEx:])
@ -3274,7 +3315,7 @@ func (m *GetTaskRequest) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *GetTaskResponse) Unmarshal(dAtA []byte) error {
func (m *GetResponse) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@ -3297,15 +3338,15 @@ func (m *GetTaskResponse) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: GetTaskResponse: wiretype end group for non-group")
return fmt.Errorf("proto: GetResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: GetTaskResponse: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: GetResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Task", wireType)
return fmt.Errorf("proto: wrong wireType = %d for field Process", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
@ -3329,10 +3370,10 @@ func (m *GetTaskResponse) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.Task == nil {
m.Task = &containerd_v1_types.Task{}
if m.Process == nil {
m.Process = &containerd_v1_types.Process{}
}
if err := m.Task.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
if err := m.Process.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
@ -3491,7 +3532,7 @@ func (m *ListTasksResponse) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Tasks = append(m.Tasks, &containerd_v1_types.Task{})
m.Tasks = append(m.Tasks, &containerd_v1_types.Process{})
if err := m.Tasks[len(m.Tasks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
@ -5029,81 +5070,81 @@ func init() {
}
var fileDescriptorTasks = []byte{
// 1211 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x5d, 0x6f, 0x1b, 0x45,
0x17, 0xee, 0xfa, 0x63, 0x63, 0x1f, 0x37, 0x6d, 0x3c, 0x6f, 0x9a, 0xd7, 0x5d, 0x2a, 0x3b, 0x2c,
0x12, 0x32, 0x85, 0xec, 0x52, 0x17, 0x71, 0x41, 0x2b, 0x44, 0x13, 0x87, 0xc8, 0x02, 0xd4, 0x74,
0x53, 0x10, 0xea, 0x8d, 0xd9, 0x78, 0x27, 0xce, 0x28, 0xf6, 0xce, 0x76, 0x67, 0x9c, 0x26, 0x70,
0x01, 0x3f, 0xa1, 0xb7, 0x5c, 0xc0, 0xef, 0xc9, 0x25, 0x97, 0x08, 0xa1, 0x40, 0xfd, 0x2f, 0xb8,
0x43, 0x3b, 0x33, 0xde, 0x6c, 0xec, 0xf8, 0x23, 0x75, 0xc3, 0x4d, 0x32, 0x33, 0x7b, 0x9e, 0x33,
0x33, 0xcf, 0x39, 0xf3, 0x9c, 0x93, 0xc0, 0x7a, 0x9b, 0xf0, 0xfd, 0xde, 0xae, 0xd5, 0xa2, 0x5d,
0xbb, 0x45, 0x7d, 0xee, 0x12, 0x1f, 0x87, 0x5e, 0x72, 0xe8, 0x06, 0xc4, 0x66, 0x38, 0x3c, 0x24,
0x2d, 0xcc, 0x6c, 0xee, 0xb2, 0x03, 0x66, 0x1f, 0xde, 0x93, 0x03, 0x2b, 0x08, 0x29, 0xa7, 0xe8,
0xce, 0x99, 0xb5, 0x35, 0xb0, 0xb4, 0xa4, 0xc1, 0xe1, 0x3d, 0xe3, 0xad, 0x36, 0xa5, 0xed, 0x0e,
0xb6, 0x85, 0xed, 0x6e, 0x6f, 0xcf, 0xc6, 0xdd, 0x80, 0x1f, 0x4b, 0xa8, 0x71, 0x7b, 0xf8, 0xa3,
0xeb, 0x0f, 0x3e, 0x2d, 0xb7, 0x69, 0x9b, 0x8a, 0xa1, 0x1d, 0x8d, 0xd4, 0xea, 0xc7, 0x33, 0x9d,
0x97, 0x1f, 0x07, 0x98, 0xd9, 0x5d, 0xda, 0xf3, 0xb9, 0xc2, 0x3d, 0xb8, 0x04, 0xce, 0xc3, 0xac,
0x15, 0x92, 0x80, 0xd3, 0x50, 0x81, 0x3f, 0xb9, 0x04, 0x38, 0xba, 0xb7, 0xf8, 0xa1, 0xb0, 0x95,
0xe1, 0x1b, 0x72, 0xd2, 0xc5, 0x8c, 0xbb, 0xdd, 0x40, 0x1a, 0x98, 0x27, 0x29, 0x28, 0x6e, 0x84,
0xd8, 0xe5, 0xf8, 0xa9, 0xcb, 0x0e, 0x1c, 0xfc, 0xbc, 0x87, 0x19, 0x47, 0x35, 0xb8, 0x1e, 0xbb,
0x6f, 0x12, 0xaf, 0xa4, 0xad, 0x6a, 0xd5, 0xfc, 0xfa, 0xcd, 0xfe, 0x69, 0xa5, 0xb0, 0x31, 0x58,
0x6f, 0xd4, 0x9d, 0x42, 0x6c, 0xd4, 0xf0, 0x90, 0x0d, 0x7a, 0x48, 0x29, 0xdf, 0x63, 0xa5, 0xf4,
0x6a, 0xba, 0x5a, 0xa8, 0xfd, 0xdf, 0x4a, 0x04, 0x46, 0x9c, 0xce, 0xfa, 0x2a, 0xa2, 0xc4, 0x51,
0x66, 0x68, 0x19, 0xb2, 0x8c, 0x7b, 0xc4, 0x2f, 0x65, 0x22, 0xef, 0x8e, 0x9c, 0xa0, 0x15, 0xd0,
0x19, 0xf7, 0x68, 0x8f, 0x97, 0xb2, 0x62, 0x59, 0xcd, 0xd4, 0x3a, 0x0e, 0xc3, 0x92, 0x1e, 0xaf,
0xe3, 0x30, 0x44, 0x06, 0xe4, 0x38, 0x0e, 0xbb, 0xc4, 0x77, 0x3b, 0xa5, 0x85, 0x55, 0xad, 0x9a,
0x73, 0xe2, 0x39, 0x7a, 0x08, 0xd0, 0xda, 0xc7, 0xad, 0x83, 0x80, 0x12, 0x9f, 0x97, 0x72, 0xab,
0x5a, 0xb5, 0x50, 0xbb, 0x33, 0x7a, 0xac, 0x7a, 0xcc, 0xb8, 0x93, 0xb0, 0x47, 0x16, 0x2c, 0xd0,
0x80, 0x13, 0xea, 0xb3, 0x52, 0x5e, 0x40, 0x97, 0x2d, 0xc9, 0xa6, 0x35, 0x60, 0xd3, 0x7a, 0xe4,
0x1f, 0x3b, 0x03, 0x23, 0xf3, 0x19, 0xa0, 0x24, 0x93, 0x2c, 0xa0, 0x3e, 0xc3, 0xaf, 0x45, 0xe5,
0x12, 0xa4, 0x03, 0xe2, 0x95, 0x52, 0xab, 0x5a, 0x75, 0xd1, 0x89, 0x86, 0x66, 0x1b, 0xae, 0xef,
0x70, 0x37, 0xe4, 0xf3, 0x04, 0xe8, 0x1d, 0x58, 0xc0, 0x47, 0xb8, 0xd5, 0x54, 0x9e, 0xf3, 0xeb,
0xd0, 0x3f, 0xad, 0xe8, 0x9b, 0x47, 0xb8, 0xd5, 0xa8, 0x3b, 0x7a, 0xf4, 0xa9, 0xe1, 0x99, 0x6f,
0xc3, 0xa2, 0xda, 0x48, 0x9d, 0x5f, 0x9d, 0x45, 0x3b, 0x3b, 0xcb, 0x16, 0x14, 0xeb, 0xb8, 0x83,
0xe7, 0xce, 0x18, 0xf3, 0x57, 0x0d, 0x6e, 0x48, 0x4f, 0xf1, 0x6e, 0x2b, 0x90, 0x8a, 0xc1, 0x7a,
0xff, 0xb4, 0x92, 0x6a, 0xd4, 0x9d, 0x14, 0xb9, 0x80, 0x11, 0x54, 0x81, 0x02, 0x3e, 0x22, 0xbc,
0xc9, 0xb8, 0xcb, 0x7b, 0x51, 0xce, 0x45, 0x5f, 0x20, 0x5a, 0xda, 0x11, 0x2b, 0xe8, 0x11, 0xe4,
0xa3, 0x19, 0xf6, 0x9a, 0x2e, 0x17, 0x29, 0x56, 0xa8, 0x19, 0x23, 0x01, 0x7c, 0x3a, 0x78, 0x0e,
0xeb, 0xb9, 0x93, 0xd3, 0xca, 0xb5, 0x97, 0x7f, 0x55, 0x34, 0x27, 0x27, 0x61, 0x8f, 0xb8, 0x49,
0x61, 0x59, 0x9e, 0x6f, 0x3b, 0xa4, 0x2d, 0xcc, 0xd8, 0x95, 0xb3, 0x5f, 0x87, 0x1b, 0x5b, 0x98,
0xcf, 0xcb, 0xeb, 0x67, 0x70, 0x33, 0xf6, 0xa2, 0x78, 0x5d, 0x83, 0x4c, 0xa4, 0x0a, 0x02, 0x5e,
0xa8, 0xdd, 0x4e, 0xbe, 0x81, 0xc3, 0x7b, 0xea, 0x19, 0x08, 0x80, 0x30, 0x33, 0xef, 0xc2, 0xd2,
0x97, 0x84, 0x09, 0x17, 0xf1, 0xa5, 0x57, 0x40, 0xdf, 0x23, 0x1d, 0x8e, 0x43, 0x79, 0x06, 0x47,
0xcd, 0xcc, 0x3a, 0x14, 0x13, 0xb6, 0x6a, 0x3f, 0x1b, 0xb2, 0x42, 0x82, 0x4b, 0x9a, 0xd0, 0x82,
0x09, 0x1b, 0x4a, 0x3b, 0xf3, 0xa5, 0x06, 0x85, 0x2f, 0x48, 0xa7, 0x73, 0xd5, 0x14, 0x0b, 0x1d,
0x21, 0xed, 0x48, 0x2d, 0x64, 0xca, 0xa8, 0x59, 0x94, 0x61, 0x6e, 0xa7, 0x23, 0x12, 0x25, 0xe7,
0x44, 0x43, 0xf3, 0x1f, 0x0d, 0x50, 0x04, 0x7e, 0x03, 0xc1, 0x8f, 0xa5, 0x2e, 0x75, 0xb1, 0xd4,
0xa5, 0xc7, 0x48, 0x5d, 0x66, 0xac, 0xd4, 0x65, 0x87, 0xa4, 0xae, 0x0a, 0x19, 0x16, 0xe0, 0x96,
0x10, 0xc7, 0x71, 0x4a, 0x25, 0x2c, 0x92, 0x2c, 0x2d, 0x8c, 0x4d, 0xc4, 0x5b, 0xf0, 0xbf, 0x73,
0x57, 0x97, 0x61, 0x35, 0x7f, 0xd6, 0x60, 0xc9, 0xc1, 0x8c, 0x7c, 0x8f, 0xb7, 0xf9, 0xf1, 0x95,
0x87, 0x6a, 0x19, 0xb2, 0x2f, 0x88, 0xc7, 0xf7, 0x55, 0xa4, 0xe4, 0x24, 0x62, 0x67, 0x1f, 0x93,
0xf6, 0xbe, 0x7c, 0xd4, 0x8b, 0x8e, 0x9a, 0x99, 0x3f, 0xc2, 0x8d, 0x8d, 0x0e, 0x65, 0xb8, 0xf1,
0xf8, 0xbf, 0x38, 0x98, 0x0c, 0x67, 0x5a, 0x44, 0x41, 0x4e, 0xcc, 0xcf, 0x61, 0x69, 0xdb, 0xed,
0xb1, 0xb9, 0x65, 0x71, 0x0b, 0x8a, 0x0e, 0x66, 0xbd, 0xee, 0xdc, 0x8e, 0x36, 0xe1, 0x66, 0xf4,
0x32, 0xb7, 0x89, 0x37, 0x4f, 0xf2, 0x9a, 0xef, 0x4a, 0x31, 0x90, 0x6e, 0xd4, 0xfb, 0x46, 0x90,
0x09, 0x88, 0x27, 0x9f, 0xf7, 0xa2, 0x23, 0xc6, 0xe6, 0x9f, 0x1a, 0xdc, 0xda, 0x88, 0xcb, 0xe7,
0xbc, 0xed, 0x44, 0x13, 0x8a, 0x81, 0x1b, 0x62, 0x9f, 0x37, 0x13, 0x25, 0x5c, 0x86, 0xa4, 0x16,
0x49, 0xf5, 0x1f, 0xa7, 0x95, 0xbb, 0x89, 0xc6, 0x88, 0x06, 0xd8, 0x8f, 0xe1, 0xcc, 0x6e, 0xd3,
0x35, 0x8f, 0xb4, 0x31, 0xe3, 0x56, 0x5d, 0xfc, 0x72, 0x96, 0xa4, 0xb3, 0x8d, 0x0b, 0xcb, 0x7b,
0x7a, 0x96, 0xf2, 0xfe, 0x2d, 0xac, 0x0c, 0xdf, 0x4e, 0x91, 0xf1, 0x29, 0x14, 0xce, 0x9a, 0xb6,
0x81, 0xe4, 0x4d, 0xee, 0x33, 0x92, 0x00, 0xf3, 0x07, 0x28, 0x7e, 0x1d, 0x78, 0x6f, 0xa0, 0x05,
0xab, 0x41, 0x3e, 0xc4, 0x8c, 0xf6, 0xc2, 0x16, 0x66, 0x82, 0xab, 0x71, 0x97, 0x3a, 0x33, 0xab,
0xfd, 0x52, 0x80, 0xac, 0xd0, 0x6e, 0x74, 0x00, 0xba, 0xec, 0x5f, 0x90, 0x6d, 0x4d, 0xea, 0xa9,
0xad, 0x91, 0x7e, 0xd1, 0xf8, 0x70, 0x76, 0x80, 0xe2, 0xec, 0x3b, 0xc8, 0x8a, 0x3e, 0x03, 0xdd,
0x9d, 0x0c, 0x4d, 0x76, 0x3d, 0xc6, 0xfb, 0x33, 0xd9, 0xaa, 0x1d, 0xda, 0xa0, 0xcb, 0xe2, 0x3d,
0xed, 0x3a, 0x23, 0xcd, 0x8c, 0xf1, 0xc1, 0x2c, 0x80, 0x78, 0xa3, 0xe7, 0xb0, 0x78, 0xae, 0x4b,
0x40, 0xb5, 0x59, 0xe0, 0xe7, 0xab, 0xca, 0x25, 0xb7, 0xdc, 0x85, 0xf4, 0x16, 0xe6, 0x68, 0x0a,
0xe8, 0x7c, 0x2b, 0x61, 0xac, 0xcd, 0x68, 0x1d, 0xf3, 0x97, 0x89, 0x9e, 0x3d, 0xb2, 0x26, 0xc3,
0x86, 0xfb, 0x04, 0xc3, 0x9e, 0xd9, 0x5e, 0x6d, 0xd4, 0x80, 0x4c, 0x54, 0xf9, 0xd1, 0x7b, 0x93,
0x81, 0x89, 0xee, 0xc0, 0x58, 0x19, 0xc9, 0xea, 0xcd, 0xe8, 0xcf, 0x3a, 0xb4, 0x0d, 0x99, 0x48,
0xaa, 0xd1, 0x94, 0x7c, 0x1c, 0xad, 0xea, 0x63, 0x3d, 0xee, 0x40, 0x3e, 0x2e, 0x78, 0xd3, 0xa8,
0x18, 0xae, 0x8c, 0x63, 0x9d, 0x3e, 0x86, 0x05, 0x55, 0xaa, 0xa6, 0x85, 0xf0, 0x7c, 0x45, 0x9b,
0xe0, 0x30, 0x2b, 0x4a, 0xcf, 0xb4, 0x13, 0x0e, 0xd7, 0xa7, 0xb1, 0x0e, 0x9f, 0x80, 0x2e, 0x6b,
0xd0, 0xb4, 0xc7, 0x33, 0x52, 0xa9, 0xc6, 0xba, 0x24, 0x90, 0x1b, 0x94, 0x11, 0xb4, 0x36, 0x3d,
0x47, 0x12, 0x55, 0xcb, 0xb0, 0x66, 0x35, 0x57, 0x19, 0xf5, 0x02, 0x20, 0x21, 0xf4, 0xf7, 0xa7,
0x50, 0x7c, 0x51, 0xc9, 0x32, 0x3e, 0xba, 0x1c, 0x48, 0x6d, 0xfc, 0x04, 0x74, 0xa9, 0xe4, 0xd3,
0x68, 0x1b, 0xd1, 0xfb, 0x71, 0xb4, 0xad, 0x7f, 0x73, 0xf2, 0xaa, 0x7c, 0xed, 0xf7, 0x57, 0xe5,
0x6b, 0x3f, 0xf5, 0xcb, 0xda, 0x49, 0xbf, 0xac, 0xfd, 0xd6, 0x2f, 0x6b, 0x7f, 0xf7, 0xcb, 0xda,
0xb3, 0x87, 0xaf, 0xf7, 0xcf, 0x93, 0x07, 0x62, 0xb0, 0xab, 0x8b, 0x7d, 0xee, 0xff, 0x1b, 0x00,
0x00, 0xff, 0xff, 0x55, 0x8b, 0x54, 0x53, 0x83, 0x11, 0x00, 0x00,
// 1207 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xcd, 0x6f, 0x1b, 0x45,
0x14, 0xef, 0xfa, 0x63, 0x6d, 0x3f, 0x37, 0x6d, 0x32, 0xa4, 0xc1, 0x2c, 0x95, 0x1d, 0x16, 0x09,
0x99, 0x42, 0x77, 0xa9, 0x8b, 0x7a, 0xa0, 0x15, 0x52, 0x13, 0x87, 0xc8, 0x02, 0xd4, 0x74, 0x53,
0x10, 0xca, 0xc5, 0x6c, 0xbc, 0x13, 0x67, 0x14, 0x7b, 0x77, 0xbb, 0x33, 0x4e, 0x13, 0x38, 0xc0,
0x9f, 0xd0, 0x0b, 0x07, 0x2e, 0xfc, 0x3d, 0x39, 0x72, 0x44, 0x08, 0x05, 0xea, 0xff, 0x82, 0x1b,
0x9a, 0x0f, 0x6f, 0x36, 0x76, 0xfc, 0x91, 0xba, 0xe1, 0x92, 0xcc, 0xcc, 0xbe, 0xaf, 0xf9, 0xbd,
0x37, 0xbf, 0xf7, 0x12, 0x58, 0x6b, 0x13, 0xb6, 0xdf, 0xdb, 0xb5, 0x5a, 0x41, 0xd7, 0x6e, 0x05,
0x3e, 0x73, 0x89, 0x8f, 0x23, 0x2f, 0xb9, 0x74, 0x43, 0x62, 0x53, 0x1c, 0x1d, 0x92, 0x16, 0xa6,
0x36, 0x73, 0xe9, 0x01, 0xb5, 0x0f, 0xef, 0xc9, 0x85, 0x15, 0x46, 0x01, 0x0b, 0xd0, 0xed, 0x33,
0x69, 0x6b, 0x20, 0x69, 0x49, 0x81, 0xc3, 0x7b, 0xc6, 0xbb, 0xed, 0x20, 0x68, 0x77, 0xb0, 0x2d,
0x64, 0x77, 0x7b, 0x7b, 0x36, 0xee, 0x86, 0xec, 0x58, 0xaa, 0x1a, 0xef, 0x0c, 0x7f, 0x74, 0xfd,
0xc1, 0xa7, 0xe5, 0x76, 0xd0, 0x0e, 0xc4, 0xd2, 0xe6, 0x2b, 0x75, 0xfa, 0x60, 0xa6, 0x78, 0xd9,
0x71, 0x88, 0xa9, 0xdd, 0x0d, 0x7a, 0x3e, 0x53, 0x7a, 0x0f, 0x2f, 0xa1, 0xe7, 0x61, 0xda, 0x8a,
0x48, 0xc8, 0x82, 0x48, 0x29, 0x7f, 0x76, 0x09, 0x65, 0x7e, 0x6f, 0xf1, 0x43, 0xe9, 0x56, 0x86,
0x6f, 0xc8, 0x48, 0x17, 0x53, 0xe6, 0x76, 0x43, 0x29, 0x60, 0x9e, 0xa4, 0x60, 0x69, 0x3d, 0xc2,
0x2e, 0xc3, 0xcf, 0x5c, 0x7a, 0xe0, 0xe0, 0xe7, 0x3d, 0x4c, 0x19, 0xaa, 0xc1, 0xf5, 0xd8, 0x7c,
0x93, 0x78, 0x25, 0x6d, 0x55, 0xab, 0x16, 0xd6, 0x6e, 0xf6, 0x4f, 0x2b, 0xc5, 0xf5, 0xc1, 0x79,
0xa3, 0xee, 0x14, 0x63, 0xa1, 0x86, 0x87, 0x6c, 0xd0, 0xa3, 0x20, 0x60, 0x7b, 0xb4, 0x94, 0x5e,
0x4d, 0x57, 0x8b, 0xb5, 0xb7, 0xad, 0x44, 0x62, 0x44, 0x74, 0xd6, 0xd7, 0x1c, 0x12, 0x47, 0x89,
0xa1, 0x65, 0xc8, 0x52, 0xe6, 0x11, 0xbf, 0x94, 0xe1, 0xd6, 0x1d, 0xb9, 0x41, 0x2b, 0xa0, 0x53,
0xe6, 0x05, 0x3d, 0x56, 0xca, 0x8a, 0x63, 0xb5, 0x53, 0xe7, 0x38, 0x8a, 0x4a, 0x7a, 0x7c, 0x8e,
0xa3, 0x08, 0x19, 0x90, 0x67, 0x38, 0xea, 0x12, 0xdf, 0xed, 0x94, 0x72, 0xab, 0x5a, 0x35, 0xef,
0xc4, 0x7b, 0xf4, 0x08, 0xa0, 0xb5, 0x8f, 0x5b, 0x07, 0x61, 0x40, 0x7c, 0x56, 0xca, 0xaf, 0x6a,
0xd5, 0x62, 0xed, 0xf6, 0x68, 0x58, 0xf5, 0x18, 0x71, 0x27, 0x21, 0x8f, 0x2c, 0xc8, 0x05, 0x21,
0x23, 0x81, 0x4f, 0x4b, 0x05, 0xa1, 0xba, 0x6c, 0x49, 0x34, 0xad, 0x01, 0x9a, 0xd6, 0x63, 0xff,
0xd8, 0x19, 0x08, 0x99, 0x3b, 0x80, 0x92, 0x48, 0xd2, 0x30, 0xf0, 0x29, 0x7e, 0x2d, 0x28, 0x17,
0x21, 0x1d, 0x12, 0xaf, 0x94, 0x5a, 0xd5, 0xaa, 0x0b, 0x0e, 0x5f, 0x9a, 0x6d, 0xb8, 0xbe, 0xcd,
0xdc, 0x88, 0xcd, 0x93, 0xa0, 0xf7, 0x21, 0x87, 0x8f, 0x70, 0xab, 0xa9, 0x2c, 0x17, 0xd6, 0xa0,
0x7f, 0x5a, 0xd1, 0x37, 0x8e, 0x70, 0xab, 0x51, 0x77, 0x74, 0xfe, 0xa9, 0xe1, 0x99, 0xef, 0xc1,
0x82, 0x72, 0xa4, 0xe2, 0x57, 0xb1, 0x68, 0x67, 0xb1, 0x6c, 0xc2, 0x52, 0x1d, 0x77, 0xf0, 0xdc,
0x15, 0x63, 0xfe, 0xa6, 0xc1, 0x0d, 0x69, 0x29, 0xf6, 0xb6, 0x02, 0xa9, 0x58, 0x59, 0xef, 0x9f,
0x56, 0x52, 0x8d, 0xba, 0x93, 0x22, 0x17, 0x20, 0x82, 0x2a, 0x50, 0xc4, 0x47, 0x84, 0x35, 0x29,
0x73, 0x59, 0x8f, 0xd7, 0x1c, 0xff, 0x02, 0xfc, 0x68, 0x5b, 0x9c, 0xa0, 0xc7, 0x50, 0xe0, 0x3b,
0xec, 0x35, 0x5d, 0x26, 0x4a, 0xac, 0x58, 0x33, 0x46, 0x12, 0xf8, 0x6c, 0xf0, 0x1c, 0xd6, 0xf2,
0x27, 0xa7, 0x95, 0x6b, 0x2f, 0xff, 0xae, 0x68, 0x4e, 0x5e, 0xaa, 0x3d, 0x66, 0x66, 0x00, 0xcb,
0x32, 0xbe, 0xad, 0x28, 0x68, 0x61, 0x4a, 0xaf, 0x1c, 0x7d, 0x0c, 0xb0, 0x89, 0xaf, 0x3e, 0xc9,
0x1b, 0x50, 0x14, 0x6e, 0x14, 0xe8, 0x0f, 0x20, 0x17, 0xca, 0x0b, 0x0a, 0x17, 0x43, 0x6f, 0xe4,
0xf0, 0x9e, 0x7a, 0x26, 0x03, 0x10, 0x06, 0xc2, 0xe6, 0x1d, 0x58, 0xfc, 0x8a, 0x50, 0xc6, 0xcb,
0x20, 0x86, 0x66, 0x05, 0xf4, 0x3d, 0xd2, 0x61, 0x38, 0x92, 0xd1, 0x3a, 0x6a, 0xc7, 0x8b, 0x26,
0x21, 0x1b, 0xbf, 0x8d, 0xac, 0x20, 0xea, 0x92, 0x26, 0x18, 0x63, 0xb2, 0x5b, 0x29, 0x6a, 0xbe,
0xd4, 0xa0, 0xf8, 0x25, 0xe9, 0x74, 0xae, 0x1a, 0x24, 0x41, 0x38, 0xa4, 0xcd, 0x69, 0x45, 0xd6,
0x96, 0xda, 0xf1, 0x52, 0x74, 0x3b, 0x1d, 0x51, 0x51, 0x79, 0x87, 0x2f, 0xcd, 0x7f, 0x35, 0x40,
0x5c, 0xf9, 0x0d, 0x54, 0x49, 0xcc, 0x89, 0xa9, 0x8b, 0x39, 0x31, 0x3d, 0x86, 0x13, 0x33, 0x63,
0x39, 0x31, 0x3b, 0xc4, 0x89, 0x55, 0xc8, 0xd0, 0x10, 0xb7, 0x04, 0x8b, 0x8e, 0xa3, 0x34, 0x21,
0x91, 0x44, 0x29, 0x37, 0xb6, 0x94, 0x6e, 0xc1, 0x5b, 0xe7, 0xae, 0x2e, 0x33, 0x6b, 0xfe, 0xaa,
0xc1, 0xa2, 0x83, 0x29, 0xf9, 0x01, 0x6f, 0xb1, 0xe3, 0x2b, 0x4f, 0xd5, 0x32, 0x64, 0x5f, 0x10,
0x8f, 0xed, 0xab, 0x4c, 0xc9, 0x0d, 0x47, 0x67, 0x1f, 0x93, 0xf6, 0xbe, 0x7c, 0xfd, 0x0b, 0x8e,
0xda, 0x99, 0x3f, 0xc1, 0x8d, 0xf5, 0x4e, 0x40, 0x71, 0xe3, 0xc9, 0xff, 0x11, 0x98, 0x4c, 0x67,
0x5a, 0x64, 0x41, 0x6e, 0xcc, 0x2f, 0x60, 0x71, 0xcb, 0xed, 0xd1, 0xb9, 0xf9, 0x73, 0x13, 0x96,
0x1c, 0x4c, 0x7b, 0xdd, 0xb9, 0x0d, 0x6d, 0xc0, 0x4d, 0xfe, 0x38, 0xb7, 0x88, 0x37, 0x4f, 0xf1,
0x9a, 0x1f, 0x48, 0x3e, 0x90, 0x66, 0xd4, 0x13, 0x47, 0x90, 0x09, 0x89, 0x27, 0x5f, 0xf8, 0x82,
0x23, 0xd6, 0xe6, 0x5f, 0x1a, 0xdc, 0x5a, 0x8f, 0xfb, 0xec, 0xbc, 0x73, 0x47, 0x13, 0x96, 0x42,
0x37, 0xc2, 0x3e, 0x6b, 0x26, 0x7a, 0xbd, 0x4c, 0x49, 0x8d, 0x73, 0xfa, 0x9f, 0xa7, 0x95, 0x3b,
0x89, 0x09, 0x2a, 0x08, 0xb1, 0x1f, 0xab, 0x53, 0xbb, 0x1d, 0xdc, 0xf5, 0x48, 0x1b, 0x53, 0x66,
0xd5, 0xc5, 0x2f, 0x67, 0x51, 0x1a, 0x5b, 0xbf, 0x70, 0x0e, 0x48, 0xcf, 0x32, 0x07, 0x7c, 0x07,
0x2b, 0xc3, 0xb7, 0x53, 0x60, 0x7c, 0x0e, 0xc5, 0xb3, 0xe9, 0xee, 0x42, 0xd6, 0x1b, 0x19, 0x48,
0x92, 0x0a, 0xe6, 0x8f, 0xb0, 0xf4, 0x4d, 0xe8, 0xbd, 0x81, 0x59, 0xad, 0x06, 0x85, 0x08, 0xd3,
0xa0, 0x17, 0xb5, 0x30, 0x15, 0x58, 0x8d, 0xbb, 0xd4, 0x99, 0x58, 0xed, 0x97, 0x22, 0x64, 0x05,
0x7d, 0xa3, 0x03, 0xd0, 0xe5, 0xa0, 0x83, 0x6c, 0x6b, 0xd2, 0xf0, 0x6d, 0x8d, 0x0c, 0x96, 0xc6,
0x27, 0xb3, 0x2b, 0x28, 0xcc, 0xbe, 0x87, 0xac, 0x18, 0x48, 0xd0, 0x9d, 0xc9, 0xaa, 0xc9, 0xf1,
0xc8, 0xf8, 0x68, 0x26, 0x59, 0xe5, 0xa1, 0x0d, 0xba, 0xec, 0xf2, 0xd3, 0xae, 0x33, 0x32, 0xf5,
0x18, 0x1f, 0xcf, 0xa2, 0x10, 0x3b, 0x7a, 0x0e, 0x0b, 0xe7, 0xc6, 0x09, 0x54, 0x9b, 0x45, 0xfd,
0x7c, 0x57, 0xb9, 0xa4, 0xcb, 0x1d, 0x48, 0x6f, 0x62, 0x86, 0xaa, 0x93, 0x95, 0xce, 0x66, 0x0e,
0xe3, 0xc3, 0x19, 0x24, 0x63, 0xdc, 0x32, 0xfc, 0xb9, 0x23, 0x6b, 0xb2, 0xca, 0xf0, 0x88, 0x60,
0xd8, 0x33, 0xcb, 0x2b, 0x47, 0x0d, 0xc8, 0xf0, 0x8e, 0x8f, 0xa6, 0xc4, 0x96, 0x98, 0x0a, 0x8c,
0x95, 0x91, 0x6a, 0xde, 0xe0, 0x7f, 0xf7, 0xa1, 0x2d, 0xc8, 0x70, 0x8a, 0x46, 0x53, 0xea, 0x70,
0xb4, 0x9b, 0x8f, 0xb5, 0xb8, 0x0d, 0x85, 0xb8, 0xd1, 0x4d, 0x83, 0x62, 0xb8, 0x23, 0x8e, 0x35,
0xfa, 0x04, 0x72, 0xaa, 0x45, 0xa1, 0x29, 0xf9, 0x3e, 0xdf, 0xc9, 0x26, 0x18, 0xcc, 0x8a, 0x96,
0x33, 0x2d, 0xc2, 0xe1, 0xbe, 0x34, 0xd6, 0xe0, 0x53, 0xd0, 0x65, 0xef, 0x99, 0xf6, 0x68, 0x46,
0x3a, 0xd4, 0x58, 0x93, 0x04, 0xf2, 0x83, 0xf6, 0x81, 0xee, 0x4e, 0xaf, 0x91, 0x44, 0xb7, 0x32,
0xac, 0x59, 0xc5, 0x55, 0x45, 0xbd, 0x00, 0x48, 0x10, 0xfc, 0xfd, 0x29, 0x10, 0x5f, 0xd4, 0xaa,
0x8c, 0x4f, 0x2f, 0xa7, 0xa4, 0x1c, 0x3f, 0x05, 0x5d, 0x32, 0xf8, 0x34, 0xd8, 0x46, 0x78, 0x7e,
0x1c, 0x6c, 0x6b, 0xdf, 0x9e, 0xbc, 0x2a, 0x5f, 0xfb, 0xe3, 0x55, 0xf9, 0xda, 0xcf, 0xfd, 0xb2,
0x76, 0xd2, 0x2f, 0x6b, 0xbf, 0xf7, 0xcb, 0xda, 0x3f, 0xfd, 0xb2, 0xb6, 0xf3, 0xe8, 0xf5, 0xfe,
0xbb, 0xf2, 0x50, 0x2c, 0x76, 0x75, 0xe1, 0xe7, 0xfe, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x17,
0xec, 0xf8, 0x44, 0xa4, 0x11, 0x00, 0x00,
}

View File

@ -24,7 +24,7 @@ service Tasks {
rpc DeleteProcess(DeleteProcessRequest) returns (DeleteResponse);
rpc Get(GetTaskRequest) returns (GetTaskResponse);
rpc Get(GetRequest) returns (GetResponse);
rpc List(ListTasksRequest) returns (ListTasksResponse);
@ -99,12 +99,13 @@ message DeleteProcessRequest {
string exec_id = 2;
}
message GetTaskRequest {
message GetRequest {
string container_id = 1;
string exec_id = 2;
}
message GetTaskResponse {
containerd.v1.types.Task task = 1;
message GetResponse {
containerd.v1.types.Process process = 1;
}
message ListTasksRequest {
@ -112,7 +113,7 @@ message ListTasksRequest {
}
message ListTasksResponse {
repeated containerd.v1.types.Task tasks = 1;
repeated containerd.v1.types.Process tasks = 1;
}
message KillRequest {

View File

@ -9,7 +9,7 @@
github.com/containerd/containerd/api/types/task/task.proto
It has these top-level messages:
Task
Process
*/
package task
@ -17,7 +17,7 @@ import proto "github.com/gogo/protobuf/proto"
import fmt "fmt"
import math "math"
import _ "github.com/gogo/protobuf/gogoproto"
import google_protobuf1 "github.com/gogo/protobuf/types"
import _ "github.com/gogo/protobuf/types"
import strings "strings"
import reflect "reflect"
@ -65,26 +65,26 @@ func (x Status) String() string {
}
func (Status) EnumDescriptor() ([]byte, []int) { return fileDescriptorTask, []int{0} }
type Task 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"`
Spec *google_protobuf1.Any `protobuf:"bytes,4,opt,name=spec" json:"spec,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"`
type Process struct {
ContainerID string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
ID string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
Pid uint32 `protobuf:"varint,3,opt,name=pid,proto3" json:"pid,omitempty"`
Status Status `protobuf:"varint,4,opt,name=status,proto3,enum=containerd.v1.types.Status" json:"status,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"`
}
func (m *Task) Reset() { *m = Task{} }
func (*Task) ProtoMessage() {}
func (*Task) Descriptor() ([]byte, []int) { return fileDescriptorTask, []int{0} }
func (m *Process) Reset() { *m = Process{} }
func (*Process) ProtoMessage() {}
func (*Process) Descriptor() ([]byte, []int) { return fileDescriptorTask, []int{0} }
func init() {
proto.RegisterType((*Task)(nil), "containerd.v1.types.Task")
proto.RegisterType((*Process)(nil), "containerd.v1.types.Process")
proto.RegisterEnum("containerd.v1.types.Status", Status_name, Status_value)
}
func (m *Task) Marshal() (dAtA []byte, err error) {
func (m *Process) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
@ -94,37 +94,33 @@ func (m *Task) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
func (m *Task) MarshalTo(dAtA []byte) (int, error) {
func (m *Process) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
_ = l
if len(m.ID) > 0 {
if len(m.ContainerID) > 0 {
dAtA[i] = 0xa
i++
i = encodeVarintTask(dAtA, i, uint64(len(m.ContainerID)))
i += copy(dAtA[i:], m.ContainerID)
}
if len(m.ID) > 0 {
dAtA[i] = 0x12
i++
i = encodeVarintTask(dAtA, i, uint64(len(m.ID)))
i += copy(dAtA[i:], m.ID)
}
if m.Pid != 0 {
dAtA[i] = 0x10
dAtA[i] = 0x18
i++
i = encodeVarintTask(dAtA, i, uint64(m.Pid))
}
if m.Status != 0 {
dAtA[i] = 0x18
dAtA[i] = 0x20
i++
i = encodeVarintTask(dAtA, i, uint64(m.Status))
}
if m.Spec != nil {
dAtA[i] = 0x22
i++
i = encodeVarintTask(dAtA, i, uint64(m.Spec.Size()))
n1, err := m.Spec.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n1
}
if len(m.Stdin) > 0 {
dAtA[i] = 0x2a
i++
@ -183,9 +179,13 @@ func encodeVarintTask(dAtA []byte, offset int, v uint64) int {
dAtA[offset] = uint8(v)
return offset + 1
}
func (m *Task) Size() (n int) {
func (m *Process) Size() (n int) {
var l int
_ = l
l = len(m.ContainerID)
if l > 0 {
n += 1 + l + sovTask(uint64(l))
}
l = len(m.ID)
if l > 0 {
n += 1 + l + sovTask(uint64(l))
@ -196,10 +196,6 @@ func (m *Task) Size() (n int) {
if m.Status != 0 {
n += 1 + sovTask(uint64(m.Status))
}
if m.Spec != nil {
l = m.Spec.Size()
n += 1 + l + sovTask(uint64(l))
}
l = len(m.Stdin)
if l > 0 {
n += 1 + l + sovTask(uint64(l))
@ -231,15 +227,15 @@ func sovTask(x uint64) (n int) {
func sozTask(x uint64) (n int) {
return sovTask(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (this *Task) String() string {
func (this *Process) String() string {
if this == nil {
return "nil"
}
s := strings.Join([]string{`&Task{`,
s := strings.Join([]string{`&Process{`,
`ContainerID:` + fmt.Sprintf("%v", this.ContainerID) + `,`,
`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) + `,`,
`Stdin:` + fmt.Sprintf("%v", this.Stdin) + `,`,
`Stdout:` + fmt.Sprintf("%v", this.Stdout) + `,`,
`Stderr:` + fmt.Sprintf("%v", this.Stderr) + `,`,
@ -256,7 +252,7 @@ func valueToStringTask(v interface{}) string {
pv := reflect.Indirect(rv).Interface()
return fmt.Sprintf("*%v", pv)
}
func (m *Task) Unmarshal(dAtA []byte) error {
func (m *Process) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@ -279,13 +275,42 @@ func (m *Task) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: Task: wiretype end group for non-group")
return fmt.Errorf("proto: Process: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: Task: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: Process: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ContainerID", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTask
}
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 ErrInvalidLengthTask
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.ContainerID = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ID", wireType)
}
@ -314,7 +339,7 @@ func (m *Task) Unmarshal(dAtA []byte) error {
}
m.ID = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
case 3:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Pid", wireType)
}
@ -333,7 +358,7 @@ func (m *Task) Unmarshal(dAtA []byte) error {
break
}
}
case 3:
case 4:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType)
}
@ -352,39 +377,6 @@ func (m *Task) 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 ErrIntOverflowTask
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthTask
}
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
case 5:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Stdin", wireType)
@ -623,32 +615,33 @@ func init() {
}
var fileDescriptorTask = []byte{
// 431 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x90, 0xc1, 0x6e, 0xd3, 0x30,
0x1c, 0xc6, 0xeb, 0xb4, 0xcb, 0x8a, 0x61, 0x53, 0x30, 0xd5, 0x64, 0x02, 0x32, 0x11, 0xa7, 0x88,
0x83, 0x23, 0xb6, 0x1b, 0xb7, 0x6e, 0xad, 0xd0, 0x84, 0x94, 0x55, 0x6e, 0x2b, 0xce, 0x6e, 0x6d,
0x82, 0xd5, 0xcd, 0x8e, 0x12, 0x07, 0xd4, 0x1b, 0x47, 0xb4, 0x77, 0xd8, 0x09, 0x9e, 0x81, 0x03,
0x4f, 0xb0, 0x23, 0x47, 0x4e, 0x88, 0xe5, 0x0d, 0x78, 0x03, 0x14, 0xa7, 0x8c, 0x1e, 0x76, 0x89,
0xfe, 0xdf, 0xf7, 0xfb, 0xa4, 0xfc, 0x64, 0xf8, 0x2a, 0x53, 0xf6, 0x7d, 0xb5, 0xa0, 0x4b, 0x73,
0x91, 0x2c, 0x8d, 0xb6, 0x5c, 0x69, 0x59, 0x88, 0xed, 0x93, 0xe7, 0x2a, 0xb1, 0xeb, 0x5c, 0x96,
0x89, 0xe5, 0xe5, 0xca, 0x7d, 0x68, 0x5e, 0x18, 0x6b, 0xd0, 0xa3, 0xff, 0x2b, 0xfa, 0xe1, 0x25,
0x75, 0xa3, 0x70, 0x90, 0x99, 0xcc, 0x38, 0x9e, 0x34, 0x57, 0x3b, 0x0d, 0x1f, 0x67, 0xc6, 0x64,
0xe7, 0x32, 0x71, 0x69, 0x51, 0xbd, 0x4b, 0xb8, 0x5e, 0xb7, 0xe8, 0xf9, 0x1f, 0x00, 0x7b, 0x33,
0x5e, 0xae, 0xd0, 0x01, 0xf4, 0x94, 0xc0, 0x20, 0x02, 0xf1, 0xbd, 0x63, 0xbf, 0xfe, 0xf5, 0xcc,
0x3b, 0x1d, 0x31, 0x4f, 0x09, 0x14, 0xc0, 0x6e, 0xae, 0x04, 0xf6, 0x22, 0x10, 0xef, 0xb1, 0xe6,
0x44, 0x47, 0xd0, 0x2f, 0x2d, 0xb7, 0x55, 0x89, 0xbb, 0x11, 0x88, 0xf7, 0x0f, 0x9f, 0xd0, 0x3b,
0x4c, 0xe8, 0xd4, 0x4d, 0xd8, 0x66, 0x8a, 0x62, 0xd8, 0x2b, 0x73, 0xb9, 0xc4, 0xbd, 0x08, 0xc4,
0xf7, 0x0f, 0x07, 0xb4, 0x35, 0xa2, 0xff, 0x8c, 0xe8, 0x50, 0xaf, 0x99, 0x5b, 0xa0, 0x01, 0xdc,
0x29, 0xad, 0x50, 0x1a, 0xef, 0x34, 0x2e, 0xac, 0x0d, 0xe8, 0xa0, 0xf9, 0xa9, 0x30, 0x95, 0xc5,
0xbe, 0xab, 0x37, 0x69, 0xd3, 0xcb, 0xa2, 0xc0, 0xbb, 0xb7, 0xbd, 0x2c, 0x0a, 0x14, 0xc2, 0xbe,
0x95, 0xc5, 0x85, 0xd2, 0xfc, 0x1c, 0xf7, 0x23, 0x10, 0xf7, 0xd9, 0x6d, 0x7e, 0xf1, 0x0d, 0x40,
0xbf, 0xd5, 0x43, 0x04, 0xee, 0xce, 0xd3, 0x37, 0xe9, 0xd9, 0xdb, 0x34, 0xe8, 0x84, 0x0f, 0x2f,
0xaf, 0xa2, 0xbd, 0x16, 0xcc, 0xf5, 0x4a, 0x9b, 0x8f, 0xba, 0xe1, 0x27, 0x6c, 0x3c, 0x9c, 0x8d,
0x47, 0x01, 0xd8, 0xe6, 0x27, 0x85, 0xe4, 0x56, 0x8a, 0x86, 0xb3, 0x79, 0x9a, 0x9e, 0xa6, 0xaf,
0x03, 0x6f, 0x9b, 0xb3, 0x4a, 0x6b, 0xa5, 0xb3, 0x86, 0x4f, 0x67, 0x67, 0x93, 0xc9, 0x78, 0x14,
0x74, 0xb7, 0xf9, 0xd4, 0x9a, 0x3c, 0x97, 0x02, 0x3d, 0x85, 0xfe, 0x64, 0x38, 0x9f, 0x8e, 0x47,
0x41, 0x2f, 0x0c, 0x2e, 0xaf, 0xa2, 0x07, 0x2d, 0x9e, 0xf0, 0xaa, 0x94, 0x22, 0xdc, 0xff, 0xfc,
0x85, 0x74, 0xbe, 0x7f, 0x25, 0x1b, 0xdb, 0x63, 0x7c, 0x7d, 0x43, 0x3a, 0x3f, 0x6f, 0x48, 0xe7,
0x53, 0x4d, 0xc0, 0x75, 0x4d, 0xc0, 0x8f, 0x9a, 0x80, 0xdf, 0x35, 0x01, 0x0b, 0xdf, 0x3d, 0xe4,
0xd1, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xdf, 0xcf, 0x9e, 0x89, 0x51, 0x02, 0x00, 0x00,
// 436 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x91, 0x3f, 0x6f, 0xd3, 0x40,
0x18, 0xc6, 0x73, 0x4e, 0xeb, 0x84, 0xeb, 0x1f, 0xcc, 0x51, 0x55, 0x87, 0x41, 0x57, 0x8b, 0x29,
0x62, 0xb0, 0x45, 0xbb, 0xb1, 0xb5, 0x71, 0x84, 0x22, 0x24, 0xd7, 0xba, 0x34, 0x62, 0x44, 0x4e,
0xee, 0x30, 0xa7, 0xb6, 0x77, 0xd6, 0xf9, 0x0c, 0xea, 0xc6, 0x88, 0xfa, 0x1d, 0x3a, 0xc1, 0x67,
0x60, 0xe0, 0x13, 0x74, 0x64, 0x64, 0xaa, 0x88, 0x3f, 0x08, 0x42, 0x3e, 0x87, 0x90, 0xa1, 0x8b,
0xf5, 0x3e, 0xcf, 0xef, 0xa7, 0xf7, 0xb5, 0x65, 0xf8, 0x2a, 0x17, 0xe6, 0x43, 0x35, 0x0b, 0xe7,
0xea, 0x32, 0x9a, 0x2b, 0x69, 0x32, 0x21, 0xb9, 0x66, 0xeb, 0x63, 0x56, 0x88, 0xc8, 0x5c, 0x15,
0xbc, 0x8c, 0x4c, 0x56, 0x9e, 0xdb, 0x47, 0x58, 0x68, 0x65, 0x14, 0x7a, 0xfc, 0xdf, 0x0a, 0x3f,
0xbe, 0x0c, 0xad, 0xe4, 0xef, 0xe5, 0x2a, 0x57, 0x96, 0x47, 0xcd, 0xd4, 0xaa, 0xfe, 0x93, 0x5c,
0xa9, 0xfc, 0x82, 0x47, 0x36, 0xcd, 0xaa, 0xf7, 0x51, 0x26, 0xaf, 0x5a, 0xf4, 0xfc, 0x0f, 0x80,
0xbd, 0x54, 0xab, 0x39, 0x2f, 0x4b, 0x74, 0x08, 0xb7, 0x57, 0x3b, 0xdf, 0x09, 0x86, 0x41, 0x00,
0x06, 0x0f, 0x4e, 0x1e, 0xd6, 0x77, 0x07, 0x5b, 0xc3, 0x7f, 0xfd, 0x38, 0xa6, 0x5b, 0x2b, 0x69,
0xcc, 0xd0, 0x3e, 0x74, 0x04, 0xc3, 0x8e, 0x35, 0xdd, 0xfa, 0xee, 0xc0, 0x19, 0xc7, 0xd4, 0x11,
0x0c, 0x79, 0xb0, 0x5b, 0x08, 0x86, 0xbb, 0x01, 0x18, 0xec, 0xd0, 0x66, 0x44, 0x47, 0xd0, 0x2d,
0x4d, 0x66, 0xaa, 0x12, 0x6f, 0x04, 0x60, 0xb0, 0x7b, 0xf8, 0x34, 0xbc, 0xe7, 0x03, 0xc2, 0x89,
0x55, 0xe8, 0x52, 0x45, 0x7b, 0x70, 0xb3, 0x34, 0x4c, 0x48, 0xbc, 0xd9, 0x5c, 0xa0, 0x6d, 0x40,
0xfb, 0xcd, 0x2a, 0xa6, 0x2a, 0x83, 0x5d, 0x5b, 0x2f, 0xd3, 0xb2, 0xe7, 0x5a, 0xe3, 0xde, 0xaa,
0xe7, 0x5a, 0x23, 0x1f, 0xf6, 0x0d, 0xd7, 0x97, 0x42, 0x66, 0x17, 0xb8, 0x1f, 0x80, 0x41, 0x9f,
0xae, 0xf2, 0x8b, 0xef, 0x00, 0xba, 0xed, 0x51, 0x44, 0x60, 0x6f, 0x9a, 0xbc, 0x49, 0x4e, 0xdf,
0x26, 0x5e, 0xc7, 0x7f, 0x74, 0x7d, 0x13, 0xec, 0xb4, 0x60, 0x2a, 0xcf, 0xa5, 0xfa, 0x24, 0x1b,
0x3e, 0xa4, 0xa3, 0xe3, 0xb3, 0x51, 0xec, 0x81, 0x75, 0x3e, 0xd4, 0x3c, 0x33, 0x9c, 0x35, 0x9c,
0x4e, 0x93, 0x64, 0x9c, 0xbc, 0xf6, 0x9c, 0x75, 0x4e, 0x2b, 0x29, 0x85, 0xcc, 0x1b, 0x3e, 0x39,
0x3b, 0x4d, 0xd3, 0x51, 0xec, 0x75, 0xd7, 0xf9, 0xc4, 0xa8, 0xa2, 0xe0, 0x0c, 0x3d, 0x83, 0x6e,
0x7a, 0x3c, 0x9d, 0x8c, 0x62, 0x6f, 0xc3, 0xf7, 0xae, 0x6f, 0x82, 0xed, 0x16, 0xa7, 0x59, 0x55,
0x72, 0xe6, 0xef, 0x7e, 0xf9, 0x4a, 0x3a, 0x3f, 0xbe, 0x91, 0xe5, 0xdb, 0x9e, 0xe0, 0xdb, 0x05,
0xe9, 0xfc, 0x5a, 0x90, 0xce, 0xe7, 0x9a, 0x80, 0xdb, 0x9a, 0x80, 0x9f, 0x35, 0x01, 0xbf, 0x6b,
0x02, 0x66, 0xae, 0xfd, 0xb5, 0x47, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x2d, 0x82, 0xe5, 0xdf,
0x5e, 0x02, 0x00, 0x00,
}

View File

@ -16,11 +16,11 @@ enum Status {
PAUSED = 4 [(gogoproto.enumvalue_customname) = "StatusPaused"];
}
message Task {
string id = 1;
uint32 pid = 2;
Status status = 3;
google.protobuf.Any spec = 4;
message Process {
string container_id = 1;
string id = 2;
uint32 pid = 3;
Status status = 4;
string stdin = 5;
string stdout = 6;
string stderr = 7;

View File

@ -232,7 +232,7 @@ func (c *container) NewTask(ctx context.Context, ioCreate IOCreation, opts ...Ne
}
func (c *container) loadTask(ctx context.Context, ioAttach IOAttach) (Task, error) {
response, err := c.client.TaskService().Get(ctx, &tasks.GetTaskRequest{
response, err := c.client.TaskService().Get(ctx, &tasks.GetRequest{
ContainerID: c.c.ID,
})
if err != nil {
@ -247,14 +247,14 @@ func (c *container) loadTask(ctx context.Context, ioAttach IOAttach) (Task, erro
// get the existing fifo paths from the task information stored by the daemon
paths := &FIFOSet{
Dir: getFifoDir([]string{
response.Task.Stdin,
response.Task.Stdout,
response.Task.Stderr,
response.Process.Stdin,
response.Process.Stdout,
response.Process.Stderr,
}),
In: response.Task.Stdin,
Out: response.Task.Stdout,
Err: response.Task.Stderr,
Terminal: response.Task.Terminal,
In: response.Process.Stdin,
Out: response.Process.Stdout,
Err: response.Process.Stderr,
Terminal: response.Process.Terminal,
}
if i, err = ioAttach(paths); err != nil {
return nil, err
@ -263,8 +263,8 @@ func (c *container) loadTask(ctx context.Context, ioAttach IOAttach) (Task, erro
t := &task{
client: c.client,
io: i,
id: response.Task.ID,
pid: response.Task.Pid,
id: response.Process.ID,
pid: response.Process.Pid,
}
return t, nil
}

View File

@ -27,6 +27,7 @@ import (
type execProcess struct {
sync.WaitGroup
mu sync.Mutex
id string
console console.Console
io runc.IO
@ -73,6 +74,8 @@ func (e *execProcess) ID() string {
}
func (e *execProcess) Pid() int {
e.mu.Lock()
defer e.mu.Unlock()
return e.pid
}
@ -109,8 +112,13 @@ func (e *execProcess) Resize(ws console.WinSize) error {
}
func (e *execProcess) Kill(ctx context.Context, sig uint32, _ bool) error {
if err := unix.Kill(e.pid, syscall.Signal(sig)); err != nil {
return errors.Wrapf(checkKillError(err), "exec kill error")
e.mu.Lock()
pid := e.pid
e.mu.Unlock()
if pid != 0 {
if err := unix.Kill(pid, syscall.Signal(sig)); err != nil {
return errors.Wrapf(checkKillError(err), "exec kill error")
}
}
return nil
}
@ -179,6 +187,33 @@ func (e *execProcess) Start(ctx context.Context) (err error) {
if err != nil {
return errors.Wrap(err, "failed to retrieve OCI runtime exec pid")
}
e.mu.Lock()
e.pid = pid
e.mu.Unlock()
return nil
}
func (e *execProcess) Status(ctx context.Context) (string, error) {
s, err := e.parent.Status(ctx)
if err != nil {
return "", err
}
// if the container as a whole is in the pausing/paused state, so are all
// other processes inside the container, use container state here
switch s {
case "paused", "pausing":
return s, nil
}
e.mu.Lock()
defer e.mu.Unlock()
// if we don't have a pid then the exec process has just been created
if e.pid == 0 {
return "created", nil
}
// if we have a pid and it can be signaled, the process is running
if err := unix.Kill(e.pid, 0); err == nil {
return "running", nil
}
// else if we have a pid but it can nolonger be signaled, it has stopped
return "stopped", nil
}

View File

@ -209,8 +209,8 @@ func (p *initProcess) ExitedAt() time.Time {
return p.exited
}
// ContainerStatus return the state of the container (created, running, paused, stopped)
func (p *initProcess) ContainerStatus(ctx context.Context) (string, error) {
// Status return the state of the container (created, running, paused, stopped)
func (p *initProcess) Status(ctx context.Context) (string, error) {
c, err := p.runtime.State(ctx, p.id)
if err != nil {
return "", p.runtimeError(err, "OCI runtime state failed")
@ -233,7 +233,7 @@ func (p *initProcess) SetExited(status int) {
}
func (p *initProcess) Delete(context context.Context) error {
status, err := p.ContainerStatus(context)
status, err := p.Status(context)
if err != nil {
return err
}

View File

@ -40,4 +40,6 @@ type process interface {
Stdio() stdio
// Start execution of the process
Start(context.Context) error
// Status returns the process status
Status(ctx context.Context) (string, error)
}

View File

@ -229,14 +229,11 @@ func (s *Service) ResizePty(ctx context.Context, r *shimapi.ResizePtyRequest) (*
}
func (s *Service) State(ctx context.Context, r *shimapi.StateRequest) (*shimapi.StateResponse, error) {
if s.initProcess == nil {
return nil, errdefs.ToGRPCf(errdefs.ErrFailedPrecondition, "container must be created")
}
p, ok := s.processes[r.ID]
if !ok {
return nil, errdefs.ToGRPCf(errdefs.ErrNotFound, "process id %s not found", r.ID)
}
st, err := s.initProcess.ContainerStatus(ctx)
st, err := p.Status(ctx)
if err != nil {
return nil, err
}

View File

@ -66,7 +66,6 @@ func (t *Task) State(ctx context.Context) (runtime.State, error) {
status = runtime.StoppedStatus
case task.StatusPaused:
status = runtime.PausedStatus
// TODO: containerd.DeletedStatus
}
return runtime.State{
Pid: response.Pid,

View File

@ -2,10 +2,12 @@ package containerd
import (
"context"
"strings"
"syscall"
eventsapi "github.com/containerd/containerd/api/services/events/v1"
"github.com/containerd/containerd/api/services/tasks/v1"
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/runtime"
"github.com/containerd/containerd/typeurl"
specs "github.com/opencontainers/runtime-spec/specs-go"
@ -121,3 +123,14 @@ func (p *process) Delete(ctx context.Context) (uint32, error) {
}
return r.ExitStatus, nil
}
func (p *process) Status(ctx context.Context) (TaskStatus, error) {
r, err := p.task.client.TaskService().Get(ctx, &tasks.GetRequest{
ContainerID: p.task.id,
ExecID: p.id,
})
if err != nil {
return "", errdefs.FromGRPC(err)
}
return TaskStatus(strings.ToLower(r.Process.Status.String())), nil
}

View File

@ -212,8 +212,8 @@ func (s *Service) DeleteProcess(ctx context.Context, r *api.DeleteProcessRequest
}, nil
}
func taskFromContainerd(ctx context.Context, c runtime.Task) (*task.Task, error) {
state, err := c.State(ctx)
func processFromContainerd(ctx context.Context, p runtime.Process) (*task.Process, error) {
state, err := p.State(ctx)
if err != nil {
return nil, err
}
@ -230,8 +230,8 @@ func taskFromContainerd(ctx context.Context, c runtime.Task) (*task.Task, error)
default:
log.G(ctx).WithField("status", state.Status).Warn("unknown status")
}
return &task.Task{
ID: c.Info().ID,
return &task.Process{
ID: p.ID(),
Pid: state.Pid,
Status: status,
Stdin: state.Stdin,
@ -241,17 +241,23 @@ func taskFromContainerd(ctx context.Context, c runtime.Task) (*task.Task, error)
}, nil
}
func (s *Service) Get(ctx context.Context, r *api.GetTaskRequest) (*api.GetTaskResponse, error) {
func (s *Service) Get(ctx context.Context, r *api.GetRequest) (*api.GetResponse, error) {
task, err := s.getTask(ctx, r.ContainerID)
if err != nil {
return nil, err
}
t, err := taskFromContainerd(ctx, task)
p := runtime.Process(task)
if r.ExecID != "" {
if p, err = task.Process(ctx, r.ExecID); err != nil {
return nil, err
}
}
t, err := processFromContainerd(ctx, p)
if err != nil {
return nil, err
}
return &api.GetTaskResponse{
Task: t,
return &api.GetResponse{
Process: t,
}, nil
}
@ -263,7 +269,7 @@ func (s *Service) List(ctx context.Context, r *api.ListTasksRequest) (*api.ListT
return nil, err
}
for _, t := range tasks {
tt, err := taskFromContainerd(ctx, t)
tt, err := processFromContainerd(ctx, t)
if err != nil {
return nil, err
}

View File

@ -88,6 +88,7 @@ type Process interface {
CloseIO(context.Context, ...IOCloserOpts) error
Resize(ctx context.Context, w, h uint32) error
IO() *IO
Status(context.Context) (TaskStatus, error)
}
var _ = (Task)(&task{})
@ -153,13 +154,13 @@ func (t *task) Resume(ctx context.Context) error {
}
func (t *task) Status(ctx context.Context) (TaskStatus, error) {
r, err := t.client.TaskService().Get(ctx, &tasks.GetTaskRequest{
r, err := t.client.TaskService().Get(ctx, &tasks.GetRequest{
ContainerID: t.id,
})
if err != nil {
return "", errdefs.FromGRPC(err)
}
return TaskStatus(strings.ToLower(r.Task.Status.String())), nil
return TaskStatus(strings.ToLower(r.Process.Status.String())), nil
}
// Wait is a blocking call that will wait for the task to exit and return the exit status