File tree Expand file tree Collapse file tree 4 files changed +34
-12
lines changed Expand file tree Collapse file tree 4 files changed +34
-12
lines changed Original file line number Diff line number Diff 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 }
Original file line number Diff line number Diff 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
4141func (c * Config ) Dump () string {
Original file line number Diff line number Diff line change @@ -2,7 +2,9 @@ package internal
22
33import (
44 "errors"
5+ "fmt"
56 v1 "k8s.io/api/core/v1"
7+ "strings"
68)
79
810type 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+ }
Original file line number Diff line number Diff 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 }
You can’t perform that action at this time.
0 commit comments