From c05be463485630ec0d2202a9ea87e94d63c7b1a5 Mon Sep 17 00:00:00 2001 From: Stephen J Day Date: Thu, 22 Jun 2017 19:12:25 -0700 Subject: [PATCH] events: move types into service package When using events, it was found to be fairly unwieldy with a number of extra packages. For the most part, when interacting with the events service, we want types of the same version of the service. This has been accomplished by moving all events types into the events package. In addition, several fixes to the way events are marshaled have been included. Specifically, we defer to the protobuf type registration system to assemble events and type urls, with a little bit sheen on top of add a containerd.io oriented namespace. This has resulted in much cleaner event consumption and has removed the reliance on error prone type urls, in favor of concrete types. Signed-off-by: Stephen J Day --- .../events/v1}/container.pb.go | 86 ++-- .../events/v1}/container.proto | 4 +- .../events/v1}/content.pb.go | 34 +- .../events/v1}/content.proto | 4 +- api/services/events/v1/events.pb.go | 292 ++++++++++-- api/services/events/v1/events.proto | 12 +- .../event => services/events/v1}/image.pb.go | 41 +- .../event => services/events/v1}/image.proto | 4 +- .../events/v1}/namespace.pb.go | 51 ++- api/services/events/v1/namespace.proto | 23 + .../events/v1}/runtime.pb.go | 86 ++-- .../events/v1}/runtime.proto | 4 +- .../events/v1}/snapshot.pb.go | 39 +- .../events/v1}/snapshot.proto | 4 +- .../event => services/events/v1}/task.pb.go | 43 +- .../event => services/events/v1}/task.proto | 4 +- api/types/event/event.pb.go | 429 ------------------ api/types/event/event.proto | 13 - api/types/event/namespace.proto | 17 - cmd/ctr/events.go | 118 ++--- events/convert.go | 126 +++-- events/emitter.go | 6 +- events/sink.go | 8 +- linux/runtime.go | 14 +- process.go | 18 +- services/containers/service.go | 10 +- services/content/service.go | 4 +- services/images/service.go | 6 +- services/namespaces/service.go | 8 +- services/snapshot/service.go | 8 +- services/tasks/service.go | 8 +- task.go | 18 +- 32 files changed, 642 insertions(+), 900 deletions(-) rename api/{types/event => services/events/v1}/container.pb.go (88%) rename api/{types/event => services/events/v1}/container.proto (77%) rename api/{types/event => services/events/v1}/content.pb.go (82%) rename api/{types/event => services/events/v1}/content.proto (61%) rename api/{types/event => services/events/v1}/image.pb.go (88%) rename api/{types/event => services/events/v1}/image.proto (52%) rename api/{types/event => services/events/v1}/namespace.pb.go (89%) create mode 100644 api/services/events/v1/namespace.proto rename api/{types/event => services/events/v1}/runtime.pb.go (89%) rename api/{types/event => services/events/v1}/runtime.proto (88%) rename api/{types/event => services/events/v1}/snapshot.pb.go (89%) rename api/{types/event => services/events/v1}/snapshot.proto (60%) rename api/{types/event => services/events/v1}/task.pb.go (88%) rename api/{types/event => services/events/v1}/task.proto (62%) delete mode 100644 api/types/event/event.pb.go delete mode 100644 api/types/event/event.proto delete mode 100644 api/types/event/namespace.proto diff --git a/api/types/event/container.pb.go b/api/services/events/v1/container.pb.go similarity index 88% rename from api/types/event/container.pb.go rename to api/services/events/v1/container.pb.go index 7fee97980..5dee38d13 100644 --- a/api/types/event/container.pb.go +++ b/api/services/events/v1/container.pb.go @@ -1,25 +1,26 @@ // Code generated by protoc-gen-gogo. -// source: github.com/containerd/containerd/api/types/event/container.proto +// source: github.com/containerd/containerd/api/services/events/v1/container.proto // DO NOT EDIT! /* - Package event is a generated protocol buffer package. + Package events is a generated protocol buffer package. It is generated from these files: - github.com/containerd/containerd/api/types/event/container.proto - github.com/containerd/containerd/api/types/event/content.proto - github.com/containerd/containerd/api/types/event/event.proto - github.com/containerd/containerd/api/types/event/image.proto - github.com/containerd/containerd/api/types/event/namespace.proto - github.com/containerd/containerd/api/types/event/runtime.proto - github.com/containerd/containerd/api/types/event/snapshot.proto - github.com/containerd/containerd/api/types/event/task.proto + github.com/containerd/containerd/api/services/events/v1/container.proto + github.com/containerd/containerd/api/services/events/v1/content.proto + github.com/containerd/containerd/api/services/events/v1/events.proto + github.com/containerd/containerd/api/services/events/v1/image.proto + github.com/containerd/containerd/api/services/events/v1/namespace.proto + github.com/containerd/containerd/api/services/events/v1/runtime.proto + github.com/containerd/containerd/api/services/events/v1/snapshot.proto + github.com/containerd/containerd/api/services/events/v1/task.proto It has these top-level messages: ContainerCreate ContainerUpdate ContainerDelete ContentDelete + StreamEventsRequest Envelope ImageUpdate ImageDelete @@ -38,7 +39,7 @@ TaskStart TaskDelete */ -package event +package events import proto "github.com/gogo/protobuf/proto" import fmt "fmt" @@ -103,10 +104,10 @@ func (*ContainerDelete) ProtoMessage() {} func (*ContainerDelete) Descriptor() ([]byte, []int) { return fileDescriptorContainer, []int{2} } func init() { - proto.RegisterType((*ContainerCreate)(nil), "containerd.v1.types.ContainerCreate") - proto.RegisterType((*ContainerCreate_Runtime)(nil), "containerd.v1.types.ContainerCreate.Runtime") - proto.RegisterType((*ContainerUpdate)(nil), "containerd.v1.types.ContainerUpdate") - proto.RegisterType((*ContainerDelete)(nil), "containerd.v1.types.ContainerDelete") + proto.RegisterType((*ContainerCreate)(nil), "containerd.services.events.v1.ContainerCreate") + proto.RegisterType((*ContainerCreate_Runtime)(nil), "containerd.services.events.v1.ContainerCreate.Runtime") + proto.RegisterType((*ContainerUpdate)(nil), "containerd.services.events.v1.ContainerUpdate") + proto.RegisterType((*ContainerDelete)(nil), "containerd.services.events.v1.ContainerDelete") } func (m *ContainerCreate) Marshal() (dAtA []byte, err error) { size := m.Size() @@ -1226,34 +1227,35 @@ var ( ) func init() { - proto.RegisterFile("github.com/containerd/containerd/api/types/event/container.proto", fileDescriptorContainer) + proto.RegisterFile("github.com/containerd/containerd/api/services/events/v1/container.proto", fileDescriptorContainer) } var fileDescriptorContainer = []byte{ - // 387 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x52, 0x4f, 0x6b, 0xe2, 0x40, - 0x1c, 0x75, 0x12, 0x37, 0xb2, 0x13, 0xc1, 0x65, 0xd6, 0x43, 0xc8, 0x21, 0x8a, 0x27, 0x0f, 0xcb, - 0x64, 0xd7, 0xbd, 0xac, 0x9e, 0x16, 0xff, 0x51, 0xa1, 0x50, 0x18, 0xe9, 0xb9, 0x44, 0x33, 0x4d, - 0x43, 0x93, 0x4c, 0x48, 0x46, 0xc1, 0x5b, 0x0f, 0xfd, 0x3c, 0xfd, 0x1c, 0x1e, 0x7b, 0xe8, 0xa1, - 0x27, 0xa9, 0xf9, 0x24, 0x25, 0x93, 0x18, 0x43, 0x29, 0x05, 0x4b, 0x6f, 0xbf, 0xc9, 0x7b, 0xef, - 0xf7, 0x7b, 0xef, 0x11, 0xf8, 0xdf, 0x71, 0xf9, 0xcd, 0x6a, 0x81, 0x97, 0xcc, 0x37, 0x97, 0x2c, - 0xe0, 0x96, 0x1b, 0xd0, 0xc8, 0x2e, 0x8f, 0x56, 0xe8, 0x9a, 0x7c, 0x13, 0xd2, 0xd8, 0xa4, 0x6b, - 0x1a, 0xf0, 0x23, 0x84, 0xc3, 0x88, 0x71, 0x86, 0x7e, 0x1e, 0xb9, 0x78, 0xfd, 0x07, 0x0b, 0xaa, - 0xde, 0x74, 0x98, 0xc3, 0x04, 0x6e, 0xa6, 0x53, 0x46, 0xed, 0x3c, 0x49, 0xb0, 0x31, 0x3a, 0xb0, - 0x47, 0x11, 0xb5, 0x38, 0x45, 0x3d, 0x58, 0x2f, 0x16, 0x5c, 0xb9, 0xb6, 0x06, 0xda, 0xa0, 0xfb, - 0x7d, 0xd8, 0x48, 0x76, 0x2d, 0xb5, 0xa0, 0xce, 0xc6, 0x44, 0x2d, 0x48, 0x33, 0x1b, 0x35, 0xe1, - 0x37, 0xd7, 0xb7, 0x1c, 0xaa, 0x49, 0x29, 0x99, 0x64, 0x0f, 0x34, 0x85, 0xb5, 0x68, 0x15, 0x70, - 0xd7, 0xa7, 0x9a, 0xdc, 0x06, 0x5d, 0xb5, 0xf7, 0x0b, 0xbf, 0x63, 0x0d, 0xbf, 0x31, 0x80, 0x49, - 0xa6, 0x21, 0x07, 0xb1, 0xfe, 0x00, 0x60, 0x2d, 0xff, 0x88, 0x10, 0xac, 0x06, 0x96, 0x4f, 0x33, - 0x57, 0x44, 0xcc, 0x68, 0x0e, 0x6b, 0x2c, 0xe4, 0x2e, 0x0b, 0x62, 0x4d, 0x6a, 0xcb, 0x5d, 0xb5, - 0xd7, 0x3f, 0xe5, 0x0e, 0xbe, 0xc8, 0xb4, 0x93, 0x80, 0x47, 0x1b, 0x72, 0xd8, 0xa4, 0x0f, 0x60, - 0xbd, 0x0c, 0xa0, 0x1f, 0x50, 0xbe, 0xa5, 0x9b, 0xfc, 0x6e, 0x3a, 0xa6, 0xa1, 0xd7, 0x96, 0xb7, - 0x2a, 0x42, 0x8b, 0xc7, 0x40, 0xfa, 0x07, 0x3a, 0xf7, 0xe5, 0x5a, 0x2f, 0x43, 0xfb, 0x6b, 0x6b, - 0x3d, 0x83, 0x8a, 0x67, 0x2d, 0xa8, 0x17, 0x6b, 0xb2, 0x48, 0xfb, 0xfb, 0xe3, 0xb4, 0xd9, 0x7d, - 0x7c, 0x2e, 0x24, 0x59, 0xc8, 0x5c, 0x8f, 0x3a, 0x50, 0x89, 0x18, 0xe3, 0xd7, 0xb1, 0x56, 0x15, - 0x6e, 0x60, 0xb2, 0x6b, 0x29, 0x84, 0x31, 0x3e, 0x9d, 0x93, 0x1c, 0xd1, 0xfb, 0x50, 0x2d, 0x49, - 0x4f, 0xaa, 0x61, 0x52, 0x6a, 0x61, 0x4c, 0x3d, 0xfa, 0xb9, 0x16, 0x86, 0xda, 0x76, 0x6f, 0x54, - 0x9e, 0xf7, 0x46, 0xe5, 0x2e, 0x31, 0xc0, 0x36, 0x31, 0xc0, 0x63, 0x62, 0x80, 0x97, 0xc4, 0x00, - 0x0b, 0x45, 0xfc, 0xc5, 0x7f, 0x5f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x47, 0x2f, 0xd1, 0x73, 0x34, - 0x03, 0x00, 0x00, + // 406 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x53, 0xcd, 0xaa, 0xd3, 0x40, + 0x18, 0xed, 0x24, 0x35, 0xc5, 0x49, 0xa1, 0x32, 0x74, 0x11, 0x02, 0xa6, 0xa5, 0xab, 0xae, 0x26, + 0xb4, 0x82, 0x68, 0x05, 0x17, 0xfd, 0x51, 0x0a, 0x82, 0x32, 0x22, 0x88, 0x20, 0x92, 0x36, 0x63, + 0x1c, 0x4c, 0x32, 0x21, 0x99, 0x06, 0xba, 0xf3, 0x09, 0x7c, 0x1e, 0x1f, 0xa1, 0x4b, 0x97, 0xae, + 0x8a, 0xcd, 0xea, 0x3e, 0xc6, 0x25, 0x99, 0x24, 0x0d, 0x77, 0x71, 0xb9, 0xb7, 0xdc, 0xdd, 0x99, + 0x7c, 0xe7, 0x9c, 0x9c, 0xef, 0xc0, 0x07, 0xdf, 0x7a, 0x4c, 0xfc, 0xd8, 0x6d, 0xf0, 0x96, 0x07, + 0xf6, 0x96, 0x87, 0xc2, 0x61, 0x21, 0x8d, 0xdd, 0x26, 0x74, 0x22, 0x66, 0x27, 0x34, 0x4e, 0xd9, + 0x96, 0x26, 0x36, 0x4d, 0x69, 0x28, 0x12, 0x3b, 0x9d, 0x9c, 0x19, 0x38, 0x8a, 0xb9, 0xe0, 0xe8, + 0xe9, 0x59, 0x82, 0x2b, 0x3a, 0x96, 0x74, 0x9c, 0x4e, 0xcc, 0xbe, 0xc7, 0x3d, 0x5e, 0x30, 0xed, + 0x1c, 0x49, 0xd1, 0xe8, 0x4a, 0x81, 0xbd, 0x45, 0xa5, 0x5b, 0xc4, 0xd4, 0x11, 0x14, 0x4d, 0x61, + 0xb7, 0xb6, 0xfa, 0xc6, 0x5c, 0x03, 0x0c, 0xc1, 0xf8, 0xf1, 0xbc, 0x97, 0x1d, 0x07, 0x7a, 0x4d, + 0x5d, 0x2f, 0x89, 0x5e, 0x93, 0xd6, 0x2e, 0xea, 0xc3, 0x47, 0x2c, 0x70, 0x3c, 0x6a, 0x28, 0x39, + 0x99, 0xc8, 0x07, 0xfa, 0x00, 0x3b, 0xf1, 0x2e, 0x14, 0x2c, 0xa0, 0x86, 0x3a, 0x04, 0x63, 0x7d, + 0xfa, 0x1c, 0xdf, 0x1a, 0x12, 0xdf, 0x88, 0x82, 0x89, 0x54, 0x93, 0xca, 0xc6, 0xfc, 0x03, 0x60, + 0xa7, 0xfc, 0x88, 0x10, 0x6c, 0x87, 0x4e, 0x40, 0x65, 0x3e, 0x52, 0x60, 0xf4, 0x15, 0x76, 0x78, + 0x24, 0x18, 0x0f, 0x13, 0x43, 0x19, 0xaa, 0x63, 0x7d, 0xba, 0xb8, 0xec, 0x8f, 0xf8, 0xbd, 0x74, + 0x59, 0x85, 0x22, 0xde, 0x93, 0xca, 0xd3, 0x9c, 0xc1, 0x6e, 0x73, 0x80, 0x9e, 0x40, 0xf5, 0x27, + 0xdd, 0x97, 0x09, 0x72, 0x98, 0x17, 0x91, 0x3a, 0xfe, 0xae, 0x2e, 0xa2, 0x78, 0xcc, 0x94, 0x17, + 0x60, 0xf4, 0xbb, 0x59, 0xf5, 0xa7, 0xc8, 0x7d, 0xd8, 0xaa, 0x09, 0xd4, 0x7c, 0x67, 0x43, 0xfd, + 0xc4, 0x50, 0x8b, 0xbd, 0x67, 0x77, 0xdd, 0x5b, 0x26, 0xc1, 0xef, 0x0a, 0xb1, 0x5c, 0xb7, 0x74, + 0x42, 0x23, 0xa8, 0xc5, 0x9c, 0x8b, 0xef, 0x89, 0xd1, 0x2e, 0x72, 0xc1, 0xec, 0x38, 0xd0, 0x08, + 0xe7, 0xe2, 0xcd, 0x47, 0x52, 0x4e, 0xcc, 0x97, 0x50, 0x6f, 0x48, 0xef, 0x55, 0xc8, 0xaa, 0xd1, + 0xc7, 0x92, 0xfa, 0xf4, 0xb2, 0x3e, 0xe6, 0x9f, 0x0f, 0x27, 0xab, 0xf5, 0xef, 0x64, 0xb5, 0x7e, + 0x65, 0x16, 0x38, 0x64, 0x16, 0xf8, 0x9b, 0x59, 0xe0, 0x7f, 0x66, 0x81, 0x2f, 0xaf, 0x2f, 0x3c, + 0xad, 0x57, 0x12, 0x6d, 0xb4, 0xe2, 0x46, 0x9e, 0x5d, 0x07, 0x00, 0x00, 0xff, 0xff, 0x66, 0x84, + 0x14, 0x0e, 0xa3, 0x03, 0x00, 0x00, } diff --git a/api/types/event/container.proto b/api/services/events/v1/container.proto similarity index 77% rename from api/types/event/container.proto rename to api/services/events/v1/container.proto index eba13859b..882e213d2 100644 --- a/api/types/event/container.proto +++ b/api/services/events/v1/container.proto @@ -1,9 +1,11 @@ syntax = "proto3"; -package containerd.v1.types; +package containerd.services.events.v1; import "gogoproto/gogo.proto"; +option go_package = "github.com/containerd/containerd/api/services/events/v1;events"; + message ContainerCreate { string container_id = 1; string image = 2; diff --git a/api/types/event/content.pb.go b/api/services/events/v1/content.pb.go similarity index 82% rename from api/types/event/content.pb.go rename to api/services/events/v1/content.pb.go index 570c8a744..c2a279a0b 100644 --- a/api/types/event/content.pb.go +++ b/api/services/events/v1/content.pb.go @@ -1,8 +1,8 @@ // Code generated by protoc-gen-gogo. -// source: github.com/containerd/containerd/api/types/event/content.proto +// source: github.com/containerd/containerd/api/services/events/v1/content.proto // DO NOT EDIT! -package event +package events import proto "github.com/gogo/protobuf/proto" import fmt "fmt" @@ -30,7 +30,7 @@ func (*ContentDelete) ProtoMessage() {} func (*ContentDelete) Descriptor() ([]byte, []int) { return fileDescriptorContent, []int{0} } func init() { - proto.RegisterType((*ContentDelete)(nil), "containerd.v1.types.ContentDelete") + proto.RegisterType((*ContentDelete)(nil), "containerd.services.events.v1.ContentDelete") } func (m *ContentDelete) Marshal() (dAtA []byte, err error) { size := m.Size() @@ -309,21 +309,23 @@ var ( ) func init() { - proto.RegisterFile("github.com/containerd/containerd/api/types/event/content.proto", fileDescriptorContent) + proto.RegisterFile("github.com/containerd/containerd/api/services/events/v1/content.proto", fileDescriptorContent) } var fileDescriptorContent = []byte{ - // 192 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4b, 0xcf, 0x2c, 0xc9, + // 210 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x72, 0x4d, 0xcf, 0x2c, 0xc9, 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, 0x96, 0xa5, - 0xe6, 0x95, 0x80, 0xa5, 0x52, 0xf3, 0x4a, 0xf4, 0x0a, 0x8a, 0xf2, 0x4b, 0xf2, 0x85, 0x84, 0x11, - 0x2a, 0xf5, 0xca, 0x0c, 0xf5, 0xc0, 0x0a, 0xa5, 0x44, 0xd2, 0xf3, 0xd3, 0xf3, 0xc1, 0xf2, 0xfa, - 0x20, 0x16, 0x44, 0xa9, 0x52, 0x34, 0x17, 0xaf, 0x33, 0x44, 0xaf, 0x4b, 0x6a, 0x4e, 0x6a, 0x49, - 0xaa, 0x90, 0x17, 0x17, 0x5b, 0x4a, 0x66, 0x7a, 0x6a, 0x71, 0x89, 0x04, 0xa3, 0x02, 0xa3, 0x06, - 0xa7, 0x93, 0xd1, 0x89, 0x7b, 0xf2, 0x0c, 0xb7, 0xee, 0xc9, 0x6b, 0x21, 0xb9, 0x29, 0xbf, 0x20, - 0x35, 0x0f, 0x6e, 0x45, 0xb1, 0x7e, 0x7a, 0xbe, 0x2e, 0x44, 0x8b, 0x9e, 0x0b, 0x98, 0x0a, 0x82, - 0x9a, 0xe0, 0x24, 0x71, 0xe2, 0xa1, 0x1c, 0xc3, 0x8d, 0x87, 0x72, 0x0c, 0x0d, 0x8f, 0xe4, 0x18, - 0x4f, 0x3c, 0x92, 0x63, 0xbc, 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, 0x24, 0x36, 0xb0, - 0xed, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3f, 0x6c, 0x08, 0x88, 0xea, 0x00, 0x00, 0x00, + 0x4a, 0x41, 0x66, 0x26, 0x16, 0x64, 0xea, 0x17, 0xa7, 0x16, 0x95, 0x65, 0x26, 0xa7, 0x16, 0xeb, + 0xa7, 0x96, 0xa5, 0xe6, 0x95, 0x14, 0xeb, 0x97, 0x19, 0x82, 0x55, 0xa4, 0xe6, 0x95, 0xe8, 0x15, + 0x14, 0xe5, 0x97, 0xe4, 0x0b, 0xc9, 0x22, 0x34, 0xe8, 0xc1, 0x14, 0xeb, 0x41, 0x14, 0xeb, 0x95, + 0x19, 0x4a, 0x89, 0xa4, 0xe7, 0xa7, 0xe7, 0x83, 0x55, 0xea, 0x83, 0x58, 0x10, 0x4d, 0x4a, 0xd1, + 0x5c, 0xbc, 0xce, 0x10, 0x53, 0x5c, 0x52, 0x73, 0x52, 0x4b, 0x52, 0x85, 0xbc, 0xb8, 0xd8, 0x52, + 0x32, 0xd3, 0x53, 0x8b, 0x4b, 0x24, 0x18, 0x15, 0x18, 0x35, 0x38, 0x9d, 0x8c, 0x4e, 0xdc, 0x93, + 0x67, 0xb8, 0x75, 0x4f, 0x5e, 0x0b, 0xc9, 0x91, 0xf9, 0x05, 0xa9, 0x79, 0x70, 0xcb, 0x8a, 0xf5, + 0xd3, 0xf3, 0x75, 0x21, 0x5a, 0xf4, 0x5c, 0xc0, 0x54, 0x10, 0xd4, 0x04, 0xa7, 0x88, 0x13, 0x0f, + 0xe5, 0x18, 0x6e, 0x3c, 0x94, 0x63, 0x68, 0x78, 0x24, 0xc7, 0x78, 0xe2, 0x91, 0x1c, 0xe3, 0x85, + 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x46, 0xd9, 0x91, 0xe9, 0x65, 0x6b, 0x08, 0x2b, 0x89, + 0x0d, 0xec, 0x7a, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x41, 0x46, 0x06, 0x3b, 0x01, + 0x00, 0x00, } diff --git a/api/types/event/content.proto b/api/services/events/v1/content.proto similarity index 61% rename from api/types/event/content.proto rename to api/services/events/v1/content.proto index 4bb9d6b2b..b358dda10 100644 --- a/api/types/event/content.proto +++ b/api/services/events/v1/content.proto @@ -1,9 +1,11 @@ syntax = "proto3"; -package containerd.v1.types; +package containerd.services.events.v1; import "gogoproto/gogo.proto"; +option go_package = "github.com/containerd/containerd/api/services/events/v1;events"; + message ContentDelete { string digest = 1 [(gogoproto.customtype) = "github.com/opencontainers/go-digest.Digest", (gogoproto.nullable) = false]; } diff --git a/api/services/events/v1/events.pb.go b/api/services/events/v1/events.pb.go index 2df4ccb26..3dfeb765e 100644 --- a/api/services/events/v1/events.pb.go +++ b/api/services/events/v1/events.pb.go @@ -2,27 +2,24 @@ // source: github.com/containerd/containerd/api/services/events/v1/events.proto // DO NOT EDIT! -/* - Package events is a generated protocol buffer package. - - It is generated from these files: - github.com/containerd/containerd/api/services/events/v1/events.proto - - It has these top-level messages: - StreamEventsRequest -*/ package events import proto "github.com/gogo/protobuf/proto" import fmt "fmt" import math "math" -import containerd_v1_types "github.com/containerd/containerd/api/types/event" +import _ "github.com/gogo/protobuf/gogoproto" +import _ "github.com/gogo/protobuf/types" +import google_protobuf2 "github.com/gogo/protobuf/types" + +import time "time" import ( context "golang.org/x/net/context" grpc "google.golang.org/grpc" ) +import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" + import strings "strings" import reflect "reflect" @@ -32,12 +29,7 @@ import io "io" var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package +var _ = time.Kitchen type StreamEventsRequest struct { } @@ -46,8 +38,19 @@ func (m *StreamEventsRequest) Reset() { *m = StreamEventsRequ func (*StreamEventsRequest) ProtoMessage() {} func (*StreamEventsRequest) Descriptor() ([]byte, []int) { return fileDescriptorEvents, []int{0} } +type Envelope struct { + Timestamp time.Time `protobuf:"bytes,1,opt,name=timestamp,stdtime" json:"timestamp"` + Topic string `protobuf:"bytes,2,opt,name=topic,proto3" json:"topic,omitempty"` + Event *google_protobuf2.Any `protobuf:"bytes,3,opt,name=event" json:"event,omitempty"` +} + +func (m *Envelope) Reset() { *m = Envelope{} } +func (*Envelope) ProtoMessage() {} +func (*Envelope) Descriptor() ([]byte, []int) { return fileDescriptorEvents, []int{1} } + func init() { proto.RegisterType((*StreamEventsRequest)(nil), "containerd.services.events.v1.StreamEventsRequest") + proto.RegisterType((*Envelope)(nil), "containerd.services.events.v1.Envelope") } // Reference imports to suppress errors if they are not otherwise used. @@ -88,7 +91,7 @@ func (c *eventsClient) Stream(ctx context.Context, in *StreamEventsRequest, opts } type Events_StreamClient interface { - Recv() (*containerd_v1_types.Envelope, error) + Recv() (*Envelope, error) grpc.ClientStream } @@ -96,8 +99,8 @@ type eventsStreamClient struct { grpc.ClientStream } -func (x *eventsStreamClient) Recv() (*containerd_v1_types.Envelope, error) { - m := new(containerd_v1_types.Envelope) +func (x *eventsStreamClient) Recv() (*Envelope, error) { + m := new(Envelope) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } @@ -123,7 +126,7 @@ func _Events_Stream_Handler(srv interface{}, stream grpc.ServerStream) error { } type Events_StreamServer interface { - Send(*containerd_v1_types.Envelope) error + Send(*Envelope) error grpc.ServerStream } @@ -131,7 +134,7 @@ type eventsStreamServer struct { grpc.ServerStream } -func (x *eventsStreamServer) Send(m *containerd_v1_types.Envelope) error { +func (x *eventsStreamServer) Send(m *Envelope) error { return x.ServerStream.SendMsg(m) } @@ -167,6 +170,48 @@ func (m *StreamEventsRequest) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *Envelope) 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 *Envelope) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintEvents(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp))) + n1, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Timestamp, dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + if len(m.Topic) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintEvents(dAtA, i, uint64(len(m.Topic))) + i += copy(dAtA[i:], m.Topic) + } + if m.Event != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintEvents(dAtA, i, uint64(m.Event.Size())) + n2, err := m.Event.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + } + return i, nil +} + func encodeFixed64Events(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) dAtA[offset+1] = uint8(v >> 8) @@ -200,6 +245,22 @@ func (m *StreamEventsRequest) Size() (n int) { return n } +func (m *Envelope) Size() (n int) { + var l int + _ = l + l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp) + n += 1 + l + sovEvents(uint64(l)) + l = len(m.Topic) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + if m.Event != nil { + l = m.Event.Size() + n += 1 + l + sovEvents(uint64(l)) + } + return n +} + func sovEvents(x uint64) (n int) { for { n++ @@ -222,6 +283,18 @@ func (this *StreamEventsRequest) String() string { }, "") return s } +func (this *Envelope) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Envelope{`, + `Timestamp:` + strings.Replace(strings.Replace(this.Timestamp.String(), "Timestamp", "google_protobuf1.Timestamp", 1), `&`, ``, 1) + `,`, + `Topic:` + fmt.Sprintf("%v", this.Topic) + `,`, + `Event:` + strings.Replace(fmt.Sprintf("%v", this.Event), "Any", "google_protobuf2.Any", 1) + `,`, + `}`, + }, "") + return s +} func valueToStringEvents(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -280,6 +353,148 @@ func (m *StreamEventsRequest) Unmarshal(dAtA []byte) error { } return nil } +func (m *Envelope) 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 ErrIntOverflowEvents + } + 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: Envelope: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Envelope: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Timestamp, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Topic", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + 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 ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Topic = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Event", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Event == nil { + m.Event = &google_protobuf2.Any{} + } + if err := m.Event.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvents(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthEvents + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipEvents(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 @@ -390,18 +605,25 @@ func init() { } var fileDescriptorEvents = []byte{ - // 205 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x72, 0x49, 0xcf, 0x2c, 0xc9, - 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xce, 0xcf, 0x2b, 0x49, 0xcc, 0xcc, 0x4b, 0x2d, - 0x4a, 0x41, 0x66, 0x26, 0x16, 0x64, 0xea, 0x17, 0xa7, 0x16, 0x95, 0x65, 0x26, 0xa7, 0x16, 0xeb, - 0xa7, 0x96, 0xa5, 0xe6, 0x95, 0x14, 0xeb, 0x97, 0x19, 0x42, 0x59, 0x7a, 0x05, 0x45, 0xf9, 0x25, - 0xf9, 0x42, 0xb2, 0x08, 0xf5, 0x7a, 0x30, 0xb5, 0x7a, 0x50, 0x15, 0x65, 0x86, 0x52, 0x36, 0x44, - 0x59, 0x52, 0x52, 0x59, 0x00, 0xb3, 0x01, 0x42, 0x42, 0x0c, 0x57, 0x12, 0xe5, 0x12, 0x0e, 0x2e, - 0x29, 0x4a, 0x4d, 0xcc, 0x75, 0x05, 0x1b, 0x18, 0x94, 0x5a, 0x58, 0x9a, 0x5a, 0x5c, 0x62, 0x94, - 0xce, 0xc5, 0x06, 0x11, 0x10, 0x8a, 0xe5, 0x62, 0x83, 0x28, 0x10, 0x32, 0xd2, 0xc3, 0xeb, 0x10, - 0x3d, 0x2c, 0xe6, 0x48, 0xc9, 0x22, 0xeb, 0x29, 0x33, 0xd4, 0x03, 0x3b, 0x43, 0xcf, 0x35, 0xaf, - 0x2c, 0x35, 0x27, 0xbf, 0x20, 0xd5, 0x80, 0xd1, 0x29, 0xe2, 0xc4, 0x43, 0x39, 0x86, 0x1b, 0x0f, - 0xe5, 0x18, 0x1a, 0x1e, 0xc9, 0x31, 0x9e, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, - 0x47, 0x72, 0x8c, 0x51, 0x76, 0x64, 0x06, 0x9e, 0x35, 0x84, 0x95, 0xc4, 0x06, 0xf6, 0xa0, 0x31, - 0x20, 0x00, 0x00, 0xff, 0xff, 0xf9, 0x3a, 0x20, 0x52, 0x85, 0x01, 0x00, 0x00, + // 313 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x91, 0xc1, 0x4a, 0xc3, 0x30, + 0x1c, 0xc6, 0x17, 0x65, 0x63, 0x8b, 0xb7, 0x38, 0x61, 0x16, 0xcc, 0xc6, 0x2e, 0x0e, 0x0f, 0x89, + 0x9b, 0x47, 0x41, 0x70, 0xb8, 0x17, 0xa8, 0x1e, 0xc4, 0x5b, 0x57, 0xff, 0xc6, 0xc0, 0x9a, 0x74, + 0x6d, 0x56, 0xd8, 0xcd, 0x47, 0xd8, 0x63, 0xf5, 0xe8, 0xd1, 0x93, 0xba, 0x3e, 0x89, 0x98, 0xb4, + 0x4e, 0x54, 0x14, 0xbc, 0x7d, 0x7f, 0xf2, 0xfb, 0xbe, 0xfc, 0xbf, 0x04, 0x5f, 0x08, 0x69, 0xee, + 0x17, 0x53, 0x16, 0xea, 0x88, 0x87, 0x5a, 0x99, 0x40, 0x2a, 0x48, 0x6e, 0x3f, 0xcb, 0x20, 0x96, + 0x3c, 0x85, 0x24, 0x93, 0x21, 0xa4, 0x1c, 0x32, 0x50, 0x26, 0xe5, 0xd9, 0xb0, 0x54, 0x2c, 0x4e, + 0xb4, 0xd1, 0xe4, 0x60, 0xc3, 0xb3, 0x8a, 0x65, 0x25, 0x91, 0x0d, 0xbd, 0xb6, 0xd0, 0x42, 0x5b, + 0x92, 0xbf, 0x2b, 0x67, 0xf2, 0xba, 0x42, 0x6b, 0x31, 0x03, 0x6e, 0xa7, 0xe9, 0xe2, 0x8e, 0x1b, + 0x19, 0x41, 0x6a, 0x82, 0x28, 0x2e, 0x81, 0xfd, 0xaf, 0x40, 0xa0, 0x96, 0xee, 0xa8, 0xbf, 0x87, + 0x77, 0x2f, 0x4d, 0x02, 0x41, 0x34, 0xb1, 0x97, 0xf8, 0x30, 0x5f, 0x40, 0x6a, 0xfa, 0x2b, 0x84, + 0x9b, 0x13, 0x95, 0xc1, 0x4c, 0xc7, 0x40, 0xc6, 0xb8, 0xf5, 0x91, 0xd8, 0x41, 0x3d, 0x34, 0xd8, + 0x19, 0x79, 0xcc, 0x45, 0xb2, 0x2a, 0x92, 0x5d, 0x55, 0xc4, 0xb8, 0x99, 0x3f, 0x77, 0x6b, 0xab, + 0x97, 0x2e, 0xf2, 0x37, 0x36, 0xd2, 0xc6, 0x75, 0xa3, 0x63, 0x19, 0x76, 0xb6, 0x7a, 0x68, 0xd0, + 0xf2, 0xdd, 0x40, 0x8e, 0x70, 0xdd, 0x96, 0xeb, 0x6c, 0xdb, 0xd4, 0xf6, 0xb7, 0xd4, 0x73, 0xb5, + 0xf4, 0x1d, 0x32, 0x9a, 0xe3, 0x86, 0xdb, 0x91, 0x08, 0xdc, 0x70, 0x3b, 0x93, 0x11, 0xfb, 0xf5, + 0xbd, 0xd8, 0x0f, 0xd5, 0xbc, 0xc3, 0x3f, 0x3c, 0x55, 0xed, 0x63, 0x34, 0xbe, 0xce, 0xd7, 0xb4, + 0xf6, 0xb4, 0xa6, 0xb5, 0x87, 0x82, 0xa2, 0xbc, 0xa0, 0xe8, 0xb1, 0xa0, 0xe8, 0xb5, 0xa0, 0xe8, + 0xe6, 0xec, 0x9f, 0xbf, 0x7d, 0xea, 0xd4, 0xb4, 0x61, 0x1b, 0x9e, 0xbc, 0x05, 0x00, 0x00, 0xff, + 0xff, 0xc3, 0x54, 0xa2, 0xf3, 0x36, 0x02, 0x00, 0x00, } diff --git a/api/services/events/v1/events.proto b/api/services/events/v1/events.proto index 356b7d9fd..9340e8bad 100644 --- a/api/services/events/v1/events.proto +++ b/api/services/events/v1/events.proto @@ -2,12 +2,20 @@ syntax = "proto3"; package containerd.services.events.v1; -import "github.com/containerd/containerd/api/types/event/event.proto"; +import "gogoproto/gogo.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/any.proto"; option go_package = "github.com/containerd/containerd/api/services/events/v1;events"; service Events { - rpc Stream(StreamEventsRequest) returns (stream containerd.v1.types.Envelope); + rpc Stream(StreamEventsRequest) returns (stream Envelope); } message StreamEventsRequest {} + +message Envelope { + google.protobuf.Timestamp timestamp = 1 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + string topic = 2; + google.protobuf.Any event = 3; +} diff --git a/api/types/event/image.pb.go b/api/services/events/v1/image.pb.go similarity index 88% rename from api/types/event/image.pb.go rename to api/services/events/v1/image.pb.go index 25dec7bf3..cdb256323 100644 --- a/api/types/event/image.pb.go +++ b/api/services/events/v1/image.pb.go @@ -1,8 +1,8 @@ // Code generated by protoc-gen-gogo. -// source: github.com/containerd/containerd/api/types/event/image.proto +// source: github.com/containerd/containerd/api/services/events/v1/image.proto // DO NOT EDIT! -package event +package events import proto "github.com/gogo/protobuf/proto" import fmt "fmt" @@ -37,8 +37,8 @@ func (*ImageDelete) ProtoMessage() {} func (*ImageDelete) Descriptor() ([]byte, []int) { return fileDescriptorImage, []int{1} } func init() { - proto.RegisterType((*ImageUpdate)(nil), "containerd.v1.types.ImageUpdate") - proto.RegisterType((*ImageDelete)(nil), "containerd.v1.types.ImageDelete") + proto.RegisterType((*ImageUpdate)(nil), "containerd.services.images.v1.ImageUpdate") + proto.RegisterType((*ImageDelete)(nil), "containerd.services.images.v1.ImageDelete") } func (m *ImageUpdate) Marshal() (dAtA []byte, err error) { size := m.Size() @@ -592,24 +592,25 @@ var ( ) func init() { - proto.RegisterFile("github.com/containerd/containerd/api/types/event/image.proto", fileDescriptorImage) + proto.RegisterFile("github.com/containerd/containerd/api/services/events/v1/image.proto", fileDescriptorImage) } var fileDescriptorImage = []byte{ - // 232 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x49, 0xcf, 0x2c, 0xc9, + // 251 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x72, 0x4e, 0xcf, 0x2c, 0xc9, 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, 0x96, 0xa5, - 0xe6, 0x95, 0xe8, 0x67, 0xe6, 0x26, 0xa6, 0xa7, 0xea, 0x15, 0x14, 0xe5, 0x97, 0xe4, 0x0b, 0x09, - 0x23, 0xd4, 0xe9, 0x95, 0x19, 0xea, 0x81, 0x95, 0x29, 0x2d, 0x62, 0xe4, 0xe2, 0xf6, 0x04, 0x29, - 0x0a, 0x2d, 0x48, 0x49, 0x2c, 0x49, 0x15, 0x12, 0xe2, 0x62, 0xc9, 0x4b, 0xcc, 0x4d, 0x95, 0x60, - 0x54, 0x60, 0xd4, 0xe0, 0x0c, 0x02, 0xb3, 0x85, 0x5c, 0xb8, 0xd8, 0x72, 0x12, 0x93, 0x52, 0x73, - 0x8a, 0x25, 0x98, 0x14, 0x98, 0x35, 0xb8, 0x8d, 0x74, 0xf4, 0xb0, 0x98, 0xa4, 0x87, 0x64, 0x8a, - 0x9e, 0x0f, 0x58, 0xb9, 0x6b, 0x5e, 0x49, 0x51, 0x65, 0x10, 0x54, 0xaf, 0x94, 0x25, 0x17, 0x37, - 0x92, 0xb0, 0x90, 0x00, 0x17, 0x73, 0x76, 0x6a, 0x25, 0xd4, 0x1e, 0x10, 0x53, 0x48, 0x84, 0x8b, - 0xb5, 0x2c, 0x31, 0xa7, 0x34, 0x55, 0x82, 0x09, 0x2c, 0x06, 0xe1, 0x58, 0x31, 0x59, 0x30, 0x2a, - 0x29, 0x42, 0xdd, 0xe8, 0x92, 0x9a, 0x93, 0x8a, 0xdd, 0x8d, 0x4e, 0x12, 0x27, 0x1e, 0xca, 0x31, - 0xdc, 0x78, 0x28, 0xc7, 0xd0, 0xf0, 0x48, 0x8e, 0xf1, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, - 0x18, 0x1f, 0x3c, 0x92, 0x63, 0x4c, 0x62, 0x03, 0xfb, 0xde, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, - 0xa7, 0x64, 0x49, 0x13, 0x3d, 0x01, 0x00, 0x00, + 0x4a, 0x41, 0x66, 0x26, 0x16, 0x64, 0xea, 0x17, 0xa7, 0x16, 0x95, 0x65, 0x26, 0xa7, 0x16, 0xeb, + 0xa7, 0x96, 0xa5, 0xe6, 0x95, 0x14, 0xeb, 0x97, 0x19, 0xea, 0x67, 0xe6, 0x26, 0xa6, 0xa7, 0xea, + 0x15, 0x14, 0xe5, 0x97, 0xe4, 0x0b, 0xc9, 0x22, 0x94, 0xeb, 0xc1, 0x94, 0xea, 0x81, 0x15, 0x14, + 0xeb, 0x95, 0x19, 0x2a, 0xad, 0x61, 0xe4, 0xe2, 0xf6, 0x04, 0xf1, 0x42, 0x0b, 0x52, 0x12, 0x4b, + 0x52, 0x85, 0x84, 0xb8, 0x58, 0xf2, 0x12, 0x73, 0x53, 0x25, 0x18, 0x15, 0x18, 0x35, 0x38, 0x83, + 0xc0, 0x6c, 0x21, 0x3f, 0x2e, 0xb6, 0x9c, 0xc4, 0xa4, 0xd4, 0x9c, 0x62, 0x09, 0x26, 0x05, 0x66, + 0x0d, 0x6e, 0x23, 0x33, 0x3d, 0xbc, 0x66, 0xea, 0x21, 0x99, 0xa7, 0xe7, 0x03, 0xd6, 0xe8, 0x9a, + 0x57, 0x52, 0x54, 0x19, 0x04, 0x35, 0x45, 0xca, 0x92, 0x8b, 0x1b, 0x49, 0x58, 0x48, 0x80, 0x8b, + 0x39, 0x3b, 0xb5, 0x12, 0x6a, 0x23, 0x88, 0x29, 0x24, 0xc2, 0xc5, 0x5a, 0x96, 0x98, 0x53, 0x9a, + 0x2a, 0xc1, 0x04, 0x16, 0x83, 0x70, 0xac, 0x98, 0x2c, 0x18, 0x95, 0x14, 0xa1, 0xae, 0x75, 0x49, + 0xcd, 0x49, 0xc5, 0xee, 0x5a, 0xa7, 0x88, 0x13, 0x0f, 0xe5, 0x18, 0x6e, 0x3c, 0x94, 0x63, 0x68, + 0x78, 0x24, 0xc7, 0x78, 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, + 0x46, 0xd9, 0x91, 0x19, 0x9e, 0xd6, 0x10, 0x56, 0x12, 0x1b, 0x38, 0x44, 0x8d, 0x01, 0x01, 0x00, + 0x00, 0xff, 0xff, 0x0c, 0x2f, 0x4e, 0xf3, 0x98, 0x01, 0x00, 0x00, } diff --git a/api/types/event/image.proto b/api/services/events/v1/image.proto similarity index 52% rename from api/types/event/image.proto rename to api/services/events/v1/image.proto index 5df9e595a..6f2e3d429 100644 --- a/api/types/event/image.proto +++ b/api/services/events/v1/image.proto @@ -1,6 +1,8 @@ syntax = "proto3"; -package containerd.v1.types; +package containerd.services.images.v1; + +option go_package = "github.com/containerd/containerd/api/services/events/v1;events"; message ImageUpdate { string name = 1; diff --git a/api/types/event/namespace.pb.go b/api/services/events/v1/namespace.pb.go similarity index 89% rename from api/types/event/namespace.pb.go rename to api/services/events/v1/namespace.pb.go index dd1625e41..479c7dd1b 100644 --- a/api/types/event/namespace.pb.go +++ b/api/services/events/v1/namespace.pb.go @@ -1,12 +1,15 @@ // Code generated by protoc-gen-gogo. -// source: github.com/containerd/containerd/api/types/event/namespace.proto +// source: github.com/containerd/containerd/api/services/events/v1/namespace.proto // DO NOT EDIT! -package event +package events import proto "github.com/gogo/protobuf/proto" import fmt "fmt" import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import _ "github.com/gogo/protobuf/types" +import _ "github.com/gogo/protobuf/types" import strings "strings" import reflect "reflect" @@ -46,9 +49,9 @@ func (*NamespaceDelete) ProtoMessage() {} func (*NamespaceDelete) Descriptor() ([]byte, []int) { return fileDescriptorNamespace, []int{2} } func init() { - proto.RegisterType((*NamespaceCreate)(nil), "containerd.v1.types.NamespaceCreate") - proto.RegisterType((*NamespaceUpdate)(nil), "containerd.v1.types.NamespaceUpdate") - proto.RegisterType((*NamespaceDelete)(nil), "containerd.v1.types.NamespaceDelete") + proto.RegisterType((*NamespaceCreate)(nil), "containerd.services.events.v1.NamespaceCreate") + proto.RegisterType((*NamespaceUpdate)(nil), "containerd.services.events.v1.NamespaceUpdate") + proto.RegisterType((*NamespaceDelete)(nil), "containerd.services.events.v1.NamespaceDelete") } func (m *NamespaceCreate) Marshal() (dAtA []byte, err error) { size := m.Size() @@ -877,25 +880,29 @@ var ( ) func init() { - proto.RegisterFile("github.com/containerd/containerd/api/types/event/namespace.proto", fileDescriptorNamespace) + proto.RegisterFile("github.com/containerd/containerd/api/services/events/v1/namespace.proto", fileDescriptorNamespace) } var fileDescriptorNamespace = []byte{ - // 247 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x72, 0x48, 0xcf, 0x2c, 0xc9, + // 311 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x72, 0x4f, 0xcf, 0x2c, 0xc9, 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, 0x96, 0xa5, - 0xe6, 0x95, 0xe8, 0xe7, 0x25, 0xe6, 0xa6, 0x16, 0x17, 0x24, 0x26, 0xa7, 0xea, 0x15, 0x14, 0xe5, - 0x97, 0xe4, 0x0b, 0x09, 0x23, 0xd4, 0xea, 0x95, 0x19, 0xea, 0x81, 0x95, 0x2a, 0xad, 0x62, 0xe4, - 0xe2, 0xf7, 0x83, 0x29, 0x74, 0x2e, 0x4a, 0x4d, 0x2c, 0x49, 0x15, 0x12, 0xe2, 0x62, 0x01, 0xe9, - 0x95, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x0c, 0x02, 0xb3, 0x85, 0x3c, 0xb8, 0xd8, 0x72, 0x12, 0x93, - 0x52, 0x73, 0x8a, 0x25, 0x98, 0x14, 0x98, 0x35, 0xb8, 0x8d, 0x0c, 0xf4, 0xb0, 0x98, 0xa6, 0x87, - 0x66, 0x92, 0x9e, 0x0f, 0x58, 0x8b, 0x6b, 0x5e, 0x49, 0x51, 0x65, 0x10, 0x54, 0xbf, 0x94, 0x25, - 0x17, 0x37, 0x92, 0xb0, 0x90, 0x00, 0x17, 0x73, 0x76, 0x6a, 0x25, 0xd4, 0x2e, 0x10, 0x53, 0x48, - 0x84, 0x8b, 0xb5, 0x2c, 0x31, 0xa7, 0x34, 0x55, 0x82, 0x09, 0x2c, 0x06, 0xe1, 0x58, 0x31, 0x59, - 0x30, 0xa2, 0x3a, 0x36, 0xb4, 0x20, 0x85, 0x4a, 0x8e, 0x85, 0x98, 0x44, 0x6d, 0xc7, 0xaa, 0x22, - 0xb9, 0xd5, 0x25, 0x35, 0x27, 0x15, 0xbb, 0x5b, 0x9d, 0x24, 0x4e, 0x3c, 0x94, 0x63, 0xb8, 0xf1, - 0x50, 0x8e, 0xa1, 0xe1, 0x91, 0x1c, 0xe3, 0x89, 0x47, 0x72, 0x8c, 0x17, 0x1e, 0xc9, 0x31, 0x3e, - 0x78, 0x24, 0xc7, 0x98, 0xc4, 0x06, 0x8e, 0x36, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1c, - 0xab, 0x9e, 0xdf, 0xfa, 0x01, 0x00, 0x00, + 0x4a, 0x41, 0x66, 0x26, 0x16, 0x64, 0xea, 0x17, 0xa7, 0x16, 0x95, 0x65, 0x26, 0xa7, 0x16, 0xeb, + 0xa7, 0x96, 0xa5, 0xe6, 0x95, 0x14, 0xeb, 0x97, 0x19, 0xea, 0xe7, 0x25, 0xe6, 0xa6, 0x16, 0x17, + 0x24, 0x26, 0xa7, 0xea, 0x15, 0x14, 0xe5, 0x97, 0xe4, 0x0b, 0xc9, 0x22, 0xb4, 0xe8, 0xc1, 0x94, + 0xeb, 0x41, 0x94, 0xeb, 0x95, 0x19, 0x4a, 0x89, 0xa4, 0xe7, 0xa7, 0xe7, 0x83, 0x55, 0xea, 0x83, + 0x58, 0x10, 0x4d, 0x52, 0xf2, 0xe9, 0xf9, 0xf9, 0xe9, 0x39, 0xa9, 0xfa, 0x60, 0x5e, 0x52, 0x69, + 0x9a, 0x7e, 0x49, 0x66, 0x6e, 0x6a, 0x71, 0x49, 0x62, 0x6e, 0x01, 0x54, 0x81, 0x24, 0xba, 0x82, + 0xc4, 0xbc, 0x4a, 0x88, 0x94, 0xd2, 0x16, 0x46, 0x2e, 0x7e, 0x3f, 0x98, 0x23, 0x9c, 0x8b, 0x52, + 0x13, 0x4b, 0x52, 0x85, 0x84, 0xb8, 0x58, 0x40, 0xee, 0x92, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x0c, + 0x02, 0xb3, 0x85, 0x82, 0xb8, 0xd8, 0x72, 0x12, 0x93, 0x52, 0x73, 0x8a, 0x25, 0x98, 0x14, 0x98, + 0x35, 0xb8, 0x8d, 0xac, 0xf4, 0xf0, 0xba, 0x54, 0x0f, 0xcd, 0x4c, 0x3d, 0x1f, 0xb0, 0x66, 0xd7, + 0xbc, 0x92, 0xa2, 0xca, 0x20, 0xa8, 0x49, 0x52, 0x96, 0x5c, 0xdc, 0x48, 0xc2, 0x42, 0x02, 0x5c, + 0xcc, 0xd9, 0xa9, 0x95, 0x50, 0x5b, 0x41, 0x4c, 0x21, 0x11, 0x2e, 0xd6, 0xb2, 0xc4, 0x9c, 0xd2, + 0x54, 0x09, 0x26, 0xb0, 0x18, 0x84, 0x63, 0xc5, 0x64, 0xc1, 0x88, 0xea, 0xec, 0xd0, 0x82, 0x14, + 0xaa, 0x3b, 0x1b, 0x62, 0x26, 0xb5, 0x9d, 0xad, 0x8a, 0xe4, 0x6a, 0x97, 0xd4, 0x9c, 0x54, 0xec, + 0xae, 0x76, 0x8a, 0x38, 0xf1, 0x50, 0x8e, 0xe1, 0xc6, 0x43, 0x39, 0x86, 0x86, 0x47, 0x72, 0x8c, + 0x27, 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0x63, 0x94, 0x1d, 0x99, + 0x09, 0xcd, 0x1a, 0xc2, 0x4a, 0x62, 0x03, 0xc7, 0xba, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0x78, + 0xf1, 0x6d, 0xaa, 0xb1, 0x02, 0x00, 0x00, } diff --git a/api/services/events/v1/namespace.proto b/api/services/events/v1/namespace.proto new file mode 100644 index 000000000..fa8ad0a62 --- /dev/null +++ b/api/services/events/v1/namespace.proto @@ -0,0 +1,23 @@ +syntax = "proto3"; + +package containerd.services.events.v1; + +import "gogoproto/gogo.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/any.proto"; + +option go_package = "github.com/containerd/containerd/api/services/events/v1;events"; + +message NamespaceCreate { + string name = 1; + map labels = 2; +} + +message NamespaceUpdate { + string name = 1; + map labels = 2; +} + +message NamespaceDelete { + string name = 1; +} diff --git a/api/types/event/runtime.pb.go b/api/services/events/v1/runtime.pb.go similarity index 89% rename from api/types/event/runtime.pb.go rename to api/services/events/v1/runtime.pb.go index 6f86a2e6b..294405201 100644 --- a/api/types/event/runtime.pb.go +++ b/api/services/events/v1/runtime.pb.go @@ -1,8 +1,8 @@ // Code generated by protoc-gen-gogo. -// source: github.com/containerd/containerd/api/types/event/runtime.proto +// source: github.com/containerd/containerd/api/services/events/v1/runtime.proto // DO NOT EDIT! -package event +package events import proto "github.com/gogo/protobuf/proto" import fmt "fmt" @@ -83,11 +83,11 @@ func (*RuntimeDelete) ProtoMessage() {} func (*RuntimeDelete) Descriptor() ([]byte, []int) { return fileDescriptorRuntime, []int{4} } func init() { - proto.RegisterType((*RuntimeIO)(nil), "containerd.v1.types.RuntimeIO") - proto.RegisterType((*RuntimeMount)(nil), "containerd.v1.types.RuntimeMount") - proto.RegisterType((*RuntimeCreate)(nil), "containerd.v1.types.RuntimeCreate") - proto.RegisterType((*RuntimeEvent)(nil), "containerd.v1.types.RuntimeEvent") - proto.RegisterType((*RuntimeDelete)(nil), "containerd.v1.types.RuntimeDelete") + proto.RegisterType((*RuntimeIO)(nil), "containerd.services.events.v1.RuntimeIO") + proto.RegisterType((*RuntimeMount)(nil), "containerd.services.events.v1.RuntimeMount") + proto.RegisterType((*RuntimeCreate)(nil), "containerd.services.events.v1.RuntimeCreate") + proto.RegisterType((*RuntimeEvent)(nil), "containerd.services.events.v1.RuntimeEvent") + proto.RegisterType((*RuntimeDelete)(nil), "containerd.services.events.v1.RuntimeDelete") } func (m *RuntimeIO) Marshal() (dAtA []byte, err error) { size := m.Size() @@ -1475,42 +1475,44 @@ var ( ) func init() { - proto.RegisterFile("github.com/containerd/containerd/api/types/event/runtime.proto", fileDescriptorRuntime) + proto.RegisterFile("github.com/containerd/containerd/api/services/events/v1/runtime.proto", fileDescriptorRuntime) } var fileDescriptorRuntime = []byte{ - // 523 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x53, 0xcb, 0x6e, 0xd3, 0x40, - 0x14, 0xad, 0x9d, 0x34, 0x4d, 0x26, 0x04, 0xa1, 0xa1, 0x42, 0x56, 0x16, 0x76, 0x88, 0x58, 0x64, - 0x65, 0x8b, 0x20, 0x21, 0xc4, 0x02, 0xa9, 0xa1, 0x45, 0xca, 0x02, 0x45, 0x9a, 0x66, 0x5f, 0x39, - 0xf1, 0x34, 0x1d, 0x35, 0xf1, 0xb5, 0xc6, 0xd7, 0x15, 0xdd, 0xf1, 0x09, 0xfc, 0x04, 0xff, 0x92, - 0x25, 0x2b, 0xc4, 0x2a, 0x50, 0x7f, 0x09, 0x9a, 0x47, 0xdc, 0x08, 0x95, 0x48, 0xb0, 0x19, 0xdd, - 0x73, 0x7c, 0xe7, 0xcc, 0xb9, 0x0f, 0x93, 0x77, 0x0b, 0x81, 0x57, 0xc5, 0x2c, 0x9c, 0xc3, 0x2a, - 0x9a, 0x43, 0x8a, 0xb1, 0x48, 0xb9, 0x4c, 0x76, 0xc3, 0x38, 0x13, 0x11, 0xde, 0x66, 0x3c, 0x8f, - 0xf8, 0x0d, 0x4f, 0x31, 0x92, 0x45, 0x8a, 0x62, 0xc5, 0xc3, 0x4c, 0x02, 0x02, 0x7d, 0x7a, 0x9f, - 0x19, 0xde, 0xbc, 0x0c, 0x75, 0x62, 0xf7, 0x78, 0x01, 0x0b, 0xd0, 0xdf, 0x23, 0x15, 0x99, 0xd4, - 0x6e, 0xb0, 0x00, 0x58, 0x2c, 0x79, 0xa4, 0xd1, 0xac, 0xb8, 0x8c, 0x94, 0x4c, 0x8e, 0xf1, 0x2a, - 0xb3, 0x09, 0x6f, 0xff, 0xc1, 0x0b, 0xc6, 0xf9, 0xb5, 0x3e, 0xcc, 0xdd, 0xfe, 0x8a, 0xb4, 0x98, - 0x31, 0x36, 0x9e, 0xd0, 0x63, 0x72, 0x98, 0x63, 0x22, 0x52, 0xcf, 0xe9, 0x39, 0x83, 0x16, 0x33, - 0x80, 0x3e, 0x23, 0x8d, 0x1c, 0x13, 0x28, 0xd0, 0x73, 0x35, 0x6d, 0x91, 0xe5, 0xb9, 0x94, 0x5e, - 0xad, 0xe2, 0xb9, 0x94, 0xb4, 0x4b, 0x9a, 0xc8, 0xe5, 0x4a, 0xa4, 0xf1, 0xd2, 0xab, 0xf7, 0x9c, - 0x41, 0x93, 0x55, 0xb8, 0x3f, 0x25, 0x8f, 0xec, 0x73, 0x1f, 0xa1, 0x48, 0x91, 0x52, 0x52, 0x57, - 0xbe, 0xec, 0x83, 0x3a, 0xd6, 0xba, 0x50, 0xc8, 0x39, 0xaf, 0xde, 0xd3, 0x88, 0x7a, 0xe4, 0x08, - 0x32, 0x14, 0x90, 0xe6, 0x5e, 0xad, 0x57, 0x1b, 0xb4, 0xd8, 0x16, 0xf6, 0x37, 0x0e, 0xe9, 0x58, - 0xd9, 0xf7, 0x92, 0xc7, 0xa8, 0x34, 0x5c, 0x91, 0x18, 0xd5, 0x51, 0xa3, 0xdc, 0x04, 0xee, 0xf8, - 0x94, 0xb9, 0x22, 0x51, 0xda, 0xb3, 0x22, 0x4d, 0x96, 0x95, 0xb6, 0x41, 0xf4, 0x8c, 0x34, 0x24, - 0x00, 0x5e, 0x1a, 0xe9, 0xf6, 0xf0, 0x79, 0xf8, 0xc0, 0x7c, 0xc2, 0x5d, 0xeb, 0x23, 0x52, 0x6e, - 0x82, 0x06, 0x03, 0xc0, 0x0f, 0xe7, 0xcc, 0x5e, 0xa6, 0xaf, 0x89, 0x2b, 0x40, 0x17, 0xdd, 0x1e, - 0xfa, 0xfb, 0x24, 0xc6, 0x13, 0x6b, 0x6b, 0xc2, 0x5c, 0x01, 0xd4, 0x27, 0x64, 0x7e, 0xc5, 0xe7, - 0xd7, 0x19, 0x88, 0x14, 0xbd, 0x43, 0x6d, 0x6d, 0x87, 0xe9, 0x7f, 0x77, 0xaa, 0xbe, 0x9d, 0xa9, - 0x65, 0xfa, 0x6b, 0x7d, 0x6f, 0x6c, 0x3f, 0x55, 0x75, 0x8f, 0x87, 0x2f, 0x1e, 0xb4, 0xa0, 0x15, - 0xcc, 0x39, 0xbd, 0xcd, 0xb8, 0xed, 0xfa, 0x13, 0x52, 0xcb, 0x44, 0xa2, 0x47, 0xd9, 0x61, 0x2a, - 0xa4, 0x01, 0x69, 0xf3, 0x4f, 0x02, 0x2f, 0x72, 0x8c, 0xb1, 0xc8, 0x75, 0x55, 0x1d, 0x46, 0x14, - 0x75, 0xae, 0x19, 0x7a, 0x42, 0x5a, 0x0a, 0xf1, 0xe4, 0x22, 0x36, 0xa6, 0xdb, 0xc3, 0x6e, 0x68, - 0x96, 0x35, 0xdc, 0x2e, 0x6b, 0x38, 0xdd, 0x2e, 0xeb, 0xa8, 0xb9, 0xde, 0x04, 0x07, 0x5f, 0x7e, - 0x06, 0x0e, 0x6b, 0x9a, 0x6b, 0x27, 0xd8, 0xff, 0x7a, 0x3f, 0xb9, 0x53, 0xbe, 0xe4, 0x7b, 0x26, - 0xe7, 0x91, 0x23, 0xfb, 0x07, 0xd9, 0xd1, 0x6d, 0xe1, 0x9f, 0x3e, 0x6b, 0xfb, 0x7d, 0xd6, 0xff, - 0xc7, 0xe7, 0xc8, 0x5b, 0xdf, 0xf9, 0x07, 0x3f, 0xee, 0xfc, 0x83, 0xcf, 0xa5, 0xef, 0xac, 0x4b, - 0xdf, 0xf9, 0x56, 0xfa, 0xce, 0xaf, 0xd2, 0x77, 0x66, 0x0d, 0xad, 0xf0, 0xea, 0x77, 0x00, 0x00, - 0x00, 0xff, 0xff, 0xdd, 0x0e, 0xff, 0x3e, 0x11, 0x04, 0x00, 0x00, + // 555 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0xc1, 0x6a, 0xdb, 0x4c, + 0x10, 0x8e, 0x64, 0xc7, 0xb1, 0xd7, 0xbf, 0x7f, 0xca, 0x12, 0x8a, 0x30, 0x54, 0x32, 0xa6, 0x07, + 0x43, 0x61, 0x85, 0xdd, 0x4b, 0x69, 0xa1, 0x34, 0x6e, 0x52, 0xf0, 0xa1, 0x18, 0x36, 0x3e, 0x94, + 0x5e, 0x82, 0x2c, 0x6d, 0x9c, 0x25, 0xb6, 0x56, 0xec, 0x8e, 0x4c, 0x73, 0xeb, 0x23, 0xf4, 0x25, + 0xfa, 0x2e, 0x3e, 0xf6, 0x54, 0x7a, 0x72, 0x1b, 0x3d, 0x42, 0x9f, 0xa0, 0x68, 0x77, 0xed, 0x98, + 0x42, 0x4d, 0xc8, 0x65, 0x99, 0x6f, 0x98, 0xf9, 0xf6, 0x9b, 0xfd, 0x46, 0x42, 0x67, 0x33, 0x0e, + 0x57, 0xf9, 0x94, 0xc4, 0x62, 0x11, 0xc6, 0x22, 0x85, 0x88, 0xa7, 0x4c, 0x26, 0xbb, 0x61, 0x94, + 0xf1, 0x50, 0x31, 0xb9, 0xe4, 0x31, 0x53, 0x21, 0x5b, 0xb2, 0x14, 0x54, 0xb8, 0xec, 0x87, 0x32, + 0x4f, 0x81, 0x2f, 0x18, 0xc9, 0xa4, 0x00, 0x81, 0x9f, 0xdc, 0x35, 0x90, 0x4d, 0x31, 0x31, 0xc5, + 0x64, 0xd9, 0x6f, 0x1f, 0xcf, 0xc4, 0x4c, 0xe8, 0xca, 0xb0, 0x8c, 0x4c, 0x53, 0x3b, 0x98, 0x09, + 0x31, 0x9b, 0xb3, 0x50, 0xa3, 0x69, 0x7e, 0x19, 0x96, 0x84, 0x0a, 0xa2, 0x45, 0x66, 0x0b, 0x5e, + 0xde, 0x4b, 0x1c, 0xdc, 0x64, 0x4c, 0x85, 0x10, 0xa9, 0x6b, 0x7d, 0x98, 0xde, 0xee, 0x02, 0x35, + 0xa8, 0x91, 0x38, 0x1a, 0xe3, 0x63, 0x74, 0xa8, 0x20, 0xe1, 0xa9, 0xe7, 0x74, 0x9c, 0x5e, 0x83, + 0x1a, 0x80, 0x1f, 0xa3, 0x9a, 0x82, 0x44, 0xe4, 0xe0, 0xb9, 0x3a, 0x6d, 0x91, 0xcd, 0x33, 0x29, + 0xbd, 0xca, 0x36, 0xcf, 0xa4, 0xc4, 0x6d, 0x54, 0x07, 0x26, 0x17, 0x3c, 0x8d, 0xe6, 0x5e, 0xb5, + 0xe3, 0xf4, 0xea, 0x74, 0x8b, 0xbb, 0x13, 0xf4, 0x9f, 0xbd, 0xee, 0xbd, 0xc8, 0x53, 0xc0, 0x18, + 0x55, 0x4b, 0x5d, 0xf6, 0x42, 0x1d, 0x6b, 0x5e, 0x91, 0xcb, 0x98, 0x6d, 0xef, 0xd3, 0x08, 0x7b, + 0xe8, 0x48, 0x64, 0xc0, 0x45, 0xaa, 0xbc, 0x4a, 0xa7, 0xd2, 0x6b, 0xd0, 0x0d, 0xec, 0xfe, 0x76, + 0x50, 0xcb, 0xd2, 0xbe, 0x95, 0x2c, 0x82, 0x92, 0xc3, 0xe5, 0x89, 0x61, 0x1d, 0xd6, 0x8a, 0x75, + 0xe0, 0x8e, 0x4e, 0xa9, 0xcb, 0x93, 0x92, 0x7b, 0x9a, 0xa7, 0xc9, 0x7c, 0xcb, 0x6d, 0x10, 0x1e, + 0xa3, 0x9a, 0x14, 0x02, 0x2e, 0x0d, 0x75, 0x73, 0xf0, 0x8c, 0xec, 0x75, 0x8a, 0xec, 0x0e, 0x31, + 0x44, 0xc5, 0x3a, 0xa8, 0x51, 0x21, 0xe0, 0xdd, 0x39, 0xb5, 0x34, 0xf8, 0x0d, 0x72, 0xb9, 0xd0, + 0xe3, 0x37, 0x07, 0xbd, 0xfb, 0x91, 0x8d, 0xc6, 0x56, 0xea, 0x98, 0xba, 0x5c, 0x60, 0x1f, 0xa1, + 0xf8, 0x8a, 0xc5, 0xd7, 0x99, 0xe0, 0x29, 0x78, 0x87, 0x5a, 0xee, 0x4e, 0xa6, 0xfb, 0xdd, 0xd9, + 0xbe, 0xe5, 0x59, 0x49, 0xf5, 0xcf, 0x99, 0x5f, 0xd8, 0x37, 0x2e, 0x27, 0xfe, 0x7f, 0xf0, 0x74, + 0x57, 0xcc, 0xb2, 0x4f, 0xf4, 0x5a, 0x10, 0xcd, 0x60, 0xce, 0xc9, 0x4d, 0xc6, 0xac, 0x13, 0x8f, + 0x50, 0x25, 0xe3, 0x89, 0xb6, 0xb7, 0x45, 0xcb, 0x10, 0x07, 0xa8, 0xc9, 0x3e, 0x71, 0xb8, 0x50, + 0x10, 0x41, 0xae, 0xf4, 0x7c, 0x2d, 0x8a, 0xca, 0xd4, 0xb9, 0xce, 0xe0, 0x13, 0xd4, 0x28, 0x11, + 0x4b, 0x2e, 0x22, 0x23, 0xba, 0x39, 0x68, 0x13, 0xb3, 0xc0, 0x64, 0xb3, 0xc0, 0x64, 0xb2, 0x59, + 0xe0, 0x61, 0x7d, 0xb5, 0x0e, 0x0e, 0xbe, 0xfc, 0x0c, 0x1c, 0x5a, 0x37, 0x6d, 0x27, 0xd0, 0xfd, + 0x7a, 0xe7, 0xe6, 0x29, 0x9b, 0xb3, 0x3d, 0x6e, 0x7a, 0xe8, 0xc8, 0x7e, 0x5f, 0xd6, 0xce, 0x0d, + 0xfc, 0x5b, 0x67, 0x65, 0xbf, 0xce, 0xea, 0x43, 0x74, 0x0e, 0x3f, 0xac, 0x6e, 0xfd, 0x83, 0x1f, + 0xb7, 0xfe, 0xc1, 0xe7, 0xc2, 0x77, 0x56, 0x85, 0xef, 0x7c, 0x2b, 0x7c, 0xe7, 0x57, 0xe1, 0x3b, + 0x1f, 0x5f, 0x3f, 0xf0, 0x6f, 0xf1, 0xca, 0x44, 0xd3, 0x9a, 0x56, 0xf0, 0xfc, 0x4f, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xe0, 0x7b, 0x76, 0x39, 0x76, 0x04, 0x00, 0x00, } diff --git a/api/types/event/runtime.proto b/api/services/events/v1/runtime.proto similarity index 88% rename from api/types/event/runtime.proto rename to api/services/events/v1/runtime.proto index 42f475a73..6034e6483 100644 --- a/api/types/event/runtime.proto +++ b/api/services/events/v1/runtime.proto @@ -1,11 +1,13 @@ syntax = "proto3"; -package containerd.v1.types; +package containerd.services.events.v1; import "gogoproto/gogo.proto"; import "google/protobuf/timestamp.proto"; import "github.com/containerd/containerd/api/types/task/task.proto"; +option go_package = "github.com/containerd/containerd/api/services/events/v1;events"; + message RuntimeIO { string stdin = 1; string stdout = 2; diff --git a/api/types/event/snapshot.pb.go b/api/services/events/v1/snapshot.pb.go similarity index 89% rename from api/types/event/snapshot.pb.go rename to api/services/events/v1/snapshot.pb.go index e429d27ca..0d8e5208f 100644 --- a/api/types/event/snapshot.pb.go +++ b/api/services/events/v1/snapshot.pb.go @@ -1,8 +1,8 @@ // Code generated by protoc-gen-gogo. -// source: github.com/containerd/containerd/api/types/event/snapshot.proto +// source: github.com/containerd/containerd/api/services/events/v1/snapshot.proto // DO NOT EDIT! -package event +package events import proto "github.com/gogo/protobuf/proto" import fmt "fmt" @@ -45,9 +45,9 @@ func (*SnapshotRemove) ProtoMessage() {} func (*SnapshotRemove) Descriptor() ([]byte, []int) { return fileDescriptorSnapshot, []int{2} } func init() { - proto.RegisterType((*SnapshotPrepare)(nil), "containerd.v1.types.SnapshotPrepare") - proto.RegisterType((*SnapshotCommit)(nil), "containerd.v1.types.SnapshotCommit") - proto.RegisterType((*SnapshotRemove)(nil), "containerd.v1.types.SnapshotRemove") + proto.RegisterType((*SnapshotPrepare)(nil), "containerd.services.events.v1.SnapshotPrepare") + proto.RegisterType((*SnapshotCommit)(nil), "containerd.services.events.v1.SnapshotCommit") + proto.RegisterType((*SnapshotRemove)(nil), "containerd.services.events.v1.SnapshotRemove") } func (m *SnapshotPrepare) Marshal() (dAtA []byte, err error) { size := m.Size() @@ -652,22 +652,23 @@ var ( ) func init() { - proto.RegisterFile("github.com/containerd/containerd/api/types/event/snapshot.proto", fileDescriptorSnapshot) + proto.RegisterFile("github.com/containerd/containerd/api/services/events/v1/snapshot.proto", fileDescriptorSnapshot) } var fileDescriptorSnapshot = []byte{ - // 201 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4f, 0xcf, 0x2c, 0xc9, + // 219 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x72, 0x4b, 0xcf, 0x2c, 0xc9, 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, 0x96, 0xa5, - 0xe6, 0x95, 0xe8, 0x17, 0xe7, 0x25, 0x16, 0x14, 0x67, 0xe4, 0x97, 0xe8, 0x15, 0x14, 0xe5, 0x97, - 0xe4, 0x0b, 0x09, 0x23, 0x94, 0xea, 0x95, 0x19, 0xea, 0x81, 0x55, 0x2a, 0x59, 0x73, 0xf1, 0x07, - 0x43, 0x95, 0x05, 0x14, 0xa5, 0x16, 0x24, 0x16, 0xa5, 0x0a, 0x09, 0x70, 0x31, 0x67, 0xa7, 0x56, - 0x4a, 0x30, 0x2a, 0x30, 0x6a, 0x70, 0x06, 0x81, 0x98, 0x42, 0x62, 0x5c, 0x6c, 0x20, 0x99, 0xbc, - 0x12, 0x09, 0x26, 0xb0, 0x20, 0x94, 0xa7, 0x64, 0xc6, 0xc5, 0x07, 0xd3, 0xec, 0x9c, 0x9f, 0x9b, - 0x9b, 0x59, 0x82, 0x45, 0xaf, 0x10, 0x17, 0x4b, 0x5e, 0x62, 0x6e, 0x2a, 0x54, 0x27, 0x98, 0xad, - 0xa4, 0x84, 0xd0, 0x17, 0x94, 0x9a, 0x9b, 0x5f, 0x86, 0xc5, 0x4e, 0x27, 0x89, 0x13, 0x0f, 0xe5, - 0x18, 0x6e, 0x3c, 0x94, 0x63, 0x68, 0x78, 0x24, 0xc7, 0x78, 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, - 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x26, 0xb1, 0x81, 0xbd, 0x63, 0x0c, 0x08, 0x00, 0x00, 0xff, - 0xff, 0x5e, 0xad, 0x28, 0x20, 0x11, 0x01, 0x00, 0x00, + 0x4a, 0x41, 0x66, 0x26, 0x16, 0x64, 0xea, 0x17, 0xa7, 0x16, 0x95, 0x65, 0x26, 0xa7, 0x16, 0xeb, + 0xa7, 0x96, 0xa5, 0xe6, 0x95, 0x14, 0xeb, 0x97, 0x19, 0xea, 0x17, 0xe7, 0x25, 0x16, 0x14, 0x67, + 0xe4, 0x97, 0xe8, 0x15, 0x14, 0xe5, 0x97, 0xe4, 0x0b, 0xc9, 0x22, 0x74, 0xe8, 0xc1, 0x54, 0xeb, + 0x41, 0x54, 0xeb, 0x95, 0x19, 0x2a, 0x59, 0x73, 0xf1, 0x07, 0x43, 0x35, 0x04, 0x14, 0xa5, 0x16, + 0x24, 0x16, 0xa5, 0x0a, 0x09, 0x70, 0x31, 0x67, 0xa7, 0x56, 0x4a, 0x30, 0x2a, 0x30, 0x6a, 0x70, + 0x06, 0x81, 0x98, 0x42, 0x62, 0x5c, 0x6c, 0x20, 0x99, 0xbc, 0x12, 0x09, 0x26, 0xb0, 0x20, 0x94, + 0xa7, 0x64, 0xc6, 0xc5, 0x07, 0xd3, 0xec, 0x9c, 0x9f, 0x9b, 0x9b, 0x59, 0x82, 0x45, 0xaf, 0x10, + 0x17, 0x4b, 0x5e, 0x62, 0x6e, 0x2a, 0x54, 0x27, 0x98, 0xad, 0xa4, 0x84, 0xd0, 0x17, 0x94, 0x9a, + 0x9b, 0x5f, 0x86, 0xc5, 0x4e, 0xa7, 0x88, 0x13, 0x0f, 0xe5, 0x18, 0x6e, 0x3c, 0x94, 0x63, 0x68, + 0x78, 0x24, 0xc7, 0x78, 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, + 0x46, 0xd9, 0x91, 0x19, 0x32, 0xd6, 0x10, 0x56, 0x12, 0x1b, 0x38, 0x60, 0x8c, 0x01, 0x01, 0x00, + 0x00, 0xff, 0xff, 0x10, 0x4c, 0x3d, 0xb2, 0x62, 0x01, 0x00, 0x00, } diff --git a/api/types/event/snapshot.proto b/api/services/events/v1/snapshot.proto similarity index 60% rename from api/types/event/snapshot.proto rename to api/services/events/v1/snapshot.proto index 447bd9ce7..a88f47d87 100644 --- a/api/types/event/snapshot.proto +++ b/api/services/events/v1/snapshot.proto @@ -1,6 +1,8 @@ syntax = "proto3"; -package containerd.v1.types; +package containerd.services.events.v1; + +option go_package = "github.com/containerd/containerd/api/services/events/v1;events"; message SnapshotPrepare { string key = 1; diff --git a/api/types/event/task.pb.go b/api/services/events/v1/task.pb.go similarity index 88% rename from api/types/event/task.pb.go rename to api/services/events/v1/task.pb.go index e1d57c947..d80459721 100644 --- a/api/types/event/task.pb.go +++ b/api/services/events/v1/task.pb.go @@ -1,8 +1,8 @@ // Code generated by protoc-gen-gogo. -// source: github.com/containerd/containerd/api/types/event/task.proto +// source: github.com/containerd/containerd/api/services/events/v1/task.proto // DO NOT EDIT! -package event +package events import proto "github.com/gogo/protobuf/proto" import fmt "fmt" @@ -45,9 +45,9 @@ func (*TaskDelete) ProtoMessage() {} func (*TaskDelete) Descriptor() ([]byte, []int) { return fileDescriptorTask, []int{2} } func init() { - proto.RegisterType((*TaskCreate)(nil), "containerd.v1.types.TaskCreate") - proto.RegisterType((*TaskStart)(nil), "containerd.v1.types.TaskStart") - proto.RegisterType((*TaskDelete)(nil), "containerd.v1.types.TaskDelete") + proto.RegisterType((*TaskCreate)(nil), "containerd.services.events.v1.TaskCreate") + proto.RegisterType((*TaskStart)(nil), "containerd.services.events.v1.TaskStart") + proto.RegisterType((*TaskDelete)(nil), "containerd.services.events.v1.TaskDelete") } func (m *TaskCreate) Marshal() (dAtA []byte, err error) { size := m.Size() @@ -628,24 +628,25 @@ var ( ) func init() { - proto.RegisterFile("github.com/containerd/containerd/api/types/event/task.proto", fileDescriptorTask) + proto.RegisterFile("github.com/containerd/containerd/api/services/events/v1/task.proto", fileDescriptorTask) } var fileDescriptorTask = []byte{ - // 228 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4e, 0xcf, 0x2c, 0xc9, + // 245 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x72, 0x4a, 0xcf, 0x2c, 0xc9, 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, 0x96, 0xa5, - 0xe6, 0x95, 0xe8, 0x97, 0x24, 0x16, 0x67, 0xeb, 0x15, 0x14, 0xe5, 0x97, 0xe4, 0x0b, 0x09, 0x23, - 0x94, 0xe9, 0x95, 0x19, 0xea, 0x81, 0x55, 0x29, 0x39, 0x70, 0x71, 0x85, 0x24, 0x16, 0x67, 0x3b, - 0x17, 0xa5, 0x26, 0x96, 0xa4, 0x0a, 0x19, 0x71, 0xf1, 0xc0, 0x15, 0xc5, 0x67, 0xa6, 0x48, 0x30, - 0x2a, 0x30, 0x6a, 0x70, 0x3a, 0xf1, 0x3f, 0xba, 0x27, 0xcf, 0xed, 0x0c, 0x13, 0xf7, 0x74, 0x09, - 0xe2, 0x86, 0x2b, 0xf2, 0x4c, 0x51, 0xb2, 0xe7, 0xe2, 0x04, 0x99, 0x10, 0x5c, 0x92, 0x58, 0x54, - 0x42, 0x96, 0x01, 0xc5, 0x10, 0x27, 0xb8, 0xa4, 0xe6, 0xa4, 0x92, 0xe7, 0x04, 0x21, 0x01, 0x2e, - 0xe6, 0x82, 0xcc, 0x14, 0x09, 0x26, 0x05, 0x46, 0x0d, 0xde, 0x20, 0x10, 0x53, 0x48, 0x9e, 0x8b, - 0x3b, 0xb5, 0x22, 0xb3, 0x24, 0xbe, 0xb8, 0x24, 0xb1, 0xa4, 0xb4, 0x58, 0x82, 0x19, 0x2c, 0xc3, - 0x05, 0x12, 0x0a, 0x06, 0x8b, 0x38, 0x49, 0x9c, 0x78, 0x28, 0xc7, 0x70, 0xe3, 0xa1, 0x1c, 0x43, - 0xc3, 0x23, 0x39, 0xc6, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, - 0x31, 0x89, 0x0d, 0x1c, 0x5a, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0e, 0x43, 0xc1, 0x0e, - 0x6c, 0x01, 0x00, 0x00, + 0x4a, 0x41, 0x66, 0x26, 0x16, 0x64, 0xea, 0x17, 0xa7, 0x16, 0x95, 0x65, 0x26, 0xa7, 0x16, 0xeb, + 0xa7, 0x96, 0xa5, 0xe6, 0x95, 0x14, 0xeb, 0x97, 0x19, 0xea, 0x97, 0x24, 0x16, 0x67, 0xeb, 0x15, + 0x14, 0xe5, 0x97, 0xe4, 0x0b, 0xc9, 0x22, 0x54, 0xeb, 0xc1, 0x54, 0xea, 0x41, 0x54, 0xea, 0x95, + 0x19, 0x2a, 0x39, 0x70, 0x71, 0x85, 0x24, 0x16, 0x67, 0x3b, 0x17, 0xa5, 0x26, 0x96, 0xa4, 0x0a, + 0x19, 0x71, 0xf1, 0xc0, 0x95, 0xc7, 0x67, 0xa6, 0x48, 0x30, 0x2a, 0x30, 0x6a, 0x70, 0x3a, 0xf1, + 0x3f, 0xba, 0x27, 0xcf, 0xed, 0x0c, 0x13, 0xf7, 0x74, 0x09, 0xe2, 0x86, 0x2b, 0xf2, 0x4c, 0x51, + 0xb2, 0xe7, 0xe2, 0x04, 0x99, 0x10, 0x5c, 0x92, 0x58, 0x54, 0x42, 0x96, 0x01, 0xc5, 0x10, 0x27, + 0xb8, 0xa4, 0xe6, 0xa4, 0x92, 0xe7, 0x04, 0x21, 0x01, 0x2e, 0xe6, 0x82, 0xcc, 0x14, 0x09, 0x26, + 0x05, 0x46, 0x0d, 0xde, 0x20, 0x10, 0x53, 0x48, 0x9e, 0x8b, 0x3b, 0xb5, 0x22, 0xb3, 0x24, 0xbe, + 0xb8, 0x24, 0xb1, 0xa4, 0xb4, 0x58, 0x82, 0x19, 0x2c, 0xc3, 0x05, 0x12, 0x0a, 0x06, 0x8b, 0x38, + 0x45, 0x9c, 0x78, 0x28, 0xc7, 0x70, 0xe3, 0xa1, 0x1c, 0x43, 0xc3, 0x23, 0x39, 0xc6, 0x13, 0x8f, + 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, 0x31, 0xca, 0x8e, 0xcc, 0x40, 0xb7, + 0x86, 0xb0, 0x92, 0xd8, 0xc0, 0xe1, 0x6e, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x52, 0xb1, + 0x6e, 0xbd, 0x01, 0x00, 0x00, } diff --git a/api/types/event/task.proto b/api/services/events/v1/task.proto similarity index 62% rename from api/types/event/task.proto rename to api/services/events/v1/task.proto index 78cfeff29..179c71cae 100644 --- a/api/types/event/task.proto +++ b/api/services/events/v1/task.proto @@ -1,6 +1,8 @@ syntax = "proto3"; -package containerd.v1.types; +package containerd.services.events.v1; + +option go_package = "github.com/containerd/containerd/api/services/events/v1;events"; message TaskCreate { string container_id = 1; diff --git a/api/types/event/event.pb.go b/api/types/event/event.pb.go deleted file mode 100644 index 30f205490..000000000 --- a/api/types/event/event.pb.go +++ /dev/null @@ -1,429 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: github.com/containerd/containerd/api/types/event/event.proto -// DO NOT EDIT! - -package event - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" -import _ "github.com/gogo/protobuf/types" -import google_protobuf2 "github.com/gogo/protobuf/types" - -import time "time" - -import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" - -import strings "strings" -import reflect "reflect" - -import io "io" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf -var _ = time.Kitchen - -type Envelope struct { - Timestamp time.Time `protobuf:"bytes,1,opt,name=timestamp,stdtime" json:"timestamp"` - Topic string `protobuf:"bytes,2,opt,name=topic,proto3" json:"topic,omitempty"` - Event *google_protobuf2.Any `protobuf:"bytes,3,opt,name=event" json:"event,omitempty"` -} - -func (m *Envelope) Reset() { *m = Envelope{} } -func (*Envelope) ProtoMessage() {} -func (*Envelope) Descriptor() ([]byte, []int) { return fileDescriptorEvent, []int{0} } - -func init() { - proto.RegisterType((*Envelope)(nil), "containerd.v1.types.Envelope") -} -func (m *Envelope) 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 *Envelope) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintEvent(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp))) - n1, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Timestamp, dAtA[i:]) - if err != nil { - return 0, err - } - i += n1 - if len(m.Topic) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintEvent(dAtA, i, uint64(len(m.Topic))) - i += copy(dAtA[i:], m.Topic) - } - if m.Event != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintEvent(dAtA, i, uint64(m.Event.Size())) - n2, err := m.Event.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n2 - } - return i, nil -} - -func encodeFixed64Event(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Event(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} -func encodeVarintEvent(dAtA []byte, offset int, v uint64) int { - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return offset + 1 -} -func (m *Envelope) Size() (n int) { - var l int - _ = l - l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp) - n += 1 + l + sovEvent(uint64(l)) - l = len(m.Topic) - if l > 0 { - n += 1 + l + sovEvent(uint64(l)) - } - if m.Event != nil { - l = m.Event.Size() - n += 1 + l + sovEvent(uint64(l)) - } - return n -} - -func sovEvent(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozEvent(x uint64) (n int) { - return sovEvent(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *Envelope) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Envelope{`, - `Timestamp:` + strings.Replace(strings.Replace(this.Timestamp.String(), "Timestamp", "google_protobuf1.Timestamp", 1), `&`, ``, 1) + `,`, - `Topic:` + fmt.Sprintf("%v", this.Topic) + `,`, - `Event:` + strings.Replace(fmt.Sprintf("%v", this.Event), "Any", "google_protobuf2.Any", 1) + `,`, - `}`, - }, "") - return s -} -func valueToStringEvent(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *Envelope) 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 ErrIntOverflowEvent - } - 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: Envelope: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Envelope: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvent - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvent - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Timestamp, dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Topic", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvent - } - 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 ErrInvalidLengthEvent - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Topic = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Event", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvent - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvent - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Event == nil { - m.Event = &google_protobuf2.Any{} - } - if err := m.Event.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipEvent(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthEvent - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipEvent(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowEvent - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowEvent - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - return iNdEx, nil - case 1: - iNdEx += 8 - return iNdEx, nil - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowEvent - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - iNdEx += length - if length < 0 { - return 0, ErrInvalidLengthEvent - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowEvent - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - innerWire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - innerWireType := int(innerWire & 0x7) - if innerWireType == 4 { - break - } - next, err := skipEvent(dAtA[start:]) - if err != nil { - return 0, err - } - iNdEx = start + next - } - return iNdEx, nil - case 4: - return iNdEx, nil - case 5: - iNdEx += 4 - return iNdEx, nil - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - } - panic("unreachable") -} - -var ( - ErrInvalidLengthEvent = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowEvent = fmt.Errorf("proto: integer overflow") -) - -func init() { - proto.RegisterFile("github.com/containerd/containerd/api/types/event/event.proto", fileDescriptorEvent) -} - -var fileDescriptorEvent = []byte{ - // 248 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x49, 0xcf, 0x2c, 0xc9, - 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, 0x96, 0xa5, - 0xe6, 0x95, 0x40, 0x48, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x61, 0x84, 0x3a, 0xbd, 0x32, - 0x43, 0x3d, 0xb0, 0x32, 0x29, 0x91, 0xf4, 0xfc, 0xf4, 0x7c, 0xb0, 0xbc, 0x3e, 0x88, 0x05, 0x51, - 0x2a, 0x25, 0x9f, 0x9e, 0x9f, 0x9f, 0x9e, 0x93, 0xaa, 0x0f, 0xe6, 0x25, 0x95, 0xa6, 0xe9, 0x97, - 0x64, 0xe6, 0xa6, 0x16, 0x97, 0x24, 0xe6, 0x16, 0x40, 0x15, 0x48, 0xa2, 0x2b, 0x48, 0xcc, 0xab, - 0x84, 0x48, 0x29, 0x4d, 0x60, 0xe4, 0xe2, 0x70, 0xcd, 0x2b, 0x4b, 0xcd, 0xc9, 0x2f, 0x48, 0x15, - 0x72, 0xe2, 0xe2, 0x84, 0x6b, 0x95, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x36, 0x92, 0xd2, 0x83, 0xe8, - 0xd5, 0x83, 0xe9, 0xd5, 0x0b, 0x81, 0xa9, 0x70, 0xe2, 0x38, 0x71, 0x4f, 0x9e, 0x61, 0xc2, 0x7d, - 0x79, 0xc6, 0x20, 0x84, 0x36, 0x21, 0x11, 0x2e, 0xd6, 0x92, 0xfc, 0x82, 0xcc, 0x64, 0x09, 0x26, - 0x05, 0x46, 0x0d, 0xce, 0x20, 0x08, 0x47, 0x48, 0x8b, 0x8b, 0x15, 0xec, 0x39, 0x09, 0x66, 0xb0, - 0xa9, 0x22, 0x18, 0xa6, 0x3a, 0xe6, 0x55, 0x06, 0x41, 0x94, 0x38, 0x49, 0x9c, 0x78, 0x28, 0xc7, - 0x70, 0xe3, 0xa1, 0x1c, 0x43, 0xc3, 0x23, 0x39, 0xc6, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, - 0x63, 0x7c, 0xf0, 0x48, 0x8e, 0x31, 0x89, 0x0d, 0xac, 0xdc, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, - 0xb7, 0xff, 0x84, 0x18, 0x5a, 0x01, 0x00, 0x00, -} diff --git a/api/types/event/event.proto b/api/types/event/event.proto deleted file mode 100644 index 51e509a04..000000000 --- a/api/types/event/event.proto +++ /dev/null @@ -1,13 +0,0 @@ -syntax = "proto3"; - -package containerd.v1.types; - -import "gogoproto/gogo.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/any.proto"; - -message Envelope { - google.protobuf.Timestamp timestamp = 1 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; - string topic = 2; - google.protobuf.Any event = 3; -} diff --git a/api/types/event/namespace.proto b/api/types/event/namespace.proto deleted file mode 100644 index 56eb73b6a..000000000 --- a/api/types/event/namespace.proto +++ /dev/null @@ -1,17 +0,0 @@ -syntax = "proto3"; - -package containerd.v1.types; - -message NamespaceCreate { - string name = 1; - map labels = 2; -} - -message NamespaceUpdate { - string name = 1; - map labels = 2; -} - -message NamespaceDelete { - string name = 1; -} diff --git a/cmd/ctr/events.go b/cmd/ctr/events.go index 8768c9e91..da3cdf547 100644 --- a/cmd/ctr/events.go +++ b/cmd/ctr/events.go @@ -7,8 +7,7 @@ import ( "text/tabwriter" eventsapi "github.com/containerd/containerd/api/services/events/v1" - "github.com/containerd/containerd/api/types/event" - "github.com/gogo/protobuf/proto" + "github.com/containerd/containerd/events" "github.com/urfave/cli" ) @@ -56,118 +55,55 @@ var eventsCommand = cli.Command{ }, } -func getEventOutput(evt *event.Envelope) (string, error) { - +func getEventOutput(env *eventsapi.Envelope) (string, error) { out := "" - switch evt.Event.TypeUrl { - case "types.containerd.io/containerd.v1.types.event.ContainerCreate": - e := &event.ContainerCreate{} - if err := proto.Unmarshal(evt.Event.Value, e); err != nil { - return out, err - } + + var de events.DynamicEvent + if err := events.UnmarshalEvent(env.Event, &de); err != nil { + return "", err + } + + switch e := de.Event.(type) { + case *eventsapi.ContainerCreate: out = fmt.Sprintf("id=%s image=%s runtime=%s", e.ContainerID, e.Image, e.Runtime) - case "types.containerd.io/containerd.v1.types.event.TaskCreate": - e := &event.TaskCreate{} - if err := proto.Unmarshal(evt.Event.Value, e); err != nil { - return out, err - } + case *eventsapi.TaskCreate: out = "id=" + e.ContainerID - case "types.containerd.io/containerd.v1.types.event.TaskStart": - e := &event.TaskStart{} - if err := proto.Unmarshal(evt.Event.Value, e); err != nil { - return out, err - } + case *eventsapi.TaskStart: out = "id=" + e.ContainerID - case "types.containerd.io/containerd.v1.types.event.TaskDelete": - e := &event.TaskDelete{} - if err := proto.Unmarshal(evt.Event.Value, e); err != nil { - return out, err - } + case *eventsapi.TaskDelete: out = fmt.Sprintf("id=%s pid=%d status=%d", e.ContainerID, e.Pid, e.ExitStatus) - case "types.containerd.io/containerd.v1.types.event.ContainerUpdate": - e := &event.ContainerUpdate{} - if err := proto.Unmarshal(evt.Event.Value, e); err != nil { - return out, err - } + case *eventsapi.ContainerUpdate: out = "id=" + e.ContainerID - case "types.containerd.io/containerd.v1.types.event.ContainerDelete": - e := &event.ContainerDelete{} - if err := proto.Unmarshal(evt.Event.Value, e); err != nil { - return out, err - } + case *eventsapi.ContainerDelete: out = "id=" + e.ContainerID - case "types.containerd.io/containerd.v1.types.event.SnapshotPrepare": - e := &event.SnapshotPrepare{} - if err := proto.Unmarshal(evt.Event.Value, e); err != nil { - return out, err - } + case *eventsapi.SnapshotPrepare: out = fmt.Sprintf("key=%s parent=%s", e.Key, e.Parent) - case "types.containerd.io/containerd.v1.types.event.SnapshotCommit": - e := &event.SnapshotCommit{} - if err := proto.Unmarshal(evt.Event.Value, e); err != nil { - return out, err - } + case *eventsapi.SnapshotCommit: out = fmt.Sprintf("key=%s name=%s", e.Key, e.Name) - case "types.containerd.io/containerd.v1.types.event.SnapshotRemove": - e := &event.SnapshotRemove{} - if err := proto.Unmarshal(evt.Event.Value, e); err != nil { - return out, err - } + case *eventsapi.SnapshotRemove: out = "key=" + e.Key - case "types.containerd.io/containerd.v1.types.event.ImageUpdate": - e := &event.ImageUpdate{} - if err := proto.Unmarshal(evt.Event.Value, e); err != nil { - return out, err - } + case *eventsapi.ImageUpdate: out = fmt.Sprintf("name=%s labels=%s", e.Name, e.Labels) - case "types.containerd.io/containerd.v1.types.event.ImageDelete": - e := &event.ImageDelete{} - if err := proto.Unmarshal(evt.Event.Value, e); err != nil { - return out, err - } + case *eventsapi.ImageDelete: out = "name=" + e.Name - case "types.containerd.io/containerd.v1.types.event.NamespaceCreate": - e := &event.NamespaceCreate{} - if err := proto.Unmarshal(evt.Event.Value, e); err != nil { - return out, err - } + case *eventsapi.NamespaceCreate: out = fmt.Sprintf("name=%s labels=%s", e.Name, e.Labels) - case "types.containerd.io/containerd.v1.types.event.NamespaceUpdate": - e := &event.NamespaceUpdate{} - if err := proto.Unmarshal(evt.Event.Value, e); err != nil { - return out, err - } + case *eventsapi.NamespaceUpdate: out = fmt.Sprintf("name=%s labels=%s", e.Name, e.Labels) - case "types.containerd.io/containerd.v1.types.event.NamespaceDelete": - e := &event.NamespaceDelete{} - if err := proto.Unmarshal(evt.Event.Value, e); err != nil { - return out, err - } + case *eventsapi.NamespaceDelete: out = "name=" + e.Name - case "types.containerd.io/containerd.v1.types.event.RuntimeCreate": - e := &event.RuntimeCreate{} - if err := proto.Unmarshal(evt.Event.Value, e); err != nil { - return out, err - } + case *eventsapi.RuntimeCreate: mounts := []string{} for _, m := range e.RootFS { mounts = append(mounts, fmt.Sprintf("type=%s:src=%s", m.Type, m.Source)) } out = fmt.Sprintf("id=%s bundle=%s rootfs=%s checkpoint=%s", e.ID, e.Bundle, strings.Join(mounts, ","), e.Checkpoint) - case "types.containerd.io/containerd.v1.types.event.RuntimeEvent": - e := &event.RuntimeEvent{} - if err := proto.Unmarshal(evt.Event.Value, e); err != nil { - return out, err - } + case *eventsapi.RuntimeEvent: out = fmt.Sprintf("id=%s type=%s pid=%d status=%d exited=%s", e.ID, e.Type, e.Pid, e.ExitStatus, e.ExitedAt) - case "types.containerd.io/containerd.v1.types.event.RuntimeDelete": - e := &event.RuntimeDelete{} - if err := proto.Unmarshal(evt.Event.Value, e); err != nil { - return out, err - } + case *eventsapi.RuntimeDelete: out = fmt.Sprintf("id=%s runtime=%s status=%d exited=%s", e.ID, e.Runtime, e.ExitStatus, e.ExitedAt) default: - out = evt.Event.TypeUrl + out = env.Event.TypeUrl } return out, nil diff --git a/events/convert.go b/events/convert.go index b7f2470a9..d9872298f 100644 --- a/events/convert.go +++ b/events/convert.go @@ -1,92 +1,72 @@ package events import ( - "path" - "strings" - - "github.com/containerd/containerd/api/types/event" "github.com/gogo/protobuf/proto" - protobuf "github.com/gogo/protobuf/types" + "github.com/gogo/protobuf/types" "github.com/pkg/errors" ) -func getUrl(name string) string { - base := "types.containerd.io" - return path.Join(base, strings.Join([]string{ - "containerd", - EventVersion, - "types", - "event", - name, - }, ".")) -} +const ( + typesPrefix = "types.containerd.io/" +) -func convertToAny(evt Event) (*protobuf.Any, error) { - url := "" - var pb proto.Message - switch v := evt.(type) { - case event.ContainerCreate: - url = getUrl("ContainerCreate") - pb = &v - case event.ContainerDelete: - url = getUrl("ContainerDelete") - pb = &v - case event.TaskCreate: - url = getUrl("TaskCreate") - pb = &v - case event.TaskStart: - url = getUrl("TaskStart") - pb = &v - case event.TaskDelete: - url = getUrl("TaskDelete") - pb = &v - case event.ContentDelete: - url = getUrl("ContentDelete") - pb = &v - case event.SnapshotPrepare: - url = getUrl("SnapshotPrepare") - pb = &v - case event.SnapshotCommit: - url = getUrl("SnapshotCommit") - pb = &v - case event.SnapshotRemove: - url = getUrl("SnapshotRemove") - pb = &v - case event.ImageUpdate: - url = getUrl("ImageUpdate") - pb = &v - case event.ImageDelete: - url = getUrl("ImageDelete") - pb = &v - case event.NamespaceCreate: - url = getUrl("NamespaceCreate") - pb = &v - case event.NamespaceUpdate: - url = getUrl("NamespaceUpdate") - pb = &v - case event.NamespaceDelete: - url = getUrl("NamespaceDelete") - pb = &v - case event.RuntimeCreate: - url = getUrl("RuntimeCreate") - pb = &v - case event.RuntimeEvent: - url = getUrl("RuntimeEvent") - pb = &v - case event.RuntimeDelete: - url = getUrl("RuntimeDelete") - pb = &v - default: - return nil, errors.Errorf("unsupported event type: %T", v) +// MarshalEvent marshal the event into an any, namespacing the type url to the +// containerd types. +func MarshalEvent(event Event) (*types.Any, error) { + pb, ok := event.(proto.Message) + if !ok { + return nil, errors.Errorf("%T not a protobuf", event) } + url := typesPrefix + proto.MessageName(pb) val, err := proto.Marshal(pb) if err != nil { return nil, err } - return &protobuf.Any{ + return &types.Any{ TypeUrl: url, Value: val, }, nil } + +// DynamEvent acts as a holder type for unmarshaling events where the type is +// not previously known. +type DynamicEvent struct { + Event +} + +// UnmarshalEvent provides an event object based on the provided any. +// +// Use with DynamicEvent (or protobuf/types.DynamicAny) if the type is not +// known before hand. +func UnmarshalEvent(any *types.Any, event Event) error { + switch v := event.(type) { + case proto.Message: + if err := types.UnmarshalAny(any, v); err != nil { + return errors.Wrapf(err, "failed to unmarshal event %v", any) + } + case *DynamicEvent: + var da types.DynamicAny + + if err := types.UnmarshalAny(any, &da); err != nil { + return errors.Wrapf(err, "failed to unmarshal event %v", any) + } + v.Event = da.Message + default: + return errors.Errorf("unsupported event type: %T", event) + } + + return nil + +} + +// Is returns true if the event in any will unmarashal into the provided event. +func Is(any *types.Any, event Event) bool { + pb, ok := event.(proto.Message) + if !ok { + return false + } + + return types.Is(any, pb) +} diff --git a/events/emitter.go b/events/emitter.go index a6bbed1ab..ed3902146 100644 --- a/events/emitter.go +++ b/events/emitter.go @@ -4,7 +4,7 @@ import ( "context" "sync" - "github.com/containerd/containerd/api/types/event" + events "github.com/containerd/containerd/api/services/events/v1" "github.com/containerd/containerd/namespaces" goevents "github.com/docker/go-events" ) @@ -38,12 +38,12 @@ func (e *Emitter) Post(ctx context.Context, evt Event) error { return nil } -func (e *Emitter) Events(ctx context.Context, clientID string) chan *event.Envelope { +func (e *Emitter) Events(ctx context.Context, clientID string) chan *events.Envelope { e.m.Lock() if _, ok := e.sinks[clientID]; !ok { ns, _ := namespaces.Namespace(ctx) s := &eventSink{ - ch: make(chan *event.Envelope), + ch: make(chan *events.Envelope), ns: ns, } e.sinks[clientID] = s diff --git a/events/sink.go b/events/sink.go index 9ae5912be..8d94b1b93 100644 --- a/events/sink.go +++ b/events/sink.go @@ -5,7 +5,7 @@ import ( "time" "github.com/Sirupsen/logrus" - "github.com/containerd/containerd/api/types/event" + "github.com/containerd/containerd/api/services/events/v1" "github.com/containerd/containerd/namespaces" goevents "github.com/docker/go-events" "github.com/pkg/errors" @@ -18,7 +18,7 @@ type sinkEvent struct { type eventSink struct { ns string - ch chan *event.Envelope + ch chan *events.Envelope } func (s *eventSink) Write(evt goevents.Event) error { @@ -34,7 +34,7 @@ func (s *eventSink) Write(evt goevents.Event) error { return nil } - eventData, err := convertToAny(e.event) + eventData, err := MarshalEvent(e.event) if err != nil { return err } @@ -45,7 +45,7 @@ func (s *eventSink) Write(evt goevents.Event) error { "ns": ns, }).Debug("event") - s.ch <- &event.Envelope{ + s.ch <- &events.Envelope{ Timestamp: time.Now(), Topic: topic, Event: eventData, diff --git a/linux/runtime.go b/linux/runtime.go index 28a9099b8..be3285323 100644 --- a/linux/runtime.go +++ b/linux/runtime.go @@ -16,8 +16,8 @@ import ( "google.golang.org/grpc" + eventsapi "github.com/containerd/containerd/api/services/events/v1" "github.com/containerd/containerd/api/services/shim/v1" - "github.com/containerd/containerd/api/types/event" "github.com/containerd/containerd/api/types/mount" "github.com/containerd/containerd/api/types/task" "github.com/containerd/containerd/events" @@ -242,19 +242,19 @@ func (r *Runtime) Create(ctx context.Context, id string, opts plugin.CreateOpts) return nil, err } - var runtimeMounts []*event.RuntimeMount + var runtimeMounts []*eventsapi.RuntimeMount for _, m := range opts.Rootfs { - runtimeMounts = append(runtimeMounts, &event.RuntimeMount{ + runtimeMounts = append(runtimeMounts, &eventsapi.RuntimeMount{ Type: m.Type, Source: m.Source, Options: m.Options, }) } - if err := r.emit(ctx, "/runtime/create", event.RuntimeCreate{ + if err := r.emit(ctx, "/runtime/create", &eventsapi.RuntimeCreate{ ID: id, Bundle: path, RootFS: runtimeMounts, - IO: &event.RuntimeIO{ + IO: &eventsapi.RuntimeIO{ Stdin: opts.IO.Stdin, Stdout: opts.IO.Stdout, Stderr: opts.IO.Stderr, @@ -290,7 +290,7 @@ func (r *Runtime) Delete(ctx context.Context, c plugin.Task) (*plugin.Exit, erro r.tasks.delete(ctx, lc) i := c.Info() - if err := r.emit(ctx, "/runtime/delete", event.RuntimeDelete{ + if err := r.emit(ctx, "/runtime/delete", &eventsapi.RuntimeDelete{ ID: i.ID, Runtime: i.Runtime, ExitStatus: rsp.ExitStatus, @@ -416,7 +416,7 @@ func (r *Runtime) forward(ctx context.Context, events shim.Shim_EventsClient) { ExitStatus: e.ExitStatus, ExitedAt: e.ExitedAt, } - if err := r.emit(ctx, "/runtime/"+topic, event.RuntimeEvent{ + if err := r.emit(ctx, "/runtime/"+topic, &eventsapi.RuntimeEvent{ ID: e.ID, Type: e.Type, Pid: e.Pid, diff --git a/process.go b/process.go index 7baf8231f..3784fbe08 100644 --- a/process.go +++ b/process.go @@ -7,9 +7,8 @@ import ( eventsapi "github.com/containerd/containerd/api/services/events/v1" "github.com/containerd/containerd/api/services/tasks/v1" - "github.com/containerd/containerd/api/types/event" tasktypes "github.com/containerd/containerd/api/types/task" - "github.com/gogo/protobuf/proto" + "github.com/containerd/containerd/events" protobuf "github.com/gogo/protobuf/types" specs "github.com/opencontainers/runtime-spec/specs-go" ) @@ -74,24 +73,27 @@ func (p *process) Kill(ctx context.Context, s syscall.Signal) error { func (p *process) Wait(ctx context.Context) (uint32, error) { // TODO (ehazlett): add filtering for specific event - events, err := p.task.client.EventService().Stream(ctx, &eventsapi.StreamEventsRequest{}) + eventstream, err := p.task.client.EventService().Stream(ctx, &eventsapi.StreamEventsRequest{}) if err != nil { return UnknownExitStatus, err } <-p.pidSync +evloop: for { - evt, err := events.Recv() + evt, err := eventstream.Recv() if err != nil { return UnknownExitStatus, err } - if evt.Event.TypeUrl == "types.containerd.io/containerd.v1.types.event.RuntimeEvent" { - e := &event.RuntimeEvent{} - if err := proto.Unmarshal(evt.Event.Value, e); err != nil { + + switch { + case events.Is(evt.Event, &eventsapi.RuntimeEvent{}): + var e eventsapi.RuntimeEvent + if err := events.UnmarshalEvent(evt.Event, &e); err != nil { return UnknownExitStatus, err } if e.Type != tasktypes.Event_EXIT { - continue + continue evloop } if e.ID == p.task.containerID && e.Pid == p.pid { diff --git a/services/containers/service.go b/services/containers/service.go index cf5f02bae..185228c2a 100644 --- a/services/containers/service.go +++ b/services/containers/service.go @@ -3,7 +3,7 @@ package containers import ( "github.com/boltdb/bolt" api "github.com/containerd/containerd/api/services/containers/v1" - "github.com/containerd/containerd/api/types/event" + eventsapi "github.com/containerd/containerd/api/services/events/v1" "github.com/containerd/containerd/containers" "github.com/containerd/containerd/events" "github.com/containerd/containerd/metadata" @@ -93,10 +93,10 @@ func (s *Service) Create(ctx context.Context, req *api.CreateContainerRequest) ( }); err != nil { return &resp, err } - if err := s.emit(ctx, "/containers/create", event.ContainerCreate{ + if err := s.emit(ctx, "/containers/create", &eventsapi.ContainerCreate{ ContainerID: resp.Container.ID, Image: resp.Container.Image, - Runtime: &event.ContainerCreate_Runtime{ + Runtime: &eventsapi.ContainerCreate_Runtime{ Name: resp.Container.Runtime.Name, Options: resp.Container.Runtime.Options, }, @@ -160,7 +160,7 @@ func (s *Service) Update(ctx context.Context, req *api.UpdateContainerRequest) ( return &resp, err } - if err := s.emit(ctx, "/containers/update", event.ContainerUpdate{ + if err := s.emit(ctx, "/containers/update", &eventsapi.ContainerUpdate{ ContainerID: resp.Container.ID, Image: resp.Container.Image, Labels: resp.Container.Labels, @@ -179,7 +179,7 @@ func (s *Service) Delete(ctx context.Context, req *api.DeleteContainerRequest) ( return &empty.Empty{}, mapGRPCError(err, req.ID) } - if err := s.emit(ctx, "/containers/delete", event.ContainerDelete{ + if err := s.emit(ctx, "/containers/delete", &eventsapi.ContainerDelete{ ContainerID: req.ID, }); err != nil { return &empty.Empty{}, err diff --git a/services/content/service.go b/services/content/service.go index 27879ac65..ca9cd8148 100644 --- a/services/content/service.go +++ b/services/content/service.go @@ -6,7 +6,7 @@ import ( "github.com/Sirupsen/logrus" api "github.com/containerd/containerd/api/services/content/v1" - "github.com/containerd/containerd/api/types/event" + eventsapi "github.com/containerd/containerd/api/services/events/v1" "github.com/containerd/containerd/content" "github.com/containerd/containerd/events" "github.com/containerd/containerd/log" @@ -128,7 +128,7 @@ func (s *Service) Delete(ctx context.Context, req *api.DeleteContentRequest) (*e return nil, serverErrorToGRPC(err, req.Digest.String()) } - if err := s.emit(ctx, "/content/delete", event.ContentDelete{ + if err := s.emit(ctx, "/content/delete", &eventsapi.ContentDelete{ Digest: req.Digest, }); err != nil { return nil, err diff --git a/services/images/service.go b/services/images/service.go index b5bc6e34e..9456794b1 100644 --- a/services/images/service.go +++ b/services/images/service.go @@ -2,8 +2,8 @@ package images import ( "github.com/boltdb/bolt" + eventsapi "github.com/containerd/containerd/api/services/events/v1" imagesapi "github.com/containerd/containerd/api/services/images/v1" - "github.com/containerd/containerd/api/types/event" "github.com/containerd/containerd/events" "github.com/containerd/containerd/images" "github.com/containerd/containerd/metadata" @@ -69,7 +69,7 @@ func (s *Service) Update(ctx context.Context, req *imagesapi.UpdateImageRequest) return nil, err } - if err := s.emit(ctx, "/images/update", event.ImageUpdate{ + if err := s.emit(ctx, "/images/update", &eventsapi.ImageUpdate{ Name: req.Image.Name, Labels: req.Image.Labels, }); err != nil { @@ -103,7 +103,7 @@ func (s *Service) Delete(ctx context.Context, req *imagesapi.DeleteImageRequest) return nil, err } - if err := s.emit(ctx, "/images/delete", event.ImageDelete{ + if err := s.emit(ctx, "/images/delete", &eventsapi.ImageDelete{ Name: req.Name, }); err != nil { return nil, err diff --git a/services/namespaces/service.go b/services/namespaces/service.go index f7051b70a..7ac29e79a 100644 --- a/services/namespaces/service.go +++ b/services/namespaces/service.go @@ -4,8 +4,8 @@ import ( "strings" "github.com/boltdb/bolt" + eventsapi "github.com/containerd/containerd/api/services/events/v1" api "github.com/containerd/containerd/api/services/namespaces/v1" - "github.com/containerd/containerd/api/types/event" "github.com/containerd/containerd/events" "github.com/containerd/containerd/metadata" "github.com/containerd/containerd/namespaces" @@ -118,7 +118,7 @@ func (s *Service) Create(ctx context.Context, req *api.CreateNamespaceRequest) ( return &resp, err } - if err := s.emit(ctx, "/namespaces/create", event.NamespaceCreate{ + if err := s.emit(ctx, "/namespaces/create", &eventsapi.NamespaceCreate{ Name: req.Namespace.Name, Labels: req.Namespace.Labels, }); err != nil { @@ -171,7 +171,7 @@ func (s *Service) Update(ctx context.Context, req *api.UpdateNamespaceRequest) ( return &resp, err } - if err := s.emit(ctx, "/namespaces/update", event.NamespaceUpdate{ + if err := s.emit(ctx, "/namespaces/update", &eventsapi.NamespaceUpdate{ Name: req.Namespace.Name, Labels: req.Namespace.Labels, }); err != nil { @@ -188,7 +188,7 @@ func (s *Service) Delete(ctx context.Context, req *api.DeleteNamespaceRequest) ( return &empty.Empty{}, err } - if err := s.emit(ctx, "/namespaces/delete", event.NamespaceDelete{ + if err := s.emit(ctx, "/namespaces/delete", &eventsapi.NamespaceDelete{ Name: req.Name, }); err != nil { return &empty.Empty{}, err diff --git a/services/snapshot/service.go b/services/snapshot/service.go index 59d7fe2de..509c1a2b2 100644 --- a/services/snapshot/service.go +++ b/services/snapshot/service.go @@ -3,8 +3,8 @@ package snapshot import ( gocontext "context" + eventsapi "github.com/containerd/containerd/api/services/events/v1" snapshotapi "github.com/containerd/containerd/api/services/snapshot/v1" - "github.com/containerd/containerd/api/types/event" mounttypes "github.com/containerd/containerd/api/types/mount" "github.com/containerd/containerd/events" "github.com/containerd/containerd/log" @@ -63,7 +63,7 @@ func (s *service) Prepare(ctx context.Context, pr *snapshotapi.PrepareSnapshotRe return nil, grpcError(err) } - if err := s.emit(ctx, "/snapshot/prepare", event.SnapshotPrepare{ + if err := s.emit(ctx, "/snapshot/prepare", &eventsapi.SnapshotPrepare{ Key: pr.Key, Parent: pr.Parent, }); err != nil { @@ -108,7 +108,7 @@ func (s *service) Commit(ctx context.Context, cr *snapshotapi.CommitSnapshotRequ return nil, grpcError(err) } - if err := s.emit(ctx, "/snapshot/commit", event.SnapshotCommit{ + if err := s.emit(ctx, "/snapshot/commit", &eventsapi.SnapshotCommit{ Key: cr.Key, Name: cr.Name, }); err != nil { @@ -125,7 +125,7 @@ func (s *service) Remove(ctx context.Context, rr *snapshotapi.RemoveSnapshotRequ return nil, grpcError(err) } - if err := s.emit(ctx, "/snapshot/remove", event.SnapshotRemove{ + if err := s.emit(ctx, "/snapshot/remove", &eventsapi.SnapshotRemove{ Key: rr.Key, }); err != nil { return nil, err diff --git a/services/tasks/service.go b/services/tasks/service.go index a5589fe90..9f14d974e 100644 --- a/services/tasks/service.go +++ b/services/tasks/service.go @@ -9,9 +9,9 @@ import ( "path/filepath" "github.com/boltdb/bolt" + eventsapi "github.com/containerd/containerd/api/services/events/v1" api "github.com/containerd/containerd/api/services/tasks/v1" "github.com/containerd/containerd/api/types/descriptor" - "github.com/containerd/containerd/api/types/event" "github.com/containerd/containerd/api/types/task" "github.com/containerd/containerd/archive" "github.com/containerd/containerd/containers" @@ -154,7 +154,7 @@ func (s *Service) Create(ctx context.Context, r *api.CreateTaskRequest) (*api.Cr log.G(ctx).Error(err) } - if err := s.emit(ctx, "/tasks/create", event.TaskCreate{ + if err := s.emit(ctx, "/tasks/create", &eventsapi.TaskCreate{ ContainerID: r.ContainerID, }); err != nil { return nil, err @@ -175,7 +175,7 @@ func (s *Service) Start(ctx context.Context, r *api.StartTaskRequest) (*google_p return nil, err } - if err := s.emit(ctx, "/tasks/start", event.TaskStart{ + if err := s.emit(ctx, "/tasks/start", &eventsapi.TaskStart{ ContainerID: r.ContainerID, }); err != nil { return nil, err @@ -197,7 +197,7 @@ func (s *Service) Delete(ctx context.Context, r *api.DeleteTaskRequest) (*api.De if err != nil { return nil, err } - if err := s.emit(ctx, "/tasks/delete", event.TaskDelete{ + if err := s.emit(ctx, "/tasks/delete", &eventsapi.TaskDelete{ ContainerID: r.ContainerID, Pid: exit.Pid, ExitStatus: exit.Status, diff --git a/task.go b/task.go index be720a6a5..1865b185b 100644 --- a/task.go +++ b/task.go @@ -13,11 +13,10 @@ import ( "github.com/containerd/containerd/api/services/containers/v1" eventsapi "github.com/containerd/containerd/api/services/events/v1" "github.com/containerd/containerd/api/services/tasks/v1" - "github.com/containerd/containerd/api/types/event" tasktypes "github.com/containerd/containerd/api/types/task" "github.com/containerd/containerd/content" + "github.com/containerd/containerd/events" "github.com/containerd/containerd/rootfs" - "github.com/gogo/protobuf/proto" "github.com/opencontainers/image-spec/specs-go/v1" specs "github.com/opencontainers/runtime-spec/specs-go" ) @@ -143,24 +142,27 @@ func (t *task) Status(ctx context.Context) (TaskStatus, error) { // Wait is a blocking call that will wait for the task to exit and return the exit status func (t *task) Wait(ctx context.Context) (uint32, error) { // TODO (ehazlett): add filtering for specific event - events, err := t.client.EventService().Stream(ctx, &eventsapi.StreamEventsRequest{}) + eventstream, err := t.client.EventService().Stream(ctx, &eventsapi.StreamEventsRequest{}) if err != nil { return UnknownExitStatus, err } <-t.pidSync +evloop: for { - evt, err := events.Recv() + evt, err := eventstream.Recv() if err != nil { return UnknownExitStatus, err } - if evt.Event.TypeUrl == "types.containerd.io/containerd.v1.types.event.RuntimeEvent" { - e := &event.RuntimeEvent{} - if err := proto.Unmarshal(evt.Event.Value, e); err != nil { + + switch { + case events.Is(evt.Event, &eventsapi.RuntimeEvent{}): + var e eventsapi.RuntimeEvent + if err := events.UnmarshalEvent(evt.Event, &e); err != nil { return UnknownExitStatus, err } if e.Type != tasktypes.Event_EXIT { - continue + continue evloop } if e.ID == t.containerID && e.Pid == t.pid {