From c20ed0344a785cf3a672399c98e1c5e8cc56fd0d Mon Sep 17 00:00:00 2001 From: hurf Date: Fri, 14 Aug 2015 17:10:22 +0800 Subject: [PATCH] Enhance shortHumanDuration to handle more situation Allow 2 seconds deviation of current time. For time more than 2 seconds from current time, output as ''. --- pkg/kubectl/resource_printer.go | 8 +++++++- pkg/kubectl/resource_printer_test.go | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/pkg/kubectl/resource_printer.go b/pkg/kubectl/resource_printer.go index 76e28aebce..309e5c99c1 100644 --- a/pkg/kubectl/resource_printer.go +++ b/pkg/kubectl/resource_printer.go @@ -361,7 +361,13 @@ func podHostString(host, ip string) string { } func shortHumanDuration(d time.Duration) string { - if seconds := int(d.Seconds()); seconds < 60 { + // Allow deviation no more than 2 seconds(excluded) to tolerate machine time + // inconsistence, it can be considered as almost now. + if seconds := int(d.Seconds()); seconds < -1 { + return fmt.Sprintf("") + } else if seconds < 0 { + return fmt.Sprintf("0s") + } else if seconds < 60 { return fmt.Sprintf("%ds", seconds) } else if minutes := int(d.Minutes()); minutes < 60 { return fmt.Sprintf("%dm", minutes) diff --git a/pkg/kubectl/resource_printer_test.go b/pkg/kubectl/resource_printer_test.go index ebc7ab7a43..1a15740e53 100644 --- a/pkg/kubectl/resource_printer_test.go +++ b/pkg/kubectl/resource_printer_test.go @@ -1104,6 +1104,8 @@ type stringTestList []struct { func TestTranslateTimestamp(t *testing.T) { tl := stringTestList{ + {"a while from now", translateTimestamp(util.Time{Time: time.Now().Add(2.1e9)}), ""}, + {"almost now", translateTimestamp(util.Time{Time: time.Now().Add(1.9e9)}), "0s"}, {"now", translateTimestamp(util.Time{Time: time.Now()}), "0s"}, {"unknown", translateTimestamp(util.Time{}), ""}, {"30 seconds ago", translateTimestamp(util.Time{Time: time.Now().Add(-3e10)}), "30s"},