Skip to content

Commit 040558c

Browse files
committed
Remove runtime.Event types
This uses the events service types for runtime events Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
1 parent 7c8acca commit 040558c

File tree

15 files changed

+271
-596
lines changed

15 files changed

+271
-596
lines changed

api/services/events/v1/runtime.pb.go

Lines changed: 83 additions & 40 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/services/events/v1/runtime.proto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ message RuntimeEvent {
4242
uint32 pid = 3;
4343
uint32 exit_status = 4;
4444
google.protobuf.Timestamp exited_at = 5 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
45+
google.protobuf.Timestamp timestamp = 6 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
4546
}
4647

4748
message RuntimeDelete {

linux/runtime.go

Lines changed: 21 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99
"os"
1010
"path/filepath"
1111
"strings"
12-
"time"
1312

1413
"google.golang.org/grpc"
1514

@@ -91,7 +90,7 @@ func New(ic *plugin.InitContext) (interface{}, error) {
9190
remote: !cfg.NoShim,
9291
shim: cfg.Shim,
9392
runtime: cfg.Runtime,
94-
events: make(chan *runtime.Event, 2048),
93+
events: make(chan *eventsapi.RuntimeEvent, 2048),
9594
eventsContext: c,
9695
eventsCancel: cancel,
9796
monitor: monitor.(runtime.TaskMonitor),
@@ -122,7 +121,7 @@ type Runtime struct {
122121
runtime string
123122
remote bool
124123

125-
events chan *runtime.Event
124+
events chan *eventsapi.RuntimeEvent
126125
eventsContext context.Context
127126
eventsCancel func()
128127
monitor runtime.TaskMonitor
@@ -346,6 +345,7 @@ func (r *Runtime) handleEvents(ctx context.Context, s *client.Client) error {
346345
return nil
347346
}
348347

348+
// forward forwards events from a shim to the events service and monitors
349349
func (r *Runtime) forward(ctx context.Context, events shim.Shim_StreamClient) {
350350
for {
351351
e, err := events.Recv()
@@ -355,46 +355,29 @@ func (r *Runtime) forward(ctx context.Context, events shim.Shim_StreamClient) {
355355
}
356356
return
357357
}
358-
topic := ""
359-
var et runtime.EventType
360-
switch e.Type {
361-
case shim.Event_CREATE:
362-
topic = "task-create"
363-
et = runtime.CreateEvent
364-
case shim.Event_START:
365-
topic = "task-start"
366-
et = runtime.StartEvent
367-
case shim.Event_EXEC_ADDED:
368-
topic = "task-execadded"
369-
et = runtime.ExecAddEvent
370-
case shim.Event_OOM:
371-
topic = "task-oom"
372-
et = runtime.OOMEvent
373-
case shim.Event_EXIT:
374-
topic = "task-exit"
375-
et = runtime.ExitEvent
376-
}
377-
r.events <- &runtime.Event{
378-
Timestamp: time.Now(),
379-
Runtime: r.ID(),
380-
Type: et,
381-
Pid: e.Pid,
382-
ID: e.ID,
383-
ExitStatus: e.ExitStatus,
384-
ExitedAt: e.ExitedAt,
385-
}
386-
if err := r.emit(ctx, "/runtime/"+topic, &eventsapi.RuntimeEvent{
387-
ID: e.ID,
388-
Type: eventsapi.RuntimeEvent_EventType(e.Type),
389-
Pid: e.Pid,
390-
ExitStatus: e.ExitStatus,
391-
ExitedAt: e.ExitedAt,
392-
}); err != nil {
358+
r.events <- e
359+
if err := r.emit(ctx, "/runtime/"+getTopic(e), e); err != nil {
393360
return
394361
}
395362
}
396363
}
397364

365+
func getTopic(e *eventsapi.RuntimeEvent) string {
366+
switch e.Type {
367+
case eventsapi.RuntimeEvent_CREATE:
368+
return "task-create"
369+
case eventsapi.RuntimeEvent_START:
370+
return "task-start"
371+
case eventsapi.RuntimeEvent_EXEC_ADDED:
372+
return "task-execadded"
373+
case eventsapi.RuntimeEvent_OOM:
374+
return "task-oom"
375+
case eventsapi.RuntimeEvent_EXIT:
376+
return "task-exit"
377+
}
378+
return ""
379+
}
380+
398381
func (r *Runtime) terminate(ctx context.Context, bundle *bundle, ns, id string) error {
399382
ctx = namespaces.WithNamespace(ctx, ns)
400383
rt, err := r.getRuntime(ctx, ns, id)

linux/shim/local.go

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package shim
55
import (
66
"path/filepath"
77

8+
events "github.com/containerd/containerd/api/services/events/v1"
89
shimapi "github.com/containerd/containerd/linux/shim/v1"
910
google_protobuf "github.com/golang/protobuf/ptypes/empty"
1011
"golang.org/x/net/context"
@@ -53,7 +54,7 @@ func (c *local) ResizePty(ctx context.Context, in *shimapi.ResizePtyRequest, opt
5354
}
5455

5556
func (c *local) Stream(ctx context.Context, in *shimapi.StreamEventsRequest, opts ...grpc.CallOption) (shimapi.Shim_StreamClient, error) {
56-
return &events{
57+
return &streamEvents{
5758
c: c.s.events,
5859
ctx: ctx,
5960
}, nil
@@ -95,36 +96,36 @@ func (c *local) Update(ctx context.Context, in *shimapi.UpdateTaskRequest, opts
9596
return c.s.Update(ctx, in)
9697
}
9798

98-
type events struct {
99-
c chan *shimapi.Event
99+
type streamEvents struct {
100+
c chan *events.RuntimeEvent
100101
ctx context.Context
101102
}
102103

103-
func (e *events) Recv() (*shimapi.Event, error) {
104+
func (e *streamEvents) Recv() (*events.RuntimeEvent, error) {
104105
ev := <-e.c
105106
return ev, nil
106107
}
107108

108-
func (e *events) Header() (metadata.MD, error) {
109+
func (e *streamEvents) Header() (metadata.MD, error) {
109110
return nil, nil
110111
}
111112

112-
func (e *events) Trailer() metadata.MD {
113+
func (e *streamEvents) Trailer() metadata.MD {
113114
return nil
114115
}
115116

116-
func (e *events) CloseSend() error {
117+
func (e *streamEvents) CloseSend() error {
117118
return nil
118119
}
119120

120-
func (e *events) Context() context.Context {
121+
func (e *streamEvents) Context() context.Context {
121122
return e.ctx
122123
}
123124

124-
func (e *events) SendMsg(m interface{}) error {
125+
func (e *streamEvents) SendMsg(m interface{}) error {
125126
return nil
126127
}
127128

128-
func (e *events) RecvMsg(m interface{}) error {
129+
func (e *streamEvents) RecvMsg(m interface{}) error {
129130
return nil
130131
}

0 commit comments

Comments
 (0)