summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorValentin Rothberg <rothberg@redhat.com>2020-09-24 14:28:10 +0200
committerValentin Rothberg <rothberg@redhat.com>2020-09-24 14:28:10 +0200
commit19b955f0999f7fe9e187e94d60327e4d6ee891c0 (patch)
tree98978a07b57f1b4d4290fd9c4c44a64f7acc41a6 /cmd
parent762b787fbf741eec0e59d81aaebbfc467351ceaa (diff)
downloadpodman-19b955f0999f7fe9e187e94d60327e4d6ee891c0.tar.gz
podman-19b955f0999f7fe9e187e94d60327e4d6ee891c0.tar.bz2
podman-19b955f0999f7fe9e187e94d60327e4d6ee891c0.zip
stats: break out CLI options
Have a clear separation of concerns for the CLI-only options (and their logic) from the backend. The backend logic is now easier to understand (e.g., `stream` instead of `noStream`). Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/podman/containers/stats.go20
1 files changed, 18 insertions, 2 deletions
diff --git a/cmd/podman/containers/stats.go b/cmd/podman/containers/stats.go
index 1a4adb376..bbd389bbf 100644
--- a/cmd/podman/containers/stats.go
+++ b/cmd/podman/containers/stats.go
@@ -47,8 +47,18 @@ var (
}
)
+// statsOptionsCLI is used for storing CLI arguments. Some fields are later
+// used in the backend.
+type statsOptionsCLI struct {
+ All bool
+ Format string
+ Latest bool
+ NoReset bool
+ NoStream bool
+}
+
var (
- statsOptions entities.ContainerStatsOptions
+ 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"
)
@@ -107,7 +117,13 @@ func stats(cmd *cobra.Command, args []string) error {
}
}
- statsChan, err := registry.ContainerEngine().ContainerStats(registry.Context(), args, statsOptions)
+ // Convert to the entities options. We should not leak CLI-only
+ // options into the backend and separate concerns.
+ opts := entities.ContainerStatsOptions{
+ Latest: statsOptions.Latest,
+ Stream: !statsOptions.NoStream,
+ }
+ statsChan, err := registry.ContainerEngine().ContainerStats(registry.Context(), args, opts)
if err != nil {
return err
}