Skip to content

Commit 982e42a

Browse files
committed
return evt filter description
1 parent e2cd4df commit 982e42a

File tree

4 files changed

+34
-12
lines changed

4 files changed

+34
-12
lines changed

example/main.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ func main() {
2626
log.Fatal(err)
2727
}
2828

29-
if err := watcher.Start(func(event *v1.Event) {
30-
log.Printf("got event: %+v\n", event)
29+
if err := watcher.Start(func(event *v1.Event, filterDescription string) {
30+
log.Printf("got event (%s): %+v\n", filterDescription, event)
3131
}); err != nil {
3232
log.Fatal(err)
3333
}

internal/config.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,14 @@ func (c *Config) Validate() error {
2828
return nil
2929
}
3030

31-
func (c *Config) MatchesEvent(event *v1.Event) bool {
31+
func (c *Config) MatchingEventFilter(event *v1.Event) *EventFilter {
3232
for _, filter := range c.Filters {
3333
if filter.Matches(event) {
34-
return true
34+
return filter
3535
}
3636
}
3737

38-
return false
38+
return nil
3939
}
4040

4141
func (c *Config) Dump() string {

internal/filter.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ package internal
22

33
import (
44
"errors"
5+
"fmt"
56
v1 "k8s.io/api/core/v1"
7+
"strings"
68
)
79

810
type EventFilter struct {
@@ -62,3 +64,24 @@ func (f *EventFilter) Matches(event *v1.Event) bool {
6264

6365
return true
6466
}
67+
68+
func (f *EventFilter) String() string {
69+
var elements []string
70+
if f.ObjectNamespace != nil {
71+
elements = append(elements, fmt.Sprintf("objectNamespace=%s", f.ObjectNamespace.String()))
72+
}
73+
if f.ObjectKind != nil {
74+
elements = append(elements, fmt.Sprintf("objectKind=%s", f.ObjectKind.String()))
75+
}
76+
if f.ObjectName != nil {
77+
elements = append(elements, fmt.Sprintf("objectName=%s", f.ObjectName.String()))
78+
}
79+
if f.EventType != nil {
80+
elements = append(elements, fmt.Sprintf("eventType=%s", f.EventType.String()))
81+
}
82+
if f.EventReason != nil {
83+
elements = append(elements, fmt.Sprintf("eventReason=%s", f.EventReason.String()))
84+
}
85+
86+
return strings.Join(elements, ",")
87+
}

main.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ type K8sEventWatcher struct {
2727

2828
chStop chan struct{}
2929
lock sync.Mutex
30-
callback func(event *v1.Event)
30+
callback func(event *v1.Event, filterDescription string)
3131

3232
Debug bool
3333
}
@@ -108,17 +108,16 @@ func (w *K8sEventWatcher) onAddEvent(obj interface{}) {
108108
return
109109
}
110110

111-
if !w.config.MatchesEvent(evt) {
112-
w.logEntryDebug("discarded event: %+v", evt)
111+
if filter := w.config.MatchingEventFilter(evt); filter != nil {
112+
w.logEntryDebug("matched event: %+v", evt)
113+
w.callback(evt, filter.String())
113114
return
114115
}
115116

116-
w.logEntryDebug("matched event: %+v", evt)
117-
118-
w.callback(evt)
117+
w.logEntryDebug("discarded event: %+v", evt)
119118
}
120119

121-
func (w *K8sEventWatcher) Start(callback func(event *v1.Event)) error {
120+
func (w *K8sEventWatcher) Start(callback func(event *v1.Event, filterDescription string)) error {
122121
if callback == nil {
123122
return errorf("callback cannot be null")
124123
}

0 commit comments

Comments
 (0)