summaryrefslogtreecommitdiff
path: root/cmd/podman/ps.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/podman/ps.go')
-rw-r--r--cmd/podman/ps.go23
1 files changed, 10 insertions, 13 deletions
diff --git a/cmd/podman/ps.go b/cmd/podman/ps.go
index a0fb9dabc..a5f862f8f 100644
--- a/cmd/podman/ps.go
+++ b/cmd/podman/ps.go
@@ -29,7 +29,6 @@ type psTemplateParams struct {
Command string
CreatedAtTime time.Time
Created string
- RunningFor string
Status string
Ports string
Size string
@@ -57,10 +56,11 @@ type psJSONParams struct {
Image string `json:"image"`
ImageID string `json:"image_id"`
Command []string `json:"command"`
- CreatedAt time.Time `json:"createdAt"`
ExitCode int32 `json:"exitCode"`
Exited bool `json:"exited"`
- RunningFor time.Duration `json:"runningFor"`
+ CreatedAt time.Time `json:"createdAt"`
+ StartedAt time.Time `json:"startedAt"`
+ ExitedAt time.Time `json:"exitedAt"`
Status string `json:"status"`
PID int `json:"PID"`
Ports []ocicni.PortMapping `json:"ports"`
@@ -110,7 +110,7 @@ func (a psSortedPod) Less(i, j int) bool { return a.psSorted[i].Pod < a.psSorted
type psSortedRunningFor struct{ psSorted }
func (a psSortedRunningFor) Less(i, j int) bool {
- return a.psSorted[i].RunningFor < a.psSorted[j].RunningFor
+ return a.psSorted[j].StartedAt.After(a.psSorted[i].StartedAt)
}
type psSortedStatus struct{ psSorted }
@@ -529,7 +529,6 @@ func getTemplateOutput(psParams []psJSONParams, opts batchcontainer.PsOptions) (
if opts.Pod {
pod = psParam.Pod
}
- runningFor := units.HumanDuration(psParam.RunningFor)
command := strings.Join(psParam.Command, " ")
if !opts.NoTrunc {
@@ -542,9 +541,10 @@ func getTemplateOutput(psParams []psJSONParams, opts batchcontainer.PsOptions) (
switch psParam.Status {
case libpod.ContainerStateStopped.String():
- status = fmt.Sprintf("Exited (%d) %s ago", psParam.ExitCode, runningFor)
+ exitedSince := units.HumanDuration(time.Since(psParam.ExitedAt))
+ status = fmt.Sprintf("Exited (%d) %s ago", psParam.ExitCode, exitedSince)
case libpod.ContainerStateRunning.String():
- status = "Up " + runningFor + " ago"
+ status = "Up " + units.HumanDuration(time.Since(psParam.StartedAt)) + " ago"
case libpod.ContainerStatePaused.String():
status = "Paused"
case libpod.ContainerStateCreated.String(), libpod.ContainerStateConfigured.String():
@@ -563,7 +563,6 @@ func getTemplateOutput(psParams []psJSONParams, opts batchcontainer.PsOptions) (
Command: command,
CreatedAtTime: psParam.CreatedAt,
Created: units.HumanDuration(time.Since(psParam.CreatedAt)) + " ago",
- RunningFor: runningFor,
Status: status,
Ports: ports,
Size: size,
@@ -613,9 +612,11 @@ func getAndSortJSONParams(containers []*libpod.Container, opts batchcontainer.Ps
Image: batchInfo.ConConfig.RootfsImageName,
ImageID: batchInfo.ConConfig.RootfsImageID,
Command: batchInfo.ConConfig.Spec.Process.Args,
- CreatedAt: batchInfo.ConConfig.CreatedTime,
ExitCode: batchInfo.ExitCode,
Exited: batchInfo.Exited,
+ CreatedAt: batchInfo.ConConfig.CreatedTime,
+ StartedAt: batchInfo.StartedTime,
+ ExitedAt: batchInfo.ExitedTime,
Status: batchInfo.ConState.String(),
PID: batchInfo.Pid,
Ports: batchInfo.ConConfig.PortMappings,
@@ -628,10 +629,6 @@ func getAndSortJSONParams(containers []*libpod.Container, opts batchcontainer.Ps
Pod: ctr.PodID(),
}
- if !batchInfo.StartedTime.IsZero() && batchInfo.ConState == libpod.ContainerStateRunning {
- params.RunningFor = time.Since(batchInfo.StartedTime)
- }
-
psOutput = append(psOutput, params)
}
return sortPsOutput(opts.Sort, psOutput)