diff options
Diffstat (limited to 'cmd/podman')
-rw-r--r-- | cmd/podman/common.go | 12 | ||||
-rw-r--r-- | cmd/podman/history.go | 7 | ||||
-rw-r--r-- | cmd/podman/images.go | 2 | ||||
-rw-r--r-- | cmd/podman/ps.go | 2 | ||||
-rw-r--r-- | cmd/podman/stats.go | 41 |
5 files changed, 38 insertions, 26 deletions
diff --git a/cmd/podman/common.go b/cmd/podman/common.go index ae4bbd65d..921f30b84 100644 --- a/cmd/podman/common.go +++ b/cmd/podman/common.go @@ -22,7 +22,10 @@ var ( } ) -const crioConfigPath = "/etc/crio/crio.conf" +const ( + crioConfigPath = "/etc/crio/crio.conf" + idTruncLength = 12 +) func getRuntime(c *cli.Context) (*libpod.Runtime, error) { @@ -88,6 +91,13 @@ func splitCamelCase(src string) string { return strings.Join(entries, " ") } +func shortID(id string) string { + if len(id) > idTruncLength { + return id[:idTruncLength] + } + return id +} + // validateFlags searches for StringFlags or StringSlice flags that never had // a value set. This commonly occurs when the CLI mistakenly takes the next // option and uses it as a value. diff --git a/cmd/podman/history.go b/cmd/podman/history.go index f142f5fd4..1164555d3 100644 --- a/cmd/podman/history.go +++ b/cmd/podman/history.go @@ -14,10 +14,7 @@ import ( "github.com/urfave/cli" ) -const ( - createdByTruncLength = 45 - idTruncLength = 12 -) +const createdByTruncLength = 45 // historyTemplateParams stores info about each layer type historyTemplateParams struct { @@ -169,7 +166,7 @@ func getHistoryTemplateOutput(history []v1.History, layers []types.BlobInfo, ima imageID = "<missing>" } if !opts.noTrunc && i == len(history)-1 { - imageID = imageID[:idTruncLength] + imageID = shortID(imageID) } var size int64 diff --git a/cmd/podman/images.go b/cmd/podman/images.go index 90dd8ae12..1f1174950 100644 --- a/cmd/podman/images.go +++ b/cmd/podman/images.go @@ -194,7 +194,7 @@ func getImagesTemplateOutput(runtime *libpod.Runtime, images []*storage.Image, o imageID := "sha256:" + img.ID if !opts.noTrunc { - imageID = img.ID[:idTruncLength] + imageID = shortID(img.ID) } repository := "<none>" diff --git a/cmd/podman/ps.go b/cmd/podman/ps.go index 0b75b9a96..e4c90187b 100644 --- a/cmd/podman/ps.go +++ b/cmd/podman/ps.go @@ -482,7 +482,7 @@ func getTemplateOutput(containers []*libpod.Container, opts psOptions) ([]psTemp } if !opts.noTrunc { - ctrID = ctr.ID()[:idTruncLength] + ctrID = shortID(ctr.ID()) imageName = conConfig.RootfsImageName } diff --git a/cmd/podman/stats.go b/cmd/podman/stats.go index 871eb9e2f..21cca1d83 100644 --- a/cmd/podman/stats.go +++ b/cmd/podman/stats.go @@ -15,14 +15,14 @@ import ( ) type statsOutputParams struct { - Container string `json:"name"` - ID string `json:"id"` - CPUPerc string `json:"cpu_percent"` - MemUsage string `json:"mem_usage"` - MemPerc string `json:"mem_percent"` - NetIO string `json:"netio"` - BlockIO string `json:"blocki"` - PIDS string `json:"pids"` + ID string `json:"id"` + Name string `json:"name"` + CPUPerc string `json:"cpu_percent"` + MemUsage string `json:"mem_usage"` + MemPerc string `json:"mem_percent"` + NetIO string `json:"netio"` + BlockIO string `json:"blocki"` + PIDS string `json:"pids"` } var ( @@ -37,7 +37,7 @@ var ( }, cli.StringFlag{ Name: "format", - Usage: "pretty-print container statistics using a Go template", + Usage: "pretty-print container statistics to JSON or using a Go template", }, cli.BoolFlag{ Name: "no-reset", @@ -184,7 +184,12 @@ func outputStats(stats []*libpod.ContainerStats, format string) error { } func genStatsFormat() (format string) { - return "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.MemPerc}}\t{{.NetIO}}\t{{.BlockIO}}\t{{.PIDS}}" + if format != "" { + // "\t" from the command line is not being recognized as a tab + // replacing the string "\t" to a tab character if the user passes in "\t" + return strings.Replace(format, `\t`, "\t", -1) + } + return "table {{.ID}}\t{{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.MemPerc}}\t{{.NetIO}}\t{{.BlockIO}}\t{{.PIDS}}" } // imagesToGeneric creates an empty array of interfaces for output @@ -248,13 +253,13 @@ func pidsToString(pid uint64) string { func getStatsOutputParams(stats *libpod.ContainerStats) statsOutputParams { return statsOutputParams{ - Container: stats.ContainerID[:12], - ID: stats.ContainerID, - CPUPerc: floatToPercentString(stats.CPU), - MemUsage: combineHumanValues(stats.MemUsage, stats.MemLimit), - MemPerc: floatToPercentString(stats.MemPerc), - NetIO: combineHumanValues(stats.NetInput, stats.NetOutput), - BlockIO: combineHumanValues(stats.BlockInput, stats.BlockOutput), - PIDS: pidsToString(stats.PIDs), + Name: stats.Name, + ID: shortID(stats.ContainerID), + CPUPerc: floatToPercentString(stats.CPU), + MemUsage: combineHumanValues(stats.MemUsage, stats.MemLimit), + MemPerc: floatToPercentString(stats.MemPerc), + NetIO: combineHumanValues(stats.NetInput, stats.NetOutput), + BlockIO: combineHumanValues(stats.BlockInput, stats.BlockOutput), + PIDS: pidsToString(stats.PIDs), } } |