Return DeleteResponse from ContainerService.Delete

The message was defined but the method was returning empty, plumb through the
result from the shim layer.

Compile tested only.

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
This commit is contained in:
Ian Campbell 2017-03-01 14:58:05 +00:00
parent 4793f968e5
commit 186a9a2acd
6 changed files with 54 additions and 52 deletions

View file

@ -201,8 +201,8 @@ type WriteRequest struct {
// file. This uses standard, zero-indexed semantics. // file. This uses standard, zero-indexed semantics.
// //
// If the action is write, the remote may remove all previously written // If the action is write, the remote may remove all previously written
// data up to the offset. Implementations may support arbitrary offsets but // data after the offset. Implementations may support arbitrary offsets but
// MUST support reseting this value to zero with with a write. If an // MUST support reseting this value to zero with a write. If an
// implementation does not support a write at a particular offset, an // implementation does not support a write at a particular offset, an
// OutOfRange error must be returned. // OutOfRange error must be returned.
Offset int64 `protobuf:"varint,5,opt,name=offset,proto3" json:"offset,omitempty"` Offset int64 `protobuf:"varint,5,opt,name=offset,proto3" json:"offset,omitempty"`

View file

@ -155,7 +155,7 @@ const _ = grpc.SupportPackageIsVersion4
type ContainerServiceClient interface { type ContainerServiceClient interface {
Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error) Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error)
Start(ctx context.Context, in *StartRequest, opts ...grpc.CallOption) (*google_protobuf.Empty, error) Start(ctx context.Context, in *StartRequest, opts ...grpc.CallOption) (*google_protobuf.Empty, error)
Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*google_protobuf.Empty, error) Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error)
Info(ctx context.Context, in *InfoRequest, opts ...grpc.CallOption) (*containerd_v1_types1.Container, error) Info(ctx context.Context, in *InfoRequest, opts ...grpc.CallOption) (*containerd_v1_types1.Container, error)
List(ctx context.Context, in *ListRequest, opts ...grpc.CallOption) (*ListResponse, error) List(ctx context.Context, in *ListRequest, opts ...grpc.CallOption) (*ListResponse, error)
Events(ctx context.Context, in *EventsRequest, opts ...grpc.CallOption) (ContainerService_EventsClient, error) Events(ctx context.Context, in *EventsRequest, opts ...grpc.CallOption) (ContainerService_EventsClient, error)
@ -187,8 +187,8 @@ func (c *containerServiceClient) Start(ctx context.Context, in *StartRequest, op
return out, nil return out, nil
} }
func (c *containerServiceClient) Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*google_protobuf.Empty, error) { func (c *containerServiceClient) Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error) {
out := new(google_protobuf.Empty) out := new(DeleteResponse)
err := grpc.Invoke(ctx, "/containerd.v1.services.ContainerService/Delete", in, out, c.cc, opts...) err := grpc.Invoke(ctx, "/containerd.v1.services.ContainerService/Delete", in, out, c.cc, opts...)
if err != nil { if err != nil {
return nil, err return nil, err
@ -251,7 +251,7 @@ func (x *containerServiceEventsClient) Recv() (*containerd_v1_types1.Event, erro
type ContainerServiceServer interface { type ContainerServiceServer interface {
Create(context.Context, *CreateRequest) (*CreateResponse, error) Create(context.Context, *CreateRequest) (*CreateResponse, error)
Start(context.Context, *StartRequest) (*google_protobuf.Empty, error) Start(context.Context, *StartRequest) (*google_protobuf.Empty, error)
Delete(context.Context, *DeleteRequest) (*google_protobuf.Empty, error) Delete(context.Context, *DeleteRequest) (*DeleteResponse, error)
Info(context.Context, *InfoRequest) (*containerd_v1_types1.Container, error) Info(context.Context, *InfoRequest) (*containerd_v1_types1.Container, error)
List(context.Context, *ListRequest) (*ListResponse, error) List(context.Context, *ListRequest) (*ListResponse, error)
Events(*EventsRequest, ContainerService_EventsServer) error Events(*EventsRequest, ContainerService_EventsServer) error
@ -1950,42 +1950,42 @@ func init() {
} }
var fileDescriptorExecution = []byte{ var fileDescriptorExecution = []byte{
// 589 bytes of a gzipped FileDescriptorProto // 590 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0x4d, 0x6f, 0xd3, 0x40, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0x4d, 0x6f, 0xd3, 0x40,
0x10, 0xad, 0x93, 0xd4, 0x2d, 0x93, 0xa6, 0x54, 0xab, 0x2a, 0x32, 0x46, 0x72, 0x23, 0xd3, 0x96, 0x10, 0xad, 0x93, 0xd4, 0x2d, 0x93, 0xa6, 0x54, 0xab, 0x2a, 0x32, 0x46, 0x72, 0x23, 0xd3, 0x96,
0x9c, 0x6c, 0x08, 0x17, 0xc4, 0x01, 0x41, 0xd3, 0x08, 0x45, 0x50, 0x24, 0x9c, 0x03, 0x47, 0xe4, 0x9c, 0x6c, 0x08, 0x17, 0xc4, 0x01, 0x41, 0xd3, 0x1c, 0x22, 0x28, 0x12, 0xce, 0x81, 0x23, 0x72,
0xd8, 0x9b, 0xb0, 0x22, 0xd9, 0x35, 0xbb, 0xeb, 0xa8, 0xb9, 0xc1, 0xbf, 0xeb, 0x91, 0x23, 0x27, 0xec, 0x4d, 0x58, 0x91, 0xec, 0x9a, 0xdd, 0x75, 0xd4, 0xdc, 0xe0, 0xdf, 0xf5, 0xc8, 0x91, 0x13,
0x44, 0x73, 0xe4, 0x57, 0x20, 0xaf, 0xed, 0x7c, 0x40, 0x8c, 0xb9, 0x58, 0x33, 0xcf, 0x6f, 0x76, 0xa2, 0xf9, 0x19, 0x9c, 0x90, 0xd7, 0x76, 0x3e, 0x4a, 0x8c, 0xb9, 0x58, 0x33, 0xcf, 0x6f, 0xbc,
0x67, 0xde, 0xdb, 0x81, 0xee, 0x98, 0xc8, 0x8f, 0xf1, 0xd0, 0x09, 0xd8, 0xd4, 0x0d, 0x59, 0xf0, 0x6f, 0xde, 0xf3, 0x42, 0x77, 0x4c, 0xe4, 0xa7, 0x78, 0xe8, 0x04, 0x6c, 0xea, 0x86, 0x2c, 0xf8,
0x09, 0x73, 0x37, 0x60, 0x54, 0xfa, 0x84, 0x62, 0x1e, 0xba, 0x7e, 0x44, 0x5c, 0x81, 0xf9, 0x8c, 0x8c, 0xb9, 0x1b, 0x30, 0x2a, 0x7d, 0x42, 0x31, 0x0f, 0x5d, 0x3f, 0x22, 0xae, 0xc0, 0x7c, 0x46,
0x04, 0x58, 0xb8, 0xf8, 0x1a, 0x07, 0xb1, 0x24, 0x8c, 0xae, 0x22, 0x27, 0xe2, 0x4c, 0x32, 0xd4, 0x02, 0x2c, 0x5c, 0x7c, 0x8d, 0x83, 0x58, 0x12, 0x46, 0x57, 0x95, 0x13, 0x71, 0x26, 0x19, 0x6a,
0x5c, 0x95, 0x38, 0xb3, 0xc7, 0x4e, 0x5e, 0x61, 0xde, 0x1f, 0x33, 0x36, 0x9e, 0x60, 0x57, 0xb1, 0xae, 0x46, 0x9c, 0xd9, 0x53, 0x27, 0x9f, 0x30, 0x1f, 0x8e, 0x19, 0x1b, 0x4f, 0xb0, 0xab, 0x58,
0x86, 0xf1, 0xc8, 0xc5, 0xd3, 0x48, 0xce, 0xd3, 0x22, 0xf3, 0xde, 0x9f, 0x3f, 0x7d, 0x9a, 0xff, 0xc3, 0x78, 0xe4, 0xe2, 0x69, 0x24, 0xe7, 0xe9, 0x90, 0xf9, 0xe0, 0xee, 0x4b, 0x9f, 0xe6, 0xaf,
0x3a, 0x1e, 0xb3, 0x31, 0x53, 0xa1, 0x9b, 0x44, 0x19, 0xfa, 0xb4, 0xb4, 0x55, 0x39, 0x8f, 0xb0, 0x8e, 0xc7, 0x6c, 0xcc, 0x54, 0xe9, 0x26, 0x55, 0x86, 0x3e, 0x2f, 0x95, 0x2a, 0xe7, 0x11, 0x16,
0x70, 0xa7, 0x2c, 0xa6, 0x32, 0xfd, 0x66, 0x95, 0x2f, 0xfe, 0xb3, 0x72, 0x09, 0xae, 0xa2, 0xf4, 0xee, 0x94, 0xc5, 0x54, 0xa6, 0xcf, 0x6c, 0xf2, 0xd5, 0x7f, 0x4e, 0x2e, 0xc1, 0x55, 0x95, 0x7e,
0x04, 0xfb, 0x6b, 0x05, 0x1a, 0x5d, 0x8e, 0x7d, 0x89, 0x3d, 0xfc, 0x39, 0xc6, 0x42, 0xa2, 0x26, 0xc1, 0xfe, 0x56, 0x81, 0x46, 0x97, 0x63, 0x5f, 0x62, 0x0f, 0x7f, 0x89, 0xb1, 0x90, 0xa8, 0x09,
0x54, 0x48, 0x68, 0x68, 0x2d, 0xad, 0x7d, 0xe7, 0x42, 0x5f, 0xfc, 0x38, 0xa9, 0xf4, 0x2f, 0xbd, 0x15, 0x12, 0x1a, 0x5a, 0x4b, 0x6b, 0xdf, 0xbb, 0xd0, 0x17, 0x3f, 0x4f, 0x2a, 0xfd, 0x4b, 0xaf,
0x0a, 0x09, 0x51, 0x1b, 0x6a, 0x22, 0xc2, 0x81, 0x51, 0x69, 0x69, 0xed, 0x7a, 0xe7, 0xd8, 0x49, 0x42, 0x42, 0xd4, 0x86, 0x9a, 0x88, 0x70, 0x60, 0x54, 0x5a, 0x5a, 0xbb, 0xde, 0x39, 0x76, 0xd2,
0xa7, 0x74, 0xf2, 0x29, 0x9d, 0x97, 0x74, 0xee, 0x29, 0x06, 0xea, 0x80, 0xce, 0x19, 0x93, 0x23, 0x2d, 0x9d, 0x7c, 0x4b, 0xe7, 0x35, 0x9d, 0x7b, 0x8a, 0x81, 0x3a, 0xa0, 0x73, 0xc6, 0xe4, 0x48,
0x61, 0x54, 0x5b, 0xd5, 0x76, 0xbd, 0x63, 0x3a, 0x9b, 0x32, 0xaa, 0x9e, 0x9c, 0xab, 0x64, 0x0e, 0x18, 0xd5, 0x56, 0xb5, 0x5d, 0xef, 0x98, 0xce, 0xa6, 0x8d, 0x4a, 0x93, 0x73, 0x95, 0xec, 0xe1,
0x2f, 0x63, 0x22, 0x03, 0xf6, 0x78, 0x4c, 0x25, 0x99, 0x62, 0xa3, 0x96, 0x5c, 0xed, 0xe5, 0x29, 0x65, 0x4c, 0x64, 0xc0, 0x1e, 0x8f, 0xa9, 0x24, 0x53, 0x6c, 0xd4, 0x92, 0xa3, 0xbd, 0xbc, 0x45,
0x3a, 0x86, 0x5d, 0x21, 0x43, 0x42, 0x8d, 0x5d, 0x85, 0xa7, 0x09, 0x6a, 0x82, 0x2e, 0x64, 0xc8, 0xc7, 0xb0, 0x2b, 0x64, 0x48, 0xa8, 0xb1, 0xab, 0xf0, 0xb4, 0x41, 0x4d, 0xd0, 0x85, 0x0c, 0x59,
0x62, 0x69, 0xe8, 0x0a, 0xce, 0xb2, 0x0c, 0xc7, 0x9c, 0x1b, 0x7b, 0x4b, 0x1c, 0x73, 0x8e, 0x4c, 0x2c, 0x0d, 0x5d, 0xc1, 0x59, 0x97, 0xe1, 0x98, 0x73, 0x63, 0x6f, 0x89, 0x63, 0xce, 0x91, 0x09,
0xd8, 0x97, 0x98, 0x4f, 0x09, 0xf5, 0x27, 0xc6, 0x7e, 0x4b, 0x6b, 0xef, 0x7b, 0xcb, 0xdc, 0x7e, 0xfb, 0x12, 0xf3, 0x29, 0xa1, 0xfe, 0xc4, 0xd8, 0x6f, 0x69, 0xed, 0x7d, 0x6f, 0xd9, 0xdb, 0x2f,
0x06, 0x87, 0xb9, 0x04, 0x22, 0x62, 0x54, 0xe0, 0x42, 0x0d, 0x8e, 0xa0, 0x1a, 0x91, 0x50, 0x49, 0xe0, 0x30, 0xb7, 0x40, 0x44, 0x8c, 0x0a, 0x5c, 0xe8, 0xc1, 0x11, 0x54, 0x23, 0x12, 0x2a, 0x0b,
0xd0, 0xf0, 0x92, 0xd0, 0x3e, 0x87, 0x83, 0x81, 0xf4, 0xb9, 0x2c, 0x51, 0xcf, 0x7e, 0x08, 0x8d, 0x1a, 0x5e, 0x52, 0xda, 0xe7, 0x70, 0x30, 0x90, 0x3e, 0x97, 0x25, 0xee, 0xd9, 0x8f, 0xa1, 0x71,
0x4b, 0x3c, 0xc1, 0xa5, 0x32, 0xdb, 0x7d, 0x38, 0xcc, 0x89, 0x25, 0xcd, 0x9c, 0x40, 0x1d, 0x5f, 0x89, 0x27, 0xb8, 0xd4, 0x66, 0xbb, 0x0f, 0x87, 0x39, 0xb1, 0x44, 0xcc, 0x09, 0xd4, 0xf1, 0x35,
0x13, 0xf9, 0x41, 0x48, 0x5f, 0xc6, 0x22, 0x6b, 0x0a, 0x12, 0x68, 0xa0, 0x10, 0xfb, 0x0c, 0xea, 0x91, 0x1f, 0x85, 0xf4, 0x65, 0x2c, 0x32, 0x51, 0x90, 0x40, 0x03, 0x85, 0xd8, 0x67, 0x50, 0xef,
0x7d, 0x3a, 0x62, 0x65, 0x37, 0x36, 0xa0, 0xfe, 0x86, 0x88, 0x7c, 0x02, 0xfb, 0x2d, 0x1c, 0xa4, 0xd3, 0x11, 0x2b, 0x3b, 0xb1, 0x01, 0xf5, 0xb7, 0x44, 0xe4, 0x1b, 0xd8, 0xef, 0xe0, 0x20, 0x6d,
0x69, 0x76, 0xfd, 0x73, 0x80, 0xa5, 0x7d, 0xc2, 0xd0, 0x94, 0xa3, 0xd6, 0x56, 0x47, 0xbb, 0x39, 0xb3, 0xe3, 0x5f, 0x02, 0x2c, 0xe3, 0x13, 0x86, 0xa6, 0x12, 0xb5, 0xb6, 0x26, 0xda, 0xcd, 0x31,
0xe6, 0xad, 0x55, 0xd8, 0x77, 0xa1, 0xd1, 0x9b, 0x61, 0x2a, 0x45, 0x76, 0x41, 0xe7, 0x57, 0x15, 0x6f, 0x6d, 0xc2, 0xbe, 0x0f, 0x8d, 0xde, 0x0c, 0x53, 0x29, 0xb2, 0x03, 0x3a, 0xbf, 0xab, 0x70,
0x8e, 0x96, 0xd4, 0x41, 0xba, 0x52, 0xe8, 0x3d, 0xe8, 0xa9, 0x07, 0xe8, 0xcc, 0xd9, 0xbe, 0x74, 0xb4, 0xa4, 0x0e, 0xd2, 0x2b, 0x85, 0x3e, 0x80, 0x9e, 0x66, 0x80, 0xce, 0x9c, 0xed, 0x97, 0xce,
0xce, 0xc6, 0x33, 0x35, 0xcf, 0xcb, 0x68, 0x59, 0xfb, 0x3d, 0xd8, 0x55, 0x06, 0xa1, 0xd3, 0xa2, 0xd9, 0xf8, 0x4d, 0xcd, 0xf3, 0x32, 0x5a, 0x26, 0xbf, 0x07, 0xbb, 0x2a, 0x20, 0x74, 0x5a, 0x34,
0x82, 0x75, 0xff, 0xcc, 0xe6, 0x5f, 0xef, 0xba, 0x97, 0xac, 0x36, 0x7a, 0x05, 0x7a, 0x6a, 0x4b, 0xb0, 0x9e, 0x9f, 0xd9, 0xfc, 0xeb, 0xbf, 0xee, 0x25, 0x57, 0x3b, 0xd1, 0x97, 0xc6, 0x52, 0xac,
0x71, 0x7f, 0x1b, 0xfe, 0x16, 0x1e, 0xf4, 0x1a, 0x6a, 0x89, 0x29, 0xe8, 0x41, 0xd1, 0x31, 0x6b, 0x6f, 0x23, 0xdf, 0x62, 0x7d, 0x77, 0xd2, 0x7d, 0x03, 0xb5, 0x24, 0x24, 0xf4, 0xa8, 0x88, 0xbf,
0x96, 0x99, 0x25, 0x3a, 0xa3, 0x77, 0x50, 0x4b, 0xbc, 0x2a, 0x3e, 0x6c, 0xcd, 0x58, 0xf3, 0xf4, 0x16, 0xa1, 0x59, 0xe2, 0x3b, 0x7a, 0x0f, 0xb5, 0x24, 0xbb, 0xe2, 0x8f, 0xad, 0x05, 0x6d, 0x9e,
0xdf, 0xa4, 0x4c, 0xaf, 0x2b, 0xd0, 0x53, 0xbb, 0x8a, 0x07, 0xdd, 0xb0, 0xd3, 0xdc, 0xbe, 0xdd, 0xfe, 0x9b, 0x94, 0xe9, 0xbb, 0x02, 0x3d, 0x8d, 0xaf, 0x78, 0xf1, 0x8d, 0x78, 0xcd, 0xed, 0xb7,
0x8a, 0xf3, 0x48, 0xbb, 0x30, 0x6e, 0x6e, 0xad, 0x9d, 0xef, 0xb7, 0xd6, 0xce, 0x97, 0x85, 0xa5, 0x5d, 0x71, 0x9e, 0x68, 0x17, 0xc6, 0xcd, 0xad, 0xb5, 0xf3, 0xe3, 0xd6, 0xda, 0xf9, 0xba, 0xb0,
0xdd, 0x2c, 0x2c, 0xed, 0xdb, 0xc2, 0xd2, 0x7e, 0x2e, 0x2c, 0x6d, 0xa8, 0x2b, 0x61, 0x9e, 0xfc, 0xb4, 0x9b, 0x85, 0xa5, 0x7d, 0x5f, 0x58, 0xda, 0xaf, 0x85, 0xa5, 0x0d, 0x75, 0xe5, 0xf8, 0xb3,
0x0e, 0x00, 0x00, 0xff, 0xff, 0x81, 0xbf, 0xf2, 0x2b, 0xa9, 0x05, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x8b, 0xe4, 0x78, 0xce, 0xb9, 0x05, 0x00, 0x00,
} }

View file

@ -11,7 +11,7 @@ import "github.com/docker/containerd/api/types/container/container.proto";
service ContainerService { service ContainerService {
rpc Create(CreateRequest) returns (CreateResponse); rpc Create(CreateRequest) returns (CreateResponse);
rpc Start(StartRequest) returns (google.protobuf.Empty); rpc Start(StartRequest) returns (google.protobuf.Empty);
rpc Delete(DeleteRequest) returns (google.protobuf.Empty); rpc Delete(DeleteRequest) returns (DeleteResponse);
rpc Info(InfoRequest) returns (containerd.v1.types.Container); rpc Info(InfoRequest) returns (containerd.v1.types.Container);
rpc List(ListRequest) returns (ListResponse); rpc List(ListRequest) returns (ListResponse);
rpc Events(EventsRequest) returns (stream containerd.v1.types.Event); rpc Events(EventsRequest) returns (stream containerd.v1.types.Event);

View file

@ -92,16 +92,17 @@ func (r *Runtime) Create(ctx context.Context, id string, opts containerd.CreateO
}, nil }, nil
} }
func (r *Runtime) Delete(ctx context.Context, c containerd.Container) error { func (r *Runtime) Delete(ctx context.Context, c containerd.Container) (uint32, error) {
lc, ok := c.(*Container) lc, ok := c.(*Container)
if !ok { if !ok {
return fmt.Errorf("container cannot be cast as *linux.Container") return 0, fmt.Errorf("container cannot be cast as *linux.Container")
} }
if _, err := lc.shim.Delete(ctx, &shim.DeleteRequest{}); err != nil { rsp, err := lc.shim.Delete(ctx, &shim.DeleteRequest{})
return err if err != nil {
return 0, err
} }
lc.shim.Exit(ctx, &shim.ExitRequest{}) lc.shim.Exit(ctx, &shim.ExitRequest{})
return r.deleteBundle(lc.id) return rsp.ExitStatus, r.deleteBundle(lc.id)
} }
func (r *Runtime) Containers() ([]containerd.Container, error) { func (r *Runtime) Containers() ([]containerd.Container, error) {

View file

@ -26,7 +26,7 @@ type Runtime interface {
// Containers returns all the current containers for the runtime // Containers returns all the current containers for the runtime
Containers() ([]Container, error) Containers() ([]Container, error)
// Delete removes the container in the runtime // Delete removes the container in the runtime
Delete(context.Context, Container) error Delete(context.Context, Container) (uint32, error)
// Events returns events for the runtime and all containers created by the runtime // Events returns events for the runtime and all containers created by the runtime
Events(context.Context) <-chan *Event Events(context.Context) <-chan *Event
} }

View file

@ -116,7 +116,7 @@ func (s *Service) Start(ctx context.Context, r *api.StartRequest) (*google_proto
return empty, nil return empty, nil
} }
func (s *Service) Delete(ctx context.Context, r *api.DeleteRequest) (*google_protobuf.Empty, error) { func (s *Service) Delete(ctx context.Context, r *api.DeleteRequest) (*api.DeleteResponse, error) {
c, err := s.getContainer(r.ID) c, err := s.getContainer(r.ID)
if err != nil { if err != nil {
return nil, err return nil, err
@ -125,10 +125,11 @@ func (s *Service) Delete(ctx context.Context, r *api.DeleteRequest) (*google_pro
if err != nil { if err != nil {
return nil, err return nil, err
} }
if err := runtime.Delete(ctx, c); err != nil { status, err := runtime.Delete(ctx, c)
if err != nil {
return nil, err return nil, err
} }
return empty, nil return &api.DeleteResponse{ExitStatus: status}, nil
} }
func containerFromContainerd(ctx context.Context, c containerd.Container) (*container.Container, error) { func containerFromContainerd(ctx context.Context, c containerd.Container) (*container.Container, error) {