diff options
-rw-r--r-- | cmd/podman/containers/stats.go | 37 | ||||
-rw-r--r-- | cmd/podman/pods/ps.go | 13 | ||||
-rw-r--r-- | docs/source/markdown/podman-pod-ps.1.md | 5 | ||||
-rw-r--r-- | docs/source/markdown/podman-stats.1.md | 5 |
4 files changed, 35 insertions, 25 deletions
diff --git a/cmd/podman/containers/stats.go b/cmd/podman/containers/stats.go index bbd389bbf..c30ea52ec 100644 --- a/cmd/podman/containers/stats.go +++ b/cmd/podman/containers/stats.go @@ -3,12 +3,13 @@ package containers import ( "fmt" "os" - "strings" "text/tabwriter" "text/template" tm "github.com/buger/goterm" + "github.com/containers/podman/v2/cmd/podman/parse" "github.com/containers/podman/v2/cmd/podman/registry" + "github.com/containers/podman/v2/cmd/podman/report" "github.com/containers/podman/v2/cmd/podman/validate" "github.com/containers/podman/v2/libpod/define" "github.com/containers/podman/v2/pkg/cgroups" @@ -58,9 +59,8 @@ type statsOptionsCLI struct { } var ( - statsOptions statsOptionsCLI - defaultStatsRow = "{{.ID}}\t{{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.MemPerc}}\t{{.NetIO}}\t{{.BlockIO}}\t{{.PIDS}}\n" - defaultStatsHeader = "ID\tNAME\tCPU %\tMEM USAGE / LIMIT\tMEM %\tNET IO\tBLOCK IO\tPIDS\n" + statsOptions statsOptionsCLI + defaultStatsRow = "{{.ID}}\t{{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.MemPerc}}\t{{.NetIO}}\t{{.BlockIO}}\t{{.PIDS}}\n" ) func statFlags(flags *pflag.FlagSet) { @@ -139,7 +139,16 @@ func stats(cmd *cobra.Command, args []string) error { } func outputStats(reports []define.ContainerStats) error { - if len(statsOptions.Format) < 1 && !statsOptions.NoReset { + headers := report.Headers(define.ContainerStats{}, map[string]string{ + "ID": "ID", + "CPUPerc": "CPU %", + "MemUsage": "MEM USAGE / LIMIT", + "MemPerc": "MEM %", + "NetIO": "NET IO", + "BlockIO": "BLOCK IO", + "PIDS": "PIDS", + }) + if !statsOptions.NoReset { tm.Clear() tm.MoveCursor(1, 1) tm.Flush() @@ -148,25 +157,27 @@ func outputStats(reports []define.ContainerStats) error { for _, r := range reports { stats = append(stats, containerStats{r}) } - if statsOptions.Format == "json" { + if parse.MatchesJSONFormat(statsOptions.Format) { return outputJSON(stats) } format := defaultStatsRow + if len(statsOptions.Format) > 0 { - format = statsOptions.Format - if !strings.HasSuffix(format, "\n") { - format += "\n" - } + format = report.NormalizeFormat(statsOptions.Format) + } else if len(statsOptions.Format) < 1 { + format = defaultStatsRow } format = "{{range . }}" + format + "{{end}}" - if len(statsOptions.Format) < 1 { - format = defaultStatsHeader + format - } tmpl, err := template.New("stats").Parse(format) if err != nil { return err } w := tabwriter.NewWriter(os.Stdout, 8, 2, 2, ' ', 0) + if len(statsOptions.Format) < 1 { + if err := tmpl.Execute(w, headers); err != nil { + return err + } + } if err := tmpl.Execute(w, stats); err != nil { return err } diff --git a/cmd/podman/pods/ps.go b/cmd/podman/pods/ps.go index b7952e6e3..0013cca02 100644 --- a/cmd/podman/pods/ps.go +++ b/cmd/podman/pods/ps.go @@ -106,12 +106,13 @@ func pods(cmd *cobra.Command, _ []string) error { } headers := report.Headers(ListPodReporter{}, map[string]string{ - "ContainerIds": "IDS", - "ContainerNames": "NAMES", - "ContainerStatuses": "STATUS", - "Namespace": "NAMESPACES", + "Id": "POD ID", + "Name": "NAME", + "Status": "STATUS", + "Labels": "LABELS", "NumberOfContainers": "# OF CONTAINERS", - "InfraId": "INFRA ID", + "Created": "CREATED", + "InfraID": "INFRA ID", }) row := podPsFormat() if cmd.Flags().Changed("format") { @@ -135,7 +136,7 @@ func pods(cmd *cobra.Command, _ []string) error { } func podPsFormat() string { - row := []string{"{{.Id}}", "{{.Name}}", "{{.Status}}", "{{.Created}}}"} + row := []string{"{{.Id}}", "{{.Name}}", "{{.Status}}", "{{.Created}}", "{{.InfraID}}"} if psInput.CtrIds { row = append(row, "{{.ContainerIds}}") diff --git a/docs/source/markdown/podman-pod-ps.1.md b/docs/source/markdown/podman-pod-ps.1.md index 035c20c7f..3df4403b7 100644 --- a/docs/source/markdown/podman-pod-ps.1.md +++ b/docs/source/markdown/podman-pod-ps.1.md @@ -68,11 +68,10 @@ Valid placeholders for the Go template are listed below: | .Name | Name of pod | | .Status | Status of pod | | .Labels | All the labels assigned to the pod | -| .ContainerInfo | Show the names, ids and/or statuses of containers (only shows 9 unless no-trunc is specified) | | .NumberOfContainers | Show the number of containers attached to pod | | .Cgroup | Cgroup path of pod | -| .UsePodCgroup | Whether containers use the Cgroup of the pod | - +| .Created | Creation time of pod | +| .InfraID | Pod infra container ID | **--sort** Sort by created, ID, name, status, or number of containers diff --git a/docs/source/markdown/podman-stats.1.md b/docs/source/markdown/podman-stats.1.md index 741873c3f..042da26d1 100644 --- a/docs/source/markdown/podman-stats.1.md +++ b/docs/source/markdown/podman-stats.1.md @@ -47,12 +47,11 @@ Valid placeholders for the Go template are listed below: | **Placeholder** | **Description** | | --------------- | --------------- | -| .Pod | Pod ID | | .ID | Container ID | | .Name | Container Name | -| .CPU | CPU percentage | +| .CPUPerc | CPU percentage | | .MemUsage | Memory usage | -| .Mem | Memory percentage | +| .MemPerc | Memory percentage | | .NetIO | Network IO | | .BlockIO | Block IO | | .PIDS | Number of PIDs | |