summaryrefslogtreecommitdiff
path: root/cmd/podman/pods/ps.go
diff options
context:
space:
mode:
authorJhon Honce <jhonce@redhat.com>2021-12-02 11:45:48 -0700
committerJhon Honce <jhonce@redhat.com>2021-12-06 10:51:29 -0700
commitd35aa3f293c2132bc32de9cf4dcffe8b5bf6f8c8 (patch)
tree4bdee5d83e007cf0d3cf636397e1aae966948626 /cmd/podman/pods/ps.go
parent6d1b2dced4e8e8651007fd245331b0ab377f1b33 (diff)
downloadpodman-d35aa3f293c2132bc32de9cf4dcffe8b5bf6f8c8.tar.gz
podman-d35aa3f293c2132bc32de9cf4dcffe8b5bf6f8c8.tar.bz2
podman-d35aa3f293c2132bc32de9cf4dcffe8b5bf6f8c8.zip
Refactor podman pods to report.Formatter
[NO NEW TESTS NEEDED] Support better compatibility output for podman pods commands See #10974 Depends on containers/common#831 Signed-off-by: Jhon Honce <jhonce@redhat.com>
Diffstat (limited to 'cmd/podman/pods/ps.go')
-rw-r--r--cmd/podman/pods/ps.go63
1 files changed, 28 insertions, 35 deletions
diff --git a/cmd/podman/pods/ps.go b/cmd/podman/pods/ps.go
index 808ec31b3..0b1c76cb2 100644
--- a/cmd/podman/pods/ps.go
+++ b/cmd/podman/pods/ps.go
@@ -110,56 +110,49 @@ func pods(cmd *cobra.Command, _ []string) error {
return nil
}
- // Formatted output below
lpr := make([]ListPodReporter, 0, len(responses))
for _, r := range responses {
lpr = append(lpr, ListPodReporter{r})
}
- headers := report.Headers(ListPodReporter{}, map[string]string{
- "Id": "POD ID",
- "Name": "NAME",
- "Status": "STATUS",
- "Labels": "LABELS",
- "NumberOfContainers": "# OF CONTAINERS",
- "Created": "CREATED",
- "InfraID": "INFRA ID",
- "ContainerIds": "IDS",
- "ContainerNames": "NAMES",
- "ContainerStatuses": "STATUS",
- "Cgroup": "CGROUP",
- "Namespace": "NAMESPACES",
- })
- renderHeaders := true
- row := podPsFormat()
- if cmd.Flags().Changed("format") {
- renderHeaders = report.HasTable(psInput.Format)
- row = report.NormalizeFormat(psInput.Format)
- }
- format := report.EnforceRange(row)
+ rpt := report.New(os.Stdout, cmd.Name())
+ defer rpt.Flush()
- noHeading, _ := cmd.Flags().GetBool("noheading")
- if noHeading {
- renderHeaders = false
+ if cmd.Flags().Changed("format") {
+ rpt, err = rpt.Parse(report.OriginUser, psInput.Format)
+ } else {
+ rpt, err = rpt.Parse(report.OriginPodman, podPsFormat())
}
-
- tmpl, err := report.NewTemplate("list").Parse(format)
if err != nil {
return err
}
- w, err := report.NewWriterDefault(os.Stdout)
- if err != nil {
- return err
+ renderHeaders := true
+ if noHeading, _ := cmd.Flags().GetBool("noheading"); noHeading {
+ renderHeaders = false
}
- defer w.Flush()
- if renderHeaders {
- if err := tmpl.Execute(w, headers); err != nil {
+ if renderHeaders && rpt.RenderHeaders {
+ headers := report.Headers(ListPodReporter{}, map[string]string{
+ "Id": "POD ID",
+ "Name": "NAME",
+ "Status": "STATUS",
+ "Labels": "LABELS",
+ "NumberOfContainers": "# OF CONTAINERS",
+ "Created": "CREATED",
+ "InfraID": "INFRA ID",
+ "ContainerIds": "IDS",
+ "ContainerNames": "NAMES",
+ "ContainerStatuses": "STATUS",
+ "Cgroup": "CGROUP",
+ "Namespace": "NAMESPACES",
+ })
+
+ if err := rpt.Execute(headers); err != nil {
return err
}
}
- return tmpl.Execute(w, lpr)
+ return rpt.Execute(lpr)
}
func podPsFormat() string {
@@ -184,7 +177,7 @@ func podPsFormat() string {
if !psInput.CtrStatus && !psInput.CtrNames && !psInput.CtrIds {
row = append(row, "{{.NumberOfContainers}}")
}
- return strings.Join(row, "\t") + "\n"
+ return "{{range . }}" + strings.Join(row, "\t") + "\n" + "{{end -}}"
}
// ListPodReporter is a struct for pod ps output