Skip to content

Commit a6e734c

Browse files
authored
fix: resolve timestamp from any timestamp field present in the event (#526)
1 parent 8512350 commit a6e734c

File tree

2 files changed

+39
-1
lines changed

2 files changed

+39
-1
lines changed

controllers/logging/event_controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ func (p *loggingPredicate) logEvent(e runtime.Object) bool {
173173
"namespace", evt.Namespace,
174174
"name", evt.Name,
175175
"reason", evt.Reason,
176-
"timestamp", evt.LastTimestamp,
176+
"timestamp", ts,
177177
"type", evt.Type,
178178
"involvedObject", evt.InvolvedObject,
179179
"source", evt.Source,

controllers/logging/event_controller_test.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package logging
33
import (
44
"context"
55
"encoding/json"
6+
"time"
67

78
v1 "github.com/bakito/k8s-event-logger-operator/api/v1"
89
"github.com/bakito/k8s-event-logger-operator/pkg/filter"
@@ -192,6 +193,43 @@ var _ = Describe("Logging", func() {
192193
Reason: "",
193194
})
194195
})
196+
It("should resolve timestamp", func() {
197+
childSink := ml.NewMockLogSink(mockCtrl)
198+
childSink.EXPECT().Init(gm.Any()).AnyTimes()
199+
childSink.EXPECT().Enabled(gm.Any()).AnyTimes().Return(true)
200+
mockSink.EXPECT().WithValues(repeat(gm.Any(), 14)...).Times(3).DoAndReturn(
201+
func(a ...interface{}) interface{} {
202+
t, ok := a[7].(metav1.Time)
203+
if !ok || t.IsZero() {
204+
Fail("timestamp not set")
205+
}
206+
return childSink
207+
})
208+
childSink.EXPECT().Info(gm.Any(), gm.Any()).Times(3)
209+
210+
lp := &loggingPredicate{
211+
Config: &Config{filter: filter.Always},
212+
}
213+
214+
lp.logEvent(&corev1.Event{
215+
ObjectMeta: metav1.ObjectMeta{
216+
ResourceVersion: "3",
217+
},
218+
LastTimestamp: metav1.Now(),
219+
})
220+
lp.logEvent(&corev1.Event{
221+
ObjectMeta: metav1.ObjectMeta{
222+
ResourceVersion: "4",
223+
},
224+
FirstTimestamp: metav1.Now(),
225+
})
226+
lp.logEvent(&corev1.Event{
227+
ObjectMeta: metav1.ObjectMeta{
228+
ResourceVersion: "5",
229+
},
230+
EventTime: metav1.MicroTime{Time: time.Now()},
231+
})
232+
})
195233

196234
DescribeTable("the > inequality",
197235
func(config v1.EventLoggerSpec, event corev1.Event, expected bool, description string) {

0 commit comments

Comments
 (0)