mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
If firstTimestamp is not set use eventTime when printing event
This commit is contained in:
parent
7b20442513
commit
808fb25a9e
@ -655,6 +655,16 @@ func listWithMoreString(list []string, more bool, count, max int) string {
|
|||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// translateMicroTimestampSince returns the elapsed time since timestamp in
|
||||||
|
// human-readable approximation.
|
||||||
|
func translateMicroTimestampSince(timestamp metav1.MicroTime) string {
|
||||||
|
if timestamp.IsZero() {
|
||||||
|
return "<unknown>"
|
||||||
|
}
|
||||||
|
|
||||||
|
return duration.HumanDuration(time.Since(timestamp.Time))
|
||||||
|
}
|
||||||
|
|
||||||
// translateTimestampSince returns the elapsed time since timestamp in
|
// translateTimestampSince returns the elapsed time since timestamp in
|
||||||
// human-readable approximation.
|
// human-readable approximation.
|
||||||
func translateTimestampSince(timestamp metav1.Time) string {
|
func translateTimestampSince(timestamp metav1.Time) string {
|
||||||
@ -1660,6 +1670,9 @@ func printEvent(obj *api.Event, options printers.GenerateOptions) ([]metav1.Tabl
|
|||||||
}
|
}
|
||||||
|
|
||||||
firstTimestamp := translateTimestampSince(obj.FirstTimestamp)
|
firstTimestamp := translateTimestampSince(obj.FirstTimestamp)
|
||||||
|
if obj.FirstTimestamp.IsZero() {
|
||||||
|
firstTimestamp = translateMicroTimestampSince(obj.EventTime)
|
||||||
|
}
|
||||||
lastTimestamp := translateTimestampSince(obj.LastTimestamp)
|
lastTimestamp := translateTimestampSince(obj.LastTimestamp)
|
||||||
if obj.LastTimestamp.IsZero() {
|
if obj.LastTimestamp.IsZero() {
|
||||||
lastTimestamp = firstTimestamp
|
lastTimestamp = firstTimestamp
|
||||||
|
@ -136,6 +136,30 @@ func TestPrintEvent(t *testing.T) {
|
|||||||
// Columns: Last Seen, Type, Reason, Object, Subobject, Message, First Seen, Count, Name
|
// Columns: Last Seen, Type, Reason, Object, Subobject, Message, First Seen, Count, Name
|
||||||
expected: []metav1.TableRow{{Cells: []interface{}{"2d", "Warning", "Event Reason", "deployment/Deployment Name", "spec.containers{foo}", "kubelet, Node1", "Message Data", "3d", int64(6), "event2"}}},
|
expected: []metav1.TableRow{{Cells: []interface{}{"2d", "Warning", "Event Reason", "deployment/Deployment Name", "spec.containers{foo}", "kubelet, Node1", "Message Data", "3d", int64(6), "event2"}}},
|
||||||
},
|
},
|
||||||
|
// Basic event, w/o FirstTimestamp set
|
||||||
|
{
|
||||||
|
event: api.Event{
|
||||||
|
Source: api.EventSource{
|
||||||
|
Component: "kubelet",
|
||||||
|
Host: "Node1",
|
||||||
|
},
|
||||||
|
InvolvedObject: api.ObjectReference{
|
||||||
|
Kind: "Deployment",
|
||||||
|
Name: "Deployment Name",
|
||||||
|
FieldPath: "spec.containers{foo}",
|
||||||
|
},
|
||||||
|
Reason: "Event Reason",
|
||||||
|
Message: "Message Data",
|
||||||
|
EventTime: metav1.MicroTime{Time: time.Now().UTC().AddDate(0, 0, -3)},
|
||||||
|
LastTimestamp: metav1.Time{Time: time.Now().UTC().AddDate(0, 0, -3)},
|
||||||
|
Count: 1,
|
||||||
|
Type: api.EventTypeWarning,
|
||||||
|
ObjectMeta: metav1.ObjectMeta{Name: "event3"},
|
||||||
|
},
|
||||||
|
options: printers.GenerateOptions{Wide: true},
|
||||||
|
// Columns: Last Seen, Type, Reason, Object, Subobject, Message, First Seen, Count, Name
|
||||||
|
expected: []metav1.TableRow{{Cells: []interface{}{"3d", "Warning", "Event Reason", "deployment/Deployment Name", "spec.containers{foo}", "kubelet, Node1", "Message Data", "3d", int64(1), "event3"}}},
|
||||||
|
},
|
||||||
// Basic event, w/o LastTimestamp set
|
// Basic event, w/o LastTimestamp set
|
||||||
{
|
{
|
||||||
event: api.Event{
|
event: api.Event{
|
||||||
@ -150,6 +174,7 @@ func TestPrintEvent(t *testing.T) {
|
|||||||
},
|
},
|
||||||
Reason: "Event Reason",
|
Reason: "Event Reason",
|
||||||
Message: "Message Data",
|
Message: "Message Data",
|
||||||
|
EventTime: metav1.MicroTime{Time: time.Now().UTC().AddDate(0, 0, -3)},
|
||||||
FirstTimestamp: metav1.Time{Time: time.Now().UTC().AddDate(0, 0, -3)},
|
FirstTimestamp: metav1.Time{Time: time.Now().UTC().AddDate(0, 0, -3)},
|
||||||
Count: 1,
|
Count: 1,
|
||||||
Type: api.EventTypeWarning,
|
Type: api.EventTypeWarning,
|
||||||
@ -159,6 +184,29 @@ func TestPrintEvent(t *testing.T) {
|
|||||||
// Columns: Last Seen, Type, Reason, Object, Subobject, Message, First Seen, Count, Name
|
// Columns: Last Seen, Type, Reason, Object, Subobject, Message, First Seen, Count, Name
|
||||||
expected: []metav1.TableRow{{Cells: []interface{}{"3d", "Warning", "Event Reason", "deployment/Deployment Name", "spec.containers{foo}", "kubelet, Node1", "Message Data", "3d", int64(1), "event3"}}},
|
expected: []metav1.TableRow{{Cells: []interface{}{"3d", "Warning", "Event Reason", "deployment/Deployment Name", "spec.containers{foo}", "kubelet, Node1", "Message Data", "3d", int64(1), "event3"}}},
|
||||||
},
|
},
|
||||||
|
// Basic event, w/o FirstTimestamp and LastTimestamp set
|
||||||
|
{
|
||||||
|
event: api.Event{
|
||||||
|
Source: api.EventSource{
|
||||||
|
Component: "kubelet",
|
||||||
|
Host: "Node1",
|
||||||
|
},
|
||||||
|
InvolvedObject: api.ObjectReference{
|
||||||
|
Kind: "Deployment",
|
||||||
|
Name: "Deployment Name",
|
||||||
|
FieldPath: "spec.containers{foo}",
|
||||||
|
},
|
||||||
|
Reason: "Event Reason",
|
||||||
|
Message: "Message Data",
|
||||||
|
EventTime: metav1.MicroTime{Time: time.Now().UTC().AddDate(0, 0, -3)},
|
||||||
|
Count: 1,
|
||||||
|
Type: api.EventTypeWarning,
|
||||||
|
ObjectMeta: metav1.ObjectMeta{Name: "event3"},
|
||||||
|
},
|
||||||
|
options: printers.GenerateOptions{Wide: true},
|
||||||
|
// Columns: Last Seen, Type, Reason, Object, Subobject, Message, First Seen, Count, Name
|
||||||
|
expected: []metav1.TableRow{{Cells: []interface{}{"3d", "Warning", "Event Reason", "deployment/Deployment Name", "spec.containers{foo}", "kubelet, Node1", "Message Data", "3d", int64(1), "event3"}}},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for i, test := range tests {
|
for i, test := range tests {
|
||||||
|
Loading…
Reference in New Issue
Block a user