From 5b855515e427ae3bb7663981f38c82ca4ada2f43 Mon Sep 17 00:00:00 2001 From: Aaron Lehmann Date: Fri, 14 Apr 2017 10:44:24 -0700 Subject: [PATCH] Hide zero-valued timestamps from service JSON It was possible to see output like this: "UpdateStatus": { "State": "updating", "StartedAt": "2017-04-14T17:10:03.226607162Z", "CompletedAt": "1970-01-01T00:00:00Z", "Message": "update in progress" } The timestamp fields were already changed to pointers, and left nil if the timestamp value was zero. However the zero-value of a timestamp from gRPC is different from the value Go considers to be zero. gRPC uses the Unix epoch instead of Go's epoch. Therefore, check that the timestamp does not match the Unix epoch. Also, add " ago" to the timestamps as shown in "docker service inspect --pretty", as they are shown as relative times. Signed-off-by: Aaron Lehmann --- command/formatter/service.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/command/formatter/service.go b/command/formatter/service.go index 8f57af22d9..e32704f337 100644 --- a/command/formatter/service.go +++ b/command/formatter/service.go @@ -224,7 +224,7 @@ func (ctx *serviceInspectContext) HasUpdateStatusStarted() bool { } func (ctx *serviceInspectContext) UpdateStatusStarted() string { - return units.HumanDuration(time.Since(*ctx.Service.UpdateStatus.StartedAt)) + return units.HumanDuration(time.Since(*ctx.Service.UpdateStatus.StartedAt)) + " ago" } func (ctx *serviceInspectContext) UpdateIsCompleted() bool { @@ -232,7 +232,7 @@ func (ctx *serviceInspectContext) UpdateIsCompleted() bool { } func (ctx *serviceInspectContext) UpdateStatusCompleted() string { - return units.HumanDuration(time.Since(*ctx.Service.UpdateStatus.CompletedAt)) + return units.HumanDuration(time.Since(*ctx.Service.UpdateStatus.CompletedAt)) + " ago" } func (ctx *serviceInspectContext) UpdateStatusMessage() string {