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.
//
// If the action is write, the remote may remove all previously written
// data up to the offset. Implementations may support arbitrary offsets but
// MUST support reseting this value to zero with with a write. If an
// data after the offset. Implementations may support arbitrary offsets but
// MUST support reseting this value to zero with a write. If an
// implementation does not support a write at a particular offset, an
// OutOfRange error must be returned.
Offset int64 `protobuf:"varint,5,opt,name=offset,proto3" json:"offset,omitempty"`

View file

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

View file

@ -26,7 +26,7 @@ type Runtime interface {
// Containers returns all the current containers for the runtime
Containers() ([]Container, error)
// 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(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
}
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)
if err != nil {
return nil, err
@ -125,10 +125,11 @@ func (s *Service) Delete(ctx context.Context, r *api.DeleteRequest) (*google_pro
if err != nil {
return nil, err
}
if err := runtime.Delete(ctx, c); err != nil {
status, err := runtime.Delete(ctx, c)
if err != nil {
return nil, err
}
return empty, nil
return &api.DeleteResponse{ExitStatus: status}, nil
}
func containerFromContainerd(ctx context.Context, c containerd.Container) (*container.Container, error) {