/
events.go
46 lines (36 loc) · 832 Bytes
/
events.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package embedded
import (
"github.com/google/cadvisor/events"
"github.com/danielkrainas/csense/api/v1"
)
type eventChannel struct {
inner *events.EventChannel
channel chan *v1.ContainerEvent
}
func newEventChannel(cec *events.EventChannel) *eventChannel {
ec := &eventChannel{
inner: cec,
channel: make(chan *v1.ContainerEvent),
}
go func() {
for src := range cec.GetChannel() {
e := &v1.ContainerEvent{
Container: &v1.ContainerInfo{
Name: src.ContainerName,
},
Timestamp: src.Timestamp.Unix(),
Type: v1.ContainerEventType(string(src.EventType)),
}
ec.channel <- e
}
close(ec.channel)
}()
return ec
}
func (ec *eventChannel) GetChannel() <-chan *v1.ContainerEvent {
return ec.channel
}
func (ec *eventChannel) Close() error {
// TODO: may not need
return nil
}