summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValentin Rothberg <rothberg@redhat.com>2019-10-16 10:30:57 +0200
committerValentin Rothberg <rothberg@redhat.com>2019-10-23 13:48:54 +0200
commit77a2bbb1c0df2536638e5a9030cda05d6524513e (patch)
tree9d2eb86f75ff52c4d220eaa2117ced3f77889156
parent46ad6bc1faac82555a9e6cfea93536e2a504e2e8 (diff)
downloadpodman-77a2bbb1c0df2536638e5a9030cda05d6524513e.tar.gz
podman-77a2bbb1c0df2536638e5a9030cda05d6524513e.tar.bz2
podman-77a2bbb1c0df2536638e5a9030cda05d6524513e.zip
stats: list all running containers unless specified otherwise
Unless specified otherwise by --all, --latest or via arguments, list all running containers. This matches the behaviour of Docker and is also illustrated in the man pages where containers and options are marked to be optional. Fixes: #4274 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
-rw-r--r--cmd/podman/stats.go7
-rw-r--r--test/e2e/stats_test.go11
-rw-r--r--test/system/015-help.bats8
3 files changed, 17 insertions, 9 deletions
diff --git a/cmd/podman/stats.go b/cmd/podman/stats.go
index 25514ec75..f8c476386 100644
--- a/cmd/podman/stats.go
+++ b/cmd/podman/stats.go
@@ -35,7 +35,7 @@ var (
statsDescription = "Display percentage of CPU, memory, network I/O, block I/O and PIDs for one or more containers."
_statsCommand = &cobra.Command{
- Use: "stats [flags] CONTAINER [CONTAINER...]",
+ Use: "stats [flags] [CONTAINER...]",
Short: "Display a live stream of container resource usage statistics",
Long: statsDescription,
RunE: func(cmd *cobra.Command, args []string) error {
@@ -44,9 +44,6 @@ var (
statsCommand.Remote = remoteclient
return statsCmd(&statsCommand)
},
- Args: func(cmd *cobra.Command, args []string) error {
- return checkAllAndLatest(cmd, args, false)
- },
Example: `podman stats --all --no-stream
podman stats ctrID
podman stats --no-stream --format "table {{.ID}} {{.Name}} {{.MemUsage}}" ctrID`,
@@ -92,8 +89,6 @@ func statsCmd(c *cliconfig.StatsValues) error {
if ctr > 1 {
return errors.Errorf("--all, --latest and containers cannot be used together")
- } else if ctr == 0 {
- return errors.Errorf("you must specify --all, --latest, or at least one container")
}
runtime, err := libpodruntime.GetRuntime(getContext(), &c.PodmanCommand)
diff --git a/test/e2e/stats_test.go b/test/e2e/stats_test.go
index 4000ab33a..fbf7c9920 100644
--- a/test/e2e/stats_test.go
+++ b/test/e2e/stats_test.go
@@ -11,6 +11,8 @@ import (
. "github.com/onsi/gomega"
)
+// TODO: we need to check the output. Currently, we only check the exit codes
+// which is not enough.
var _ = Describe("Podman stats", func() {
var (
tempdir string
@@ -61,6 +63,15 @@ var _ = Describe("Podman stats", func() {
Expect(session.ExitCode()).To(Equal(0))
})
+ It("podman stats on all running containers", func() {
+ session := podmanTest.RunTopContainer("")
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Equal(0))
+ session = podmanTest.Podman([]string{"stats", "--no-stream"})
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Equal(0))
+ })
+
It("podman stats only output cids", func() {
session := podmanTest.RunTopContainer("")
session.WaitWithDefaultTimeout()
diff --git a/test/system/015-help.bats b/test/system/015-help.bats
index a987f04bc..fd4be87b2 100644
--- a/test/system/015-help.bats
+++ b/test/system/015-help.bats
@@ -55,9 +55,11 @@ function check_help() {
# If usage has required arguments, try running without them
if expr "$usage" : '.*\[flags\] [A-Z]' >/dev/null; then
- dprint "podman $@ $cmd (without required args)"
- run_podman 125 "$@" $cmd
- is "$output" "Error:"
+ if [ "$cmd" != "stats"]; then
+ dprint "podman $@ $cmd (without required args)"
+ run_podman 125 "$@" $cmd
+ is "$output" "Error:"
+ fi
fi
count=$(expr $count + 1)