Add Kill API for shim service

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
This commit is contained in:
Qiang Huang 2017-04-05 08:26:35 +08:00
parent 2048f891d2
commit 6132bec05a
13 changed files with 284 additions and 59 deletions

View file

@ -2588,7 +2588,7 @@ func init() {
var fileDescriptorContent = []byte{ var fileDescriptorContent = []byte{
// 768 bytes of a gzipped FileDescriptorProto // 768 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0x4f, 0x6f, 0xd3, 0x4e, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xb4, 0x55, 0x4f, 0x6f, 0xd3, 0x4e,
0x10, 0xcd, 0xe6, 0x8f, 0x7f, 0xcd, 0x24, 0xed, 0x2f, 0x6c, 0x43, 0x15, 0xb9, 0xad, 0x13, 0xc2, 0x10, 0xcd, 0xe6, 0x8f, 0x7f, 0xcd, 0x24, 0xed, 0x2f, 0x6c, 0x43, 0x15, 0xb9, 0xad, 0x13, 0xc2,
0x25, 0xaa, 0x84, 0x53, 0xc2, 0x0d, 0x0e, 0xc8, 0x49, 0x4b, 0x55, 0xa4, 0x52, 0xc9, 0x8d, 0x54, 0x25, 0xaa, 0x84, 0x53, 0xc2, 0x0d, 0x0e, 0xc8, 0x49, 0x4b, 0x55, 0xa4, 0x52, 0xc9, 0x8d, 0x54,
0x71, 0x42, 0x4e, 0xb2, 0x09, 0x96, 0x1a, 0xaf, 0xb1, 0x37, 0x55, 0xe1, 0xc4, 0x05, 0x09, 0xf5, 0x71, 0x42, 0x4e, 0xb2, 0x09, 0x96, 0x1a, 0xaf, 0xb1, 0x37, 0x55, 0xe1, 0xc4, 0x05, 0x09, 0xf5,

View file

@ -1951,7 +1951,7 @@ func init() {
var fileDescriptorExecution = []byte{ var fileDescriptorExecution = []byte{
// 586 bytes of a gzipped FileDescriptorProto // 586 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x53, 0x4d, 0x6f, 0xd3, 0x40, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x94, 0x53, 0x4d, 0x6f, 0xd3, 0x40,
0x10, 0xad, 0x93, 0xd4, 0x0d, 0x93, 0xa6, 0x54, 0xab, 0x28, 0x32, 0x46, 0x72, 0x23, 0xd3, 0x96, 0x10, 0xad, 0x93, 0xd4, 0x0d, 0x93, 0xa6, 0x54, 0xab, 0x28, 0x32, 0x46, 0x72, 0x23, 0xd3, 0x96,
0x9c, 0x6c, 0x08, 0x37, 0x84, 0x90, 0x68, 0x13, 0xa1, 0x08, 0x8a, 0x84, 0x73, 0xe0, 0x88, 0x9c, 0x9c, 0x6c, 0x08, 0x37, 0x84, 0x90, 0x68, 0x13, 0xa1, 0x08, 0x8a, 0x84, 0x73, 0xe0, 0x88, 0x9c,
0x78, 0x13, 0x56, 0x4a, 0x76, 0xcd, 0xee, 0x3a, 0x6a, 0x6e, 0xf0, 0xef, 0x7a, 0xe4, 0xc8, 0x09, 0x78, 0x13, 0x56, 0x4a, 0x76, 0xcd, 0xee, 0x3a, 0x6a, 0x6e, 0xf0, 0xef, 0x7a, 0xe4, 0xc8, 0x09,

View file

@ -125,9 +125,14 @@ const _ = grpc.SupportPackageIsVersion4
// Client API for Images service // Client API for Images service
type ImagesClient interface { type ImagesClient interface {
// Get returns an image by name.
Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error)
// Put assigns the name to a given target image based on the provided
// image.
Put(ctx context.Context, in *PutRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) Put(ctx context.Context, in *PutRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
// List returns a list of all images known to containerd.
List(ctx context.Context, in *ListRequest, opts ...grpc.CallOption) (*ListResponse, error) List(ctx context.Context, in *ListRequest, opts ...grpc.CallOption) (*ListResponse, error)
// Delete deletes the image by name.
Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
} }
@ -178,9 +183,14 @@ func (c *imagesClient) Delete(ctx context.Context, in *DeleteRequest, opts ...gr
// Server API for Images service // Server API for Images service
type ImagesServer interface { type ImagesServer interface {
// Get returns an image by name.
Get(context.Context, *GetRequest) (*GetResponse, error) Get(context.Context, *GetRequest) (*GetResponse, error)
// Put assigns the name to a given target image based on the provided
// image.
Put(context.Context, *PutRequest) (*google_protobuf1.Empty, error) Put(context.Context, *PutRequest) (*google_protobuf1.Empty, error)
// List returns a list of all images known to containerd.
List(context.Context, *ListRequest) (*ListResponse, error) List(context.Context, *ListRequest) (*ListResponse, error)
// Delete deletes the image by name.
Delete(context.Context, *DeleteRequest) (*google_protobuf1.Empty, error) Delete(context.Context, *DeleteRequest) (*google_protobuf1.Empty, error)
} }
@ -1325,7 +1335,7 @@ func init() {
var fileDescriptorImages = []byte{ var fileDescriptorImages = []byte{
// 419 bytes of a gzipped FileDescriptorProto // 419 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x52, 0x4d, 0x6f, 0xd3, 0x40, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x94, 0x52, 0x4d, 0x6f, 0xd3, 0x40,
0x10, 0xcd, 0x36, 0xa9, 0x25, 0xc6, 0xe4, 0xb2, 0xaa, 0x90, 0x71, 0x91, 0x6b, 0x99, 0x4b, 0xc5, 0x10, 0xcd, 0x36, 0xa9, 0x25, 0xc6, 0xe4, 0xb2, 0xaa, 0x90, 0x71, 0x91, 0x6b, 0x99, 0x4b, 0xc5,
0x61, 0x0d, 0xe6, 0x02, 0x52, 0x29, 0x22, 0x2a, 0x54, 0x48, 0x1c, 0x2a, 0x1f, 0xb9, 0x39, 0xee, 0x61, 0x0d, 0xe6, 0x02, 0x52, 0x29, 0x22, 0x2a, 0x54, 0x48, 0x1c, 0x2a, 0x1f, 0xb9, 0x39, 0xee,
0x60, 0x2c, 0xd5, 0x5e, 0xe3, 0x5d, 0x57, 0xca, 0x0d, 0xfe, 0x5d, 0x8e, 0x1c, 0x39, 0x21, 0xe2, 0x60, 0x2c, 0xd5, 0x5e, 0xe3, 0x5d, 0x57, 0xca, 0x0d, 0xfe, 0x5d, 0x8e, 0x1c, 0x39, 0x21, 0xe2,

View file

@ -1103,7 +1103,7 @@ func init() {
var fileDescriptorRootfs = []byte{ var fileDescriptorRootfs = []byte{
// 428 bytes of a gzipped FileDescriptorProto // 428 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x52, 0x4d, 0xab, 0xd3, 0x40, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x52, 0x4d, 0xab, 0xd3, 0x40,
0x14, 0xed, 0xf8, 0x24, 0xad, 0x23, 0x7d, 0x8b, 0xc1, 0x45, 0x08, 0x9a, 0x94, 0xb8, 0x29, 0x82, 0x14, 0xed, 0xf8, 0x24, 0xad, 0x23, 0x7d, 0x8b, 0xc1, 0x45, 0x08, 0x9a, 0x94, 0xb8, 0x29, 0x82,
0x09, 0xd6, 0x85, 0x1b, 0x5d, 0xf8, 0x5e, 0x2c, 0xbe, 0x85, 0x20, 0x11, 0xd1, 0x9d, 0x4c, 0x93, 0x09, 0xd6, 0x85, 0x1b, 0x5d, 0xf8, 0x5e, 0x2c, 0xbe, 0x85, 0x20, 0x11, 0xd1, 0x9d, 0x4c, 0x93,
0x31, 0x1d, 0x6c, 0xe7, 0x8e, 0x33, 0xd3, 0x42, 0x77, 0xfe, 0x0e, 0x7f, 0x51, 0x97, 0x2e, 0x45, 0x31, 0x1d, 0x6c, 0xe7, 0x8e, 0x33, 0xd3, 0x42, 0x77, 0xfe, 0x0e, 0x7f, 0x51, 0x97, 0x2e, 0x45,

View file

@ -24,6 +24,7 @@
PauseRequest PauseRequest
ResumeRequest ResumeRequest
ExitRequest ExitRequest
KillRequest
*/ */
package shim package shim
@ -191,6 +192,15 @@ func (m *ExitRequest) Reset() { *m = ExitRequest{} }
func (*ExitRequest) ProtoMessage() {} func (*ExitRequest) ProtoMessage() {}
func (*ExitRequest) Descriptor() ([]byte, []int) { return fileDescriptorShim, []int{14} } func (*ExitRequest) Descriptor() ([]byte, []int) { return fileDescriptorShim, []int{14} }
type KillRequest struct {
Signal uint32 `protobuf:"varint,1,opt,name=signal,proto3" json:"signal,omitempty"`
All bool `protobuf:"varint,2,opt,name=all,proto3" json:"all,omitempty"`
}
func (m *KillRequest) Reset() { *m = KillRequest{} }
func (*KillRequest) ProtoMessage() {}
func (*KillRequest) Descriptor() ([]byte, []int) { return fileDescriptorShim, []int{15} }
func init() { func init() {
proto.RegisterType((*CreateRequest)(nil), "containerd.v1.services.shim.CreateRequest") proto.RegisterType((*CreateRequest)(nil), "containerd.v1.services.shim.CreateRequest")
proto.RegisterType((*CreateResponse)(nil), "containerd.v1.services.shim.CreateResponse") proto.RegisterType((*CreateResponse)(nil), "containerd.v1.services.shim.CreateResponse")
@ -207,6 +217,7 @@ func init() {
proto.RegisterType((*PauseRequest)(nil), "containerd.v1.services.shim.PauseRequest") proto.RegisterType((*PauseRequest)(nil), "containerd.v1.services.shim.PauseRequest")
proto.RegisterType((*ResumeRequest)(nil), "containerd.v1.services.shim.ResumeRequest") proto.RegisterType((*ResumeRequest)(nil), "containerd.v1.services.shim.ResumeRequest")
proto.RegisterType((*ExitRequest)(nil), "containerd.v1.services.shim.ExitRequest") proto.RegisterType((*ExitRequest)(nil), "containerd.v1.services.shim.ExitRequest")
proto.RegisterType((*KillRequest)(nil), "containerd.v1.services.shim.KillRequest")
} }
// Reference imports to suppress errors if they are not otherwise used. // Reference imports to suppress errors if they are not otherwise used.
@ -230,6 +241,7 @@ type ShimClient interface {
Pause(ctx context.Context, in *PauseRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, 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) Resume(ctx context.Context, in *ResumeRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
Exit(ctx context.Context, in *ExitRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) Exit(ctx context.Context, in *ExitRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
Kill(ctx context.Context, in *KillRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
} }
type shimClient struct { type shimClient struct {
@ -353,6 +365,15 @@ func (c *shimClient) Exit(ctx context.Context, in *ExitRequest, opts ...grpc.Cal
return out, nil return out, nil
} }
func (c *shimClient) Kill(ctx context.Context, in *KillRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
out := new(google_protobuf1.Empty)
err := grpc.Invoke(ctx, "/containerd.v1.services.shim.Shim/Kill", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// Server API for Shim service // Server API for Shim service
type ShimServer interface { type ShimServer interface {
@ -366,6 +387,7 @@ type ShimServer interface {
Pause(context.Context, *PauseRequest) (*google_protobuf1.Empty, error) Pause(context.Context, *PauseRequest) (*google_protobuf1.Empty, error)
Resume(context.Context, *ResumeRequest) (*google_protobuf1.Empty, error) Resume(context.Context, *ResumeRequest) (*google_protobuf1.Empty, error)
Exit(context.Context, *ExitRequest) (*google_protobuf1.Empty, error) Exit(context.Context, *ExitRequest) (*google_protobuf1.Empty, error)
Kill(context.Context, *KillRequest) (*google_protobuf1.Empty, error)
} }
func RegisterShimServer(s *grpc.Server, srv ShimServer) { func RegisterShimServer(s *grpc.Server, srv ShimServer) {
@ -555,6 +577,24 @@ func _Shim_Exit_Handler(srv interface{}, ctx context.Context, dec func(interface
return interceptor(ctx, in, info, handler) return interceptor(ctx, in, info, handler)
} }
func _Shim_Kill_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(KillRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ShimServer).Kill(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/containerd.v1.services.shim.Shim/Kill",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ShimServer).Kill(ctx, req.(*KillRequest))
}
return interceptor(ctx, in, info, handler)
}
var _Shim_serviceDesc = grpc.ServiceDesc{ var _Shim_serviceDesc = grpc.ServiceDesc{
ServiceName: "containerd.v1.services.shim.Shim", ServiceName: "containerd.v1.services.shim.Shim",
HandlerType: (*ShimServer)(nil), HandlerType: (*ShimServer)(nil),
@ -595,6 +635,10 @@ var _Shim_serviceDesc = grpc.ServiceDesc{
MethodName: "Exit", MethodName: "Exit",
Handler: _Shim_Exit_Handler, Handler: _Shim_Exit_Handler,
}, },
{
MethodName: "Kill",
Handler: _Shim_Kill_Handler,
},
}, },
Streams: []grpc.StreamDesc{ Streams: []grpc.StreamDesc{
{ {
@ -1067,6 +1111,39 @@ func (m *ExitRequest) MarshalTo(dAtA []byte) (int, error) {
return i, nil return i, nil
} }
func (m *KillRequest) 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 *KillRequest) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
_ = l
if m.Signal != 0 {
dAtA[i] = 0x8
i++
i = encodeVarintShim(dAtA, i, uint64(m.Signal))
}
if m.All {
dAtA[i] = 0x10
i++
if m.All {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i++
}
return i, nil
}
func encodeFixed64Shim(dAtA []byte, offset int, v uint64) int { func encodeFixed64Shim(dAtA []byte, offset int, v uint64) int {
dAtA[offset] = uint8(v) dAtA[offset] = uint8(v)
dAtA[offset+1] = uint8(v >> 8) dAtA[offset+1] = uint8(v >> 8)
@ -1290,6 +1367,18 @@ func (m *ExitRequest) Size() (n int) {
return n return n
} }
func (m *KillRequest) Size() (n int) {
var l int
_ = l
if m.Signal != 0 {
n += 1 + sovShim(uint64(m.Signal))
}
if m.All {
n += 2
}
return n
}
func sovShim(x uint64) (n int) { func sovShim(x uint64) (n int) {
for { for {
n++ n++
@ -1467,6 +1556,17 @@ func (this *ExitRequest) String() string {
}, "") }, "")
return s return s
} }
func (this *KillRequest) String() string {
if this == nil {
return "nil"
}
s := strings.Join([]string{`&KillRequest{`,
`Signal:` + fmt.Sprintf("%v", this.Signal) + `,`,
`All:` + fmt.Sprintf("%v", this.All) + `,`,
`}`,
}, "")
return s
}
func valueToStringShim(v interface{}) string { func valueToStringShim(v interface{}) string {
rv := reflect.ValueOf(v) rv := reflect.ValueOf(v)
if rv.IsNil() { if rv.IsNil() {
@ -2937,6 +3037,95 @@ func (m *ExitRequest) Unmarshal(dAtA []byte) error {
} }
return nil return nil
} }
func (m *KillRequest) 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: KillRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: KillRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Signal", wireType)
}
m.Signal = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowShim
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Signal |= (uint32(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
case 2:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field All", 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.All = bool(v != 0)
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) { func skipShim(dAtA []byte) (n int, err error) {
l := len(dAtA) l := len(dAtA)
iNdEx := 0 iNdEx := 0
@ -3047,55 +3236,58 @@ func init() {
} }
var fileDescriptorShim = []byte{ var fileDescriptorShim = []byte{
// 800 bytes of a gzipped FileDescriptorProto // 837 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x4f, 0x8f, 0xdb, 0x44, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x94, 0x54, 0xcd, 0x6e, 0xdb, 0x46,
0x14, 0xaf, 0x13, 0xaf, 0x37, 0xfb, 0x52, 0xa7, 0x68, 0xb4, 0x5a, 0xb9, 0x5e, 0x94, 0x06, 0x5f, 0x10, 0x0e, 0x25, 0x9a, 0x96, 0x47, 0xa1, 0x53, 0x2c, 0x0c, 0x83, 0xa1, 0x0b, 0xc5, 0xe5, 0xa5,
0x48, 0x8b, 0xe4, 0xd0, 0xf4, 0x86, 0xe0, 0x40, 0xc9, 0x22, 0x40, 0x45, 0x8a, 0x66, 0x8f, 0x48, 0x4a, 0x0a, 0x50, 0x8d, 0x72, 0x28, 0x50, 0xb4, 0x87, 0xa6, 0x76, 0xd1, 0x9f, 0x14, 0x10, 0xd6,
0x54, 0x4e, 0x3c, 0x9b, 0x8c, 0x14, 0x7b, 0x8c, 0x67, 0x1c, 0x9a, 0x1b, 0x67, 0xbe, 0x01, 0x5f, 0xc7, 0x02, 0x0d, 0x68, 0x71, 0x2d, 0x2d, 0x40, 0x72, 0x59, 0xee, 0x52, 0x8d, 0x6e, 0x3d, 0xf7,
0x87, 0x53, 0x8f, 0x5c, 0x90, 0x38, 0x21, 0x9a, 0x4f, 0x82, 0xe6, 0x8f, 0xe3, 0xa4, 0x4d, 0xe2, 0x0d, 0x7a, 0xea, 0xbb, 0xf4, 0x94, 0x63, 0x8f, 0x3d, 0x15, 0x8d, 0x9e, 0xa4, 0xd8, 0x1f, 0x8a,
0xec, 0xc5, 0x7a, 0xef, 0xcd, 0xef, 0x8d, 0xdf, 0xfb, 0xbd, 0xdf, 0x1b, 0xf8, 0x6a, 0x46, 0xc5, 0x52, 0x22, 0x8a, 0xca, 0x85, 0x98, 0x99, 0xfd, 0x76, 0x38, 0xf3, 0xcd, 0x7c, 0x0b, 0x5f, 0xce,
0xbc, 0x98, 0x84, 0x53, 0x96, 0x0c, 0xa6, 0x2c, 0x15, 0x11, 0x4d, 0x49, 0x1e, 0x6f, 0x9b, 0x51, 0xa8, 0x98, 0x97, 0xb7, 0xe1, 0x94, 0xa5, 0xa3, 0x29, 0xcb, 0x44, 0x44, 0x33, 0x52, 0xc4, 0x9b,
0x46, 0x07, 0x9c, 0xe4, 0x4b, 0x3a, 0x25, 0x7c, 0xc0, 0xe7, 0x34, 0x51, 0x9f, 0x30, 0xcb, 0x99, 0x66, 0x94, 0xd3, 0x11, 0x27, 0xc5, 0x82, 0x4e, 0x09, 0x1f, 0xf1, 0x39, 0x4d, 0xd5, 0x27, 0xcc,
0x60, 0xe8, 0xba, 0x02, 0x86, 0xcb, 0xe7, 0x61, 0x89, 0x0b, 0x25, 0xc4, 0x7f, 0x3c, 0x63, 0x6c, 0x0b, 0x26, 0x18, 0xba, 0xa8, 0x81, 0xe1, 0xe2, 0x69, 0x58, 0xe1, 0x42, 0x09, 0xf1, 0x1f, 0xce,
0xb6, 0x20, 0x03, 0x05, 0x9d, 0x14, 0x77, 0x83, 0x28, 0x5d, 0xe9, 0x3c, 0xff, 0xfa, 0xfd, 0x23, 0x18, 0x9b, 0x25, 0x64, 0xa4, 0xa0, 0xb7, 0xe5, 0xdd, 0x28, 0xca, 0x96, 0xfa, 0x9e, 0x7f, 0xf1,
0x92, 0x64, 0xa2, 0x3c, 0xbc, 0x9c, 0xb1, 0x19, 0x53, 0xe6, 0x40, 0x5a, 0x26, 0xfa, 0xe5, 0x49, 0xf6, 0x11, 0x49, 0x73, 0x51, 0x1d, 0x9e, 0xcd, 0xd8, 0x8c, 0x29, 0x73, 0x24, 0x2d, 0x13, 0xfd,
0x95, 0x8a, 0x55, 0x46, 0xf8, 0x20, 0x61, 0x45, 0x2a, 0xf4, 0xd7, 0x64, 0x8f, 0xee, 0x91, 0xbd, 0xe2, 0xa0, 0x4a, 0xc5, 0x32, 0x27, 0x7c, 0x94, 0xb2, 0x32, 0x13, 0xfa, 0x6b, 0x6e, 0x5f, 0xbd,
0x09, 0x56, 0x96, 0xbe, 0x25, 0xf8, 0xbd, 0x01, 0xee, 0x37, 0x39, 0x89, 0x04, 0xc1, 0xe4, 0x97, 0xc7, 0xed, 0x75, 0xb0, 0xb6, 0x74, 0x96, 0xe0, 0xf7, 0x0e, 0xb8, 0x5f, 0x17, 0x24, 0x12, 0x04,
0x82, 0x70, 0x81, 0xae, 0xa0, 0x41, 0x63, 0xcf, 0xea, 0x59, 0xfd, 0x8b, 0x97, 0xce, 0xfa, 0xdf, 0x93, 0x5f, 0x4a, 0xc2, 0x05, 0x3a, 0x87, 0x0e, 0x8d, 0x3d, 0xeb, 0xd2, 0x1a, 0x9e, 0x3c, 0x77,
0x27, 0x8d, 0xef, 0x47, 0xb8, 0x41, 0x63, 0x74, 0x05, 0xce, 0xa4, 0x48, 0xe3, 0x05, 0xf1, 0x1a, 0x56, 0xff, 0x3e, 0xea, 0x7c, 0x77, 0x85, 0x3b, 0x34, 0x46, 0xe7, 0xe0, 0xdc, 0x96, 0x59, 0x9c,
0xf2, 0x0c, 0x1b, 0x0f, 0x79, 0x70, 0x9e, 0x17, 0xa9, 0xa0, 0x09, 0xf1, 0x9a, 0xea, 0xa0, 0x74, 0x10, 0xaf, 0x23, 0xcf, 0xb0, 0xf1, 0x90, 0x07, 0xc7, 0x45, 0x99, 0x09, 0x9a, 0x12, 0xaf, 0xab,
0xd1, 0x63, 0x68, 0xa5, 0xec, 0x75, 0x46, 0x97, 0x4c, 0x78, 0x76, 0xcf, 0xea, 0xb7, 0xf0, 0x79, 0x0e, 0x2a, 0x17, 0x3d, 0x84, 0x5e, 0xc6, 0x5e, 0xe6, 0x74, 0xc1, 0x84, 0x67, 0x5f, 0x5a, 0xc3,
0xca, 0xc6, 0xd2, 0x45, 0x3e, 0xb4, 0x04, 0xc9, 0x13, 0x9a, 0x46, 0x0b, 0xef, 0x4c, 0x1d, 0x6d, 0x1e, 0x3e, 0xce, 0xd8, 0x44, 0xba, 0xc8, 0x87, 0x9e, 0x20, 0x45, 0x4a, 0xb3, 0x28, 0xf1, 0x8e,
0x7c, 0x74, 0x09, 0x67, 0x5c, 0xc4, 0x34, 0xf5, 0x1c, 0x75, 0x9d, 0x76, 0xe4, 0xef, 0xb9, 0x88, 0xd4, 0xd1, 0xda, 0x47, 0x67, 0x70, 0xc4, 0x45, 0x4c, 0x33, 0xcf, 0x51, 0xe9, 0xb4, 0x23, 0x7f,
0x59, 0x21, 0xbc, 0x73, 0xfd, 0x7b, 0xed, 0x99, 0x38, 0xc9, 0x73, 0xaf, 0xb5, 0x89, 0x93, 0x3c, 0xcf, 0x45, 0xcc, 0x4a, 0xe1, 0x1d, 0xeb, 0xdf, 0x6b, 0xcf, 0xc4, 0x49, 0x51, 0x78, 0xbd, 0x75,
0x47, 0x43, 0x70, 0x72, 0xc6, 0xc4, 0x1d, 0xf7, 0x2e, 0x7a, 0xcd, 0x7e, 0x7b, 0xe8, 0x87, 0xbb, 0x9c, 0x14, 0x05, 0x1a, 0x83, 0x53, 0x30, 0x26, 0xee, 0xb8, 0x77, 0x72, 0xd9, 0x1d, 0xf6, 0xc7,
0x83, 0x55, 0xc4, 0x84, 0x3f, 0x4a, 0x42, 0xb1, 0x41, 0x06, 0x01, 0x74, 0x4a, 0x2e, 0x78, 0xc6, 0x7e, 0xb8, 0x3d, 0x58, 0x45, 0x4c, 0xf8, 0xa3, 0x24, 0x14, 0x1b, 0x64, 0x10, 0xc0, 0x69, 0xc5,
0x52, 0x4e, 0xd0, 0x47, 0xd0, 0xcc, 0x0c, 0x1b, 0x2e, 0x96, 0x66, 0xd0, 0x81, 0x87, 0xb7, 0x22, 0x05, 0xcf, 0x59, 0xc6, 0x09, 0xfa, 0x00, 0xba, 0xb9, 0x61, 0xc3, 0xc5, 0xd2, 0x0c, 0x4e, 0xe1,
0xca, 0x85, 0xa1, 0x2b, 0xf8, 0x04, 0xdc, 0x11, 0x59, 0x90, 0x8a, 0xbf, 0x0f, 0x53, 0x9e, 0x43, 0xfe, 0x8d, 0x88, 0x0a, 0x61, 0xe8, 0x0a, 0x3e, 0x02, 0xf7, 0x8a, 0x24, 0xa4, 0xe6, 0xef, 0xdd,
0xa7, 0x84, 0x98, 0x6b, 0x9f, 0x40, 0x9b, 0xbc, 0xa1, 0xe2, 0x35, 0x17, 0x91, 0x28, 0xb8, 0xc1, 0x2b, 0x4f, 0xe1, 0xb4, 0x82, 0x98, 0xb4, 0x8f, 0xa0, 0x4f, 0x5e, 0x51, 0xf1, 0x92, 0x8b, 0x48,
0x82, 0x0c, 0xdd, 0xaa, 0x48, 0xf0, 0x87, 0x05, 0xed, 0x9b, 0x37, 0x64, 0x5a, 0x5e, 0xba, 0xcd, 0x94, 0xdc, 0x60, 0x41, 0x86, 0x6e, 0x54, 0x24, 0xf8, 0xc3, 0x82, 0xfe, 0xf5, 0x2b, 0x32, 0xad,
0x97, 0x75, 0x88, 0xaf, 0xc6, 0x7e, 0xbe, 0x9a, 0x07, 0xf8, 0xb2, 0x77, 0xf8, 0xea, 0x83, 0xcd, 0x92, 0x6e, 0xf2, 0x65, 0x35, 0xf1, 0xd5, 0xd9, 0xcd, 0x57, 0xb7, 0x81, 0x2f, 0x7b, 0x8b, 0xaf,
0x33, 0x32, 0x55, 0xd3, 0x68, 0x0f, 0x2f, 0x43, 0x2d, 0xe7, 0xb0, 0x94, 0x73, 0xf8, 0x75, 0xba, 0x21, 0xd8, 0x3c, 0x27, 0x53, 0x35, 0x8d, 0xfe, 0xf8, 0x2c, 0xd4, 0xeb, 0x1c, 0x56, 0xeb, 0x1c,
0xc2, 0x0a, 0x11, 0x8c, 0xc0, 0xc1, 0x0b, 0x9a, 0x50, 0x81, 0x10, 0xd8, 0x92, 0x46, 0x2d, 0x16, 0x7e, 0x95, 0x2d, 0xb1, 0x42, 0x04, 0x57, 0xe0, 0xe0, 0x84, 0xa6, 0x54, 0x20, 0x04, 0xb6, 0xa4,
0xac, 0x6c, 0x19, 0x9b, 0x47, 0x79, 0xac, 0x8a, 0xb1, 0xb1, 0xb2, 0x65, 0x8c, 0xb3, 0x3b, 0x5d, 0x51, 0x2f, 0x0b, 0x56, 0xb6, 0x8c, 0xcd, 0xa3, 0x22, 0x56, 0xc5, 0xd8, 0x58, 0xd9, 0x32, 0xc6,
0x89, 0x8d, 0x95, 0x1d, 0xf4, 0xe0, 0xa1, 0x6e, 0xf0, 0x20, 0xd3, 0xaf, 0x00, 0xc6, 0x62, 0x75, 0xd9, 0x9d, 0xae, 0xc4, 0xc6, 0xca, 0x0e, 0x2e, 0xe1, 0xbe, 0x6e, 0xb0, 0x91, 0xe9, 0x17, 0x00,
0x90, 0x56, 0xd9, 0xf7, 0xaf, 0x34, 0x16, 0x73, 0xf5, 0x2b, 0x17, 0x6b, 0x47, 0xf6, 0x37, 0x27, 0x13, 0xb1, 0x6c, 0xa4, 0x55, 0xf6, 0xfd, 0x2b, 0x8d, 0xc5, 0x5c, 0xfd, 0xca, 0xc5, 0xda, 0x91,
0x74, 0x36, 0xd7, 0x7f, 0x73, 0xb1, 0xf1, 0x82, 0x47, 0xe0, 0xde, 0x2c, 0x49, 0x2a, 0x78, 0x39, 0xfd, 0xcd, 0x09, 0x9d, 0xcd, 0xf5, 0xdf, 0x5c, 0x6c, 0xbc, 0xe0, 0x01, 0xb8, 0xd7, 0x0b, 0x92,
0x38, 0x3d, 0xc8, 0xcd, 0xdc, 0x82, 0x3f, 0x2d, 0x70, 0x4d, 0xc0, 0x94, 0x74, 0xdf, 0x4d, 0x30, 0x09, 0x5e, 0x0d, 0x4e, 0x0f, 0x72, 0x3d, 0xb7, 0xe0, 0x2f, 0x0b, 0x5c, 0x13, 0x30, 0x25, 0xbd,
0x25, 0x36, 0xab, 0x12, 0x5f, 0x48, 0xb2, 0xd5, 0x88, 0x25, 0xd9, 0x9d, 0xe1, 0xf5, 0x5e, 0x11, 0xaf, 0x12, 0x4c, 0x89, 0xdd, 0xba, 0xc4, 0x67, 0x92, 0x6c, 0x35, 0x62, 0x49, 0xf6, 0xe9, 0xf8,
0xea, 0x99, 0x63, 0x03, 0x45, 0x5f, 0xc0, 0x45, 0x96, 0xb3, 0x29, 0xe1, 0x9c, 0x70, 0xef, 0x4c, 0x62, 0xe7, 0x12, 0xea, 0x99, 0x63, 0x03, 0x45, 0x9f, 0xc3, 0x49, 0x5e, 0xb0, 0x29, 0xe1, 0x9c,
0x89, 0xf7, 0xe3, 0xbd, 0x79, 0x63, 0x8d, 0xc2, 0x15, 0x5c, 0x36, 0x35, 0x8e, 0x0a, 0xbe, 0x69, 0x70, 0xef, 0x48, 0x2d, 0xef, 0x87, 0x3b, 0xef, 0x4d, 0x34, 0x0a, 0xd7, 0x70, 0xd9, 0xd4, 0x24,
0xea, 0x11, 0xb8, 0x98, 0xf0, 0x22, 0xd9, 0x04, 0x5c, 0xa9, 0x2b, 0x5a, 0xaa, 0x77, 0xf8, 0xb7, 0x2a, 0xf9, 0xba, 0xa9, 0x07, 0xe0, 0x62, 0xc2, 0xcb, 0x74, 0x1d, 0x70, 0xe5, 0x5e, 0xd1, 0xf5,
0x03, 0xf6, 0xed, 0x9c, 0x26, 0x28, 0x02, 0x47, 0x4b, 0x1f, 0x3d, 0x0b, 0x8f, 0xbc, 0x80, 0xe1, 0xf6, 0x7e, 0x06, 0xfd, 0x1f, 0x68, 0x92, 0xd4, 0xda, 0x77, 0x38, 0x9d, 0x55, 0x4b, 0xe6, 0x62,
0xce, 0x5b, 0xe1, 0x7f, 0x76, 0x12, 0xd6, 0xd0, 0xf9, 0x03, 0x9c, 0xa9, 0xcd, 0x41, 0x4f, 0x8f, 0xe3, 0xc9, 0xce, 0xa2, 0x24, 0x51, 0xed, 0xf6, 0xb0, 0x34, 0xc7, 0x7f, 0x1e, 0x83, 0x7d, 0x33,
0x66, 0x6d, 0x6f, 0x97, 0x7f, 0xf5, 0x81, 0x0e, 0x6f, 0xe4, 0xb3, 0x2a, 0xcb, 0xd5, 0x2b, 0x55, 0xa7, 0x29, 0x8a, 0xc0, 0xd1, 0x9a, 0x41, 0x4f, 0xc2, 0x3d, 0x4f, 0x67, 0xb8, 0xf5, 0xc8, 0xf8,
0x53, 0xee, 0xce, 0x6a, 0xd6, 0x94, 0xfb, 0xde, 0x8e, 0xfe, 0x04, 0xb6, 0x14, 0x28, 0xea, 0x1f, 0x9f, 0x1c, 0x84, 0x35, 0x73, 0xf8, 0x1e, 0x8e, 0x94, 0xe4, 0xd0, 0xe3, 0xbd, 0xb7, 0x36, 0x65,
0x4d, 0xda, 0x5a, 0x52, 0xff, 0xe9, 0x09, 0x48, 0x73, 0xf9, 0xb7, 0xd0, 0x1c, 0x8b, 0x15, 0xfa, 0xe9, 0x9f, 0xbf, 0xb3, 0xc0, 0xd7, 0xf2, 0x3d, 0x96, 0xe5, 0x6a, 0x2d, 0xb6, 0x94, 0xbb, 0xa5,
0xf4, 0x68, 0x46, 0xa5, 0xfe, 0x83, 0x3c, 0x60, 0x70, 0xb4, 0xaa, 0x6b, 0x78, 0xd8, 0x91, 0xbe, 0xe9, 0x96, 0x72, 0xdf, 0x12, 0xf7, 0x4f, 0x60, 0xcb, 0xcd, 0x46, 0xc3, 0xbd, 0x97, 0x36, 0xd4,
0xbf, 0xff, 0x2d, 0x54, 0x98, 0xcf, 0x2d, 0xf4, 0xb3, 0x9a, 0x93, 0x20, 0xf5, 0x73, 0xaa, 0x98, 0xed, 0x3f, 0x3e, 0x00, 0x69, 0x92, 0x7f, 0x03, 0xdd, 0x89, 0x58, 0xa2, 0x8f, 0xf7, 0xde, 0xa8,
0x7d, 0x76, 0x0a, 0xb4, 0xd2, 0x81, 0xd2, 0x68, 0xcd, 0xfd, 0xdb, 0x3a, 0x3e, 0xd8, 0xff, 0x2b, 0x65, 0xd3, 0xc8, 0x03, 0x06, 0x47, 0xcb, 0xa1, 0x85, 0x87, 0x2d, 0xcd, 0xf8, 0xbb, 0x1f, 0x51,
0x70, 0xb4, 0xbe, 0x6b, 0xfa, 0xdf, 0x59, 0x82, 0x83, 0xb7, 0x7d, 0x27, 0x47, 0x4e, 0x45, 0xed, 0x85, 0xf9, 0xd4, 0x42, 0x3f, 0xab, 0x39, 0x09, 0xd2, 0x3e, 0xa7, 0x9a, 0xd9, 0x27, 0x87, 0x40,
0xc8, 0x69, 0x9d, 0x3e, 0x5f, 0x7a, 0x6f, 0xdf, 0x75, 0x1f, 0xfc, 0xf3, 0xae, 0xfb, 0xe0, 0xb7, 0xeb, 0x3d, 0x50, 0xcb, 0xdd, 0x92, 0x7f, 0x53, 0x00, 0x8d, 0xfd, 0xbf, 0x00, 0x47, 0x0b, 0xa3,
0x75, 0xd7, 0x7a, 0xbb, 0xee, 0x5a, 0x7f, 0xad, 0xbb, 0xd6, 0x7f, 0xeb, 0xae, 0x35, 0x71, 0x14, 0xa5, 0xff, 0x2d, 0xf5, 0x34, 0x66, 0xfb, 0x56, 0x8e, 0x9c, 0x8a, 0xd6, 0x91, 0x53, 0x71, 0x40,
0xf2, 0xc5, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x0a, 0x76, 0x56, 0x67, 0xa7, 0x08, 0x00, 0x00, 0x26, 0x29, 0xc8, 0x96, 0x4c, 0x1b, 0x9a, 0x6d, 0xca, 0xf4, 0xdc, 0x7b, 0xfd, 0x66, 0x70, 0xef,
0x9f, 0x37, 0x83, 0x7b, 0xbf, 0xad, 0x06, 0xd6, 0xeb, 0xd5, 0xc0, 0xfa, 0x7b, 0x35, 0xb0, 0xfe,
0x5b, 0x0d, 0xac, 0x5b, 0x47, 0x21, 0x9f, 0xfd, 0x1f, 0x00, 0x00, 0xff, 0xff, 0xe1, 0x25, 0x57,
0xa4, 0x2a, 0x09, 0x00, 0x00,
} }

View file

@ -19,6 +19,7 @@ service Shim {
rpc Pause(PauseRequest) returns (google.protobuf.Empty); rpc Pause(PauseRequest) returns (google.protobuf.Empty);
rpc Resume(ResumeRequest) returns (google.protobuf.Empty); rpc Resume(ResumeRequest) returns (google.protobuf.Empty);
rpc Exit(ExitRequest) returns (google.protobuf.Empty); rpc Exit(ExitRequest) returns (google.protobuf.Empty);
rpc Kill(KillRequest) returns (google.protobuf.Empty);
} }
message CreateRequest { message CreateRequest {
@ -95,3 +96,8 @@ message ResumeRequest {
message ExitRequest { message ExitRequest {
} }
message KillRequest {
uint32 signal = 1;
bool all = 2;
}

View file

@ -1316,7 +1316,7 @@ func init() {
var fileDescriptorContainer = []byte{ var fileDescriptorContainer = []byte{
// 516 bytes of a gzipped FileDescriptorProto // 516 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0x41, 0x8b, 0xd3, 0x5c, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x8c, 0x53, 0x41, 0x8b, 0xd3, 0x5c,
0x14, 0xed, 0x4b, 0xd2, 0xb4, 0xbd, 0x65, 0xfa, 0x3d, 0xde, 0x27, 0x12, 0x47, 0xc8, 0x84, 0x22, 0x14, 0xed, 0x4b, 0xd2, 0xb4, 0xbd, 0x65, 0xfa, 0x3d, 0xde, 0x27, 0x12, 0x47, 0xc8, 0x84, 0x22,
0x18, 0x04, 0x53, 0xec, 0x6c, 0xdc, 0x76, 0x9a, 0x30, 0x16, 0x31, 0xad, 0xaf, 0x29, 0xce, 0xae, 0x18, 0x04, 0x53, 0xec, 0x6c, 0xdc, 0x76, 0x9a, 0x30, 0x16, 0x31, 0xad, 0xaf, 0x29, 0xce, 0xae,
0x64, 0x9a, 0x10, 0x9f, 0xcc, 0x24, 0x25, 0x79, 0xad, 0xce, 0xce, 0x9f, 0x37, 0x4b, 0x97, 0xae, 0x64, 0x9a, 0x10, 0x9f, 0xcc, 0x24, 0x25, 0x79, 0xad, 0xce, 0xce, 0x9f, 0x37, 0x4b, 0x97, 0xae,

View file

@ -404,7 +404,7 @@ func init() {
var fileDescriptorDescriptor = []byte{ var fileDescriptorDescriptor = []byte{
// 229 bytes of a gzipped FileDescriptorProto // 229 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x72, 0x4b, 0xcf, 0x2c, 0xc9, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x72, 0x4b, 0xcf, 0x2c, 0xc9,
0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xce, 0xcf, 0x2b, 0x49, 0xcc, 0xcc, 0x4b, 0x2d, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xce, 0xcf, 0x2b, 0x49, 0xcc, 0xcc, 0x4b, 0x2d,
0x4a, 0x41, 0x66, 0x26, 0x16, 0x64, 0xea, 0x97, 0x54, 0x16, 0xa4, 0x16, 0xeb, 0xa7, 0xa4, 0x16, 0x4a, 0x41, 0x66, 0x26, 0x16, 0x64, 0xea, 0x97, 0x54, 0x16, 0xa4, 0x16, 0xeb, 0xa7, 0xa4, 0x16,
0x27, 0x17, 0x65, 0x16, 0x94, 0xe4, 0x17, 0x21, 0x31, 0xf5, 0x0a, 0x8a, 0xf2, 0x4b, 0xf2, 0x85, 0x27, 0x17, 0x65, 0x16, 0x94, 0xe4, 0x17, 0x21, 0x31, 0xf5, 0x0a, 0x8a, 0xf2, 0x4b, 0xf2, 0x85,

View file

@ -473,7 +473,7 @@ func init() {
var fileDescriptorMount = []byte{ var fileDescriptorMount = []byte{
// 197 bytes of a gzipped FileDescriptorProto // 197 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x49, 0xcf, 0x2c, 0xc9, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xb2, 0x49, 0xcf, 0x2c, 0xc9,
0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xce, 0xcf, 0x2b, 0x49, 0xcc, 0xcc, 0x4b, 0x2d, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xce, 0xcf, 0x2b, 0x49, 0xcc, 0xcc, 0x4b, 0x2d,
0x4a, 0x41, 0x66, 0x26, 0x16, 0x64, 0xea, 0x97, 0x54, 0x16, 0xa4, 0x16, 0xeb, 0xe7, 0xe6, 0x97, 0x4a, 0x41, 0x66, 0x26, 0x16, 0x64, 0xea, 0x97, 0x54, 0x16, 0xa4, 0x16, 0xeb, 0xe7, 0xe6, 0x97,
0xe6, 0x95, 0x40, 0x48, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x61, 0x84, 0x3a, 0xbd, 0x32, 0xe6, 0x95, 0x40, 0x48, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x61, 0x84, 0x3a, 0xbd, 0x32,

View file

@ -61,6 +61,10 @@ func (c *client) Resume(ctx context.Context, in *shimapi.ResumeRequest, opts ...
return c.s.Resume(ctx, in) return c.s.Resume(ctx, in)
} }
func (c *client) Kill(ctx context.Context, in *shimapi.KillRequest, opts ...grpc.CallOption) (*google_protobuf.Empty, error) {
return c.s.Kill(ctx, in)
}
func (c *client) Exit(ctx context.Context, in *shimapi.ExitRequest, opts ...grpc.CallOption) (*google_protobuf.Empty, error) { func (c *client) Exit(ctx context.Context, in *shimapi.ExitRequest, opts ...grpc.CallOption) (*google_protobuf.Empty, error) {
// don't exit the calling process for the client // don't exit the calling process for the client
// but make sure we unmount the containers rootfs for this client // but make sure we unmount the containers rootfs for this client

View file

@ -158,6 +158,12 @@ func (p *initProcess) Resume(context context.Context) error {
return p.runc.Resume(context, p.id) return p.runc.Resume(context, p.id)
} }
func (p *initProcess) Kill(context context.Context, signal uint32, all bool) error {
return p.runc.Kill(context, p.id, int(signal), &runc.KillOpts{
All: all,
})
}
func (p *initProcess) killAll(context context.Context) error { func (p *initProcess) killAll(context context.Context) error {
return p.runc.Kill(context, p.id, int(syscall.SIGKILL), &runc.KillOpts{ return p.runc.Kill(context, p.id, int(syscall.SIGKILL), &runc.KillOpts{
All: true, All: true,

View file

@ -217,3 +217,10 @@ func (s *Service) Exit(ctx context.Context, r *shimapi.ExitRequest) (*google_pro
} }
return empty, nil return empty, nil
} }
func (s *Service) Kill(ctx context.Context, r *shimapi.KillRequest) (*google_protobuf.Empty, error) {
if err := s.initProcess.Kill(ctx, r.Signal, r.All); err != nil {
return nil, err
}
return empty, nil
}

View file

@ -447,7 +447,7 @@ func init() {
var fileDescriptorRecord = []byte{ var fileDescriptorRecord = []byte{
// 304 bytes of a gzipped FileDescriptorProto // 304 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x72, 0x49, 0xcf, 0x2c, 0xc9, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x72, 0x49, 0xcf, 0x2c, 0xc9,
0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xce, 0xcf, 0x2b, 0x49, 0xcc, 0xcc, 0x4b, 0x2d, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xce, 0xcf, 0x2b, 0x49, 0xcc, 0xcc, 0x4b, 0x2d,
0x4a, 0x41, 0x66, 0x16, 0xe7, 0x25, 0x16, 0x14, 0x67, 0xe4, 0x97, 0xe8, 0x17, 0x97, 0xe4, 0x17, 0x4a, 0x41, 0x66, 0x16, 0xe7, 0x25, 0x16, 0x14, 0x67, 0xe4, 0x97, 0xe8, 0x17, 0x97, 0xe4, 0x17,
0x25, 0xa6, 0xa7, 0xea, 0x17, 0x14, 0xe5, 0x97, 0xe4, 0xeb, 0x17, 0xa5, 0x26, 0xe7, 0x17, 0xa5, 0x25, 0xa6, 0xa7, 0xea, 0x17, 0x14, 0xe5, 0x97, 0xe4, 0xeb, 0x17, 0xa5, 0x26, 0xe7, 0x17, 0xa5,