From 71793f9f8a26bc2593968f61a68c0bb42f9da71a Mon Sep 17 00:00:00 2001 From: Matthew Heon Date: Tue, 7 Aug 2018 11:56:18 -0400 Subject: Improve ps handling of container start/stop time Previously all calculations were done based off the container's start time. Retrieve end time and use it to calculate time stopped for containers. Also, convert ps JSON output to report timestamps for create, start, and stop times. Signed-off-by: Matthew Heon Closes: #1228 Approved by: rhatdan --- cmd/podman/batchcontainer/container.go | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'cmd/podman/batchcontainer/container.go') diff --git a/cmd/podman/batchcontainer/container.go b/cmd/podman/batchcontainer/container.go index de127c64d..e27914174 100644 --- a/cmd/podman/batchcontainer/container.go +++ b/cmd/podman/batchcontainer/container.go @@ -42,6 +42,7 @@ type BatchContainerStruct struct { Exited bool Pid int StartedTime time.Time + ExitedTime time.Time Size *ContainerSize } @@ -76,6 +77,7 @@ func BatchContainerOp(ctr *libpod.Container, opts PsOptions) (BatchContainerStru pid int size *ContainerSize startedTime time.Time + exitedTime time.Time ) batchErr := ctr.Batch(func(c *libpod.Container) error { @@ -93,6 +95,10 @@ func BatchContainerOp(ctr *libpod.Container, opts PsOptions) (BatchContainerStru if err != nil { logrus.Errorf("error getting started time for %q: %v", c.ID(), err) } + exitedTime, err = c.FinishedTime() + if err != nil { + logrus.Errorf("error getting exited time for %q: %v", c.ID(), err) + } if !opts.Size && !opts.Namespace { return nil @@ -132,6 +138,7 @@ func BatchContainerOp(ctr *libpod.Container, opts PsOptions) (BatchContainerStru Exited: exited, Pid: pid, StartedTime: startedTime, + ExitedTime: exitedTime, Size: size, }, nil } -- cgit v1.2.3-54-g00ecf