From 186a9a2acd5e2722dd9e3c76d2d6b5db16c0b102 Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Wed, 1 Mar 2017 14:58:05 +0000 Subject: [PATCH] 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 --- api/services/content/content.pb.go | 4 +- api/services/execution/execution.pb.go | 80 +++++++++++++------------- api/services/execution/execution.proto | 2 +- linux/runtime.go | 11 ++-- runtime.go | 2 +- services/execution/service.go | 7 ++- 6 files changed, 54 insertions(+), 52 deletions(-) diff --git a/api/services/content/content.pb.go b/api/services/content/content.pb.go index f095f04..0dd41e4 100644 --- a/api/services/content/content.pb.go +++ b/api/services/content/content.pb.go @@ -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"` diff --git a/api/services/execution/execution.pb.go b/api/services/execution/execution.pb.go index 559775b..5f24909 100644 --- a/api/services/execution/execution.pb.go +++ b/api/services/execution/execution.pb.go @@ -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, } diff --git a/api/services/execution/execution.proto b/api/services/execution/execution.proto index dd50e1c..cce7f01 100644 --- a/api/services/execution/execution.proto +++ b/api/services/execution/execution.proto @@ -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); diff --git a/linux/runtime.go b/linux/runtime.go index 8aca808..20c7ea0 100644 --- a/linux/runtime.go +++ b/linux/runtime.go @@ -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) { diff --git a/runtime.go b/runtime.go index 6683329..797e985 100644 --- a/runtime.go +++ b/runtime.go @@ -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 } diff --git a/services/execution/service.go b/services/execution/service.go index cd72c2d..225da2c 100644 --- a/services/execution/service.go +++ b/services/execution/service.go @@ -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) {