@@ -24,6 +24,7 @@ import (
24
24
"github.com/kiegroup/kogito-cloud-operator/pkg/client/kubernetes"
25
25
"github.com/kiegroup/kogito-cloud-operator/pkg/logger"
26
26
"go.uber.org/zap"
27
+ "k8s.io/api/events/v1beta1"
27
28
28
29
"io/ioutil"
29
30
)
@@ -278,3 +279,84 @@ type monitoredPod struct {
278
279
type monitoredContainer struct {
279
280
loggingFinished bool
280
281
}
282
+
283
+ /////////////////////////////////////////////////////////////////////////
284
+ // Events logging
285
+ /////////////////////////////////////////////////////////////////////////
286
+
287
+ const (
288
+ eventLastSeenKey = "LAST_SEEN"
289
+ eventFirstSeenKey = "FIRST_SEEN"
290
+ eventCountKey = "COUNT"
291
+ eventNameKey = "NAME"
292
+ eventKindKey = "KIND"
293
+ eventSubObjectKey = "SUBOBJECT"
294
+ eventTypeKey = "TYPE"
295
+ eventReasonKey = "REASON"
296
+ eventActionKey = "ACTION"
297
+ eventControllerKey = "CONTROLLER"
298
+ eventInstanceKey = "INSTANCE"
299
+ eventMessageKey = "MESSAGE"
300
+ )
301
+
302
+ var eventKeys = []string {
303
+ eventLastSeenKey ,
304
+ eventFirstSeenKey ,
305
+ eventCountKey ,
306
+ eventNameKey ,
307
+ eventKindKey ,
308
+ eventSubObjectKey ,
309
+ eventTypeKey ,
310
+ eventReasonKey ,
311
+ eventActionKey ,
312
+ eventControllerKey ,
313
+ eventInstanceKey ,
314
+ eventMessageKey ,
315
+ }
316
+
317
+ // BumpEvents will bump all events into events.log file
318
+ func BumpEvents (namespace string ) {
319
+ eventList , err := kubernetes .EventC (kubeClient ).GetEvents (namespace )
320
+ if err != nil {
321
+ GetMainLogger ().Errorf ("Error retrieving events from namespace %s: %v" , namespace , err )
322
+ }
323
+ fileWriter , err := os .Create (getLogFile (namespace , "events" ))
324
+ if err != nil {
325
+ GetMainLogger ().Errorf ("Error while creating filewriter: %v" , err )
326
+ }
327
+
328
+ PrintDataMap (eventKeys , mapEvents (eventList ), fileWriter )
329
+
330
+ if err := fileWriter .Close (); err != nil {
331
+ GetMainLogger ().Errorf ("Error while closing filewriter: %v" , err )
332
+ }
333
+ }
334
+
335
+ func mapEvents (eventList * v1beta1.EventList ) []map [string ]string {
336
+ eventMaps := []map [string ]string {}
337
+
338
+ for _ , event := range eventList .Items {
339
+ eventMap := make (map [string ]string )
340
+ eventMap [eventLastSeenKey ] = getDefaultIfNull (event .DeprecatedLastTimestamp .Format ("2006-01-02 15:04:05" ))
341
+ eventMap [eventFirstSeenKey ] = getDefaultIfNull (event .DeprecatedFirstTimestamp .Format ("2006-01-02 15:04:05" ))
342
+ eventMap [eventNameKey ] = getDefaultIfNull (event .GetName ())
343
+ eventMap [eventKindKey ] = getDefaultIfNull (event .TypeMeta .Kind )
344
+ eventMap [eventSubObjectKey ] = getDefaultIfNull (event .Regarding .FieldPath )
345
+ eventMap [eventTypeKey ] = getDefaultIfNull (event .Type )
346
+ eventMap [eventReasonKey ] = getDefaultIfNull (event .Reason )
347
+ eventMap [eventActionKey ] = getDefaultIfNull (event .Action )
348
+ eventMap [eventControllerKey ] = getDefaultIfNull (event .ReportingController )
349
+ eventMap [eventInstanceKey ] = getDefaultIfNull (event .ReportingInstance )
350
+ eventMap [eventMessageKey ] = getDefaultIfNull (event .Note )
351
+
352
+ eventMaps = append (eventMaps , eventMap )
353
+ }
354
+ return eventMaps
355
+ }
356
+
357
+ func getDefaultIfNull (value string ) string {
358
+ if len (value ) <= 0 {
359
+ return "-"
360
+ }
361
+ return value
362
+ }
0 commit comments