(clusterInfo *tabby.Tabby, eventList *eventsv1.EventList)
| 205 | } |
| 206 | |
| 207 | func printNamespaceEvents(clusterInfo *tabby.Tabby, eventList *eventsv1.EventList) { |
| 208 | if len(eventList.Items) == 0 { |
| 209 | return |
| 210 | } |
| 211 | eventTimeOf := func(ev *eventsv1.Event) time.Time { |
| 212 | if ev.EventTime.Time != (time.Time{}) { |
| 213 | return ev.EventTime.Time |
| 214 | } |
| 215 | return ev.CreationTimestamp.Time |
| 216 | } |
| 217 | sort.Slice(eventList.Items, func(i, j int) bool { |
| 218 | return eventTimeOf(&eventList.Items[i]).Before(eventTimeOf(&eventList.Items[j])) |
| 219 | }) |
| 220 | clusterInfo.AddLine() |
| 221 | clusterInfo.AddLine("Namespace events:") |
| 222 | clusterInfo.AddLine() |
| 223 | clusterInfo.AddHeader("Time", "Type", "Reason", "Object", "Message") |
| 224 | for i := range eventList.Items { |
| 225 | ev := &eventList.Items[i] |
| 226 | clusterInfo.AddLine( |
| 227 | eventTimeOf(ev).Format(time.RFC3339), |
| 228 | ev.Type, |
| 229 | ev.Reason, |
| 230 | fmt.Sprintf("%s/%s", ev.Regarding.Kind, ev.Regarding.Name), |
| 231 | ev.Note, |
| 232 | ) |
| 233 | } |
| 234 | } |
| 235 | |
| 236 | // ForgeArchiveWalOnObjectStore instead of using `switchWalCmd` to generate a real WAL archive, directly forges a |
| 237 | // WAL archive file on the object store by copying and renaming an existing WAL archive file for the sake of more |
no outgoing calls
no test coverage detected