summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2018-10-23 07:27:19 -0700
committerGitHub <noreply@github.com>2018-10-23 07:27:19 -0700
commitab2b3d64ceaf496107c734575581460185c97369 (patch)
tree679df8924249e4b024886d80c4ab25e412b85825
parent9a6a64f78ca3837a0e02373b2ae7f3769fbde568 (diff)
parent6362158615e9bc985efcc2af6d5119df3d073f64 (diff)
downloadpodman-ab2b3d64ceaf496107c734575581460185c97369.tar.gz
podman-ab2b3d64ceaf496107c734575581460185c97369.tar.bz2
podman-ab2b3d64ceaf496107c734575581460185c97369.zip
Merge pull request #1697 from baude/statserr
correct stats err with non-running containers
-rw-r--r--cmd/podman/stats.go7
-rw-r--r--test/e2e/stats_test.go19
2 files changed, 7 insertions, 19 deletions
diff --git a/cmd/podman/stats.go b/cmd/podman/stats.go
index dea351e88..f6beac1a8 100644
--- a/cmd/podman/stats.go
+++ b/cmd/podman/stats.go
@@ -84,8 +84,7 @@ func statsCmd(c *cli.Context) error {
if ctr > 1 {
return errors.Errorf("--all, --latest and containers cannot be used together")
} else if ctr == 0 {
- // If user didn't specify, imply --all
- all = true
+ return errors.Errorf("you must specify --all, --latest, or at least one container")
}
runtime, err := libpodruntime.GetRuntime(c)
@@ -126,6 +125,10 @@ func statsCmd(c *cli.Context) error {
for _, ctr := range ctrs {
initialStats, err := ctr.GetContainerStats(&libpod.ContainerStats{})
if err != nil {
+ // when doing "all", dont worry about containers that are not running
+ if c.Bool("all") && errors.Cause(err) == libpod.ErrCtrRemoved || errors.Cause(err) == libpod.ErrNoSuchCtr || errors.Cause(err) == libpod.ErrCtrStateInvalid {
+ continue
+ }
return err
}
containerStats[ctr.ID()] = initialStats
diff --git a/test/e2e/stats_test.go b/test/e2e/stats_test.go
index 8096f58b2..e456d7114 100644
--- a/test/e2e/stats_test.go
+++ b/test/e2e/stats_test.go
@@ -31,12 +31,6 @@ var _ = Describe("Podman stats", func() {
GinkgoWriter.Write([]byte(timedResult))
})
- It("podman stats should run with no containers", func() {
- session := podmanTest.Podman([]string{"stats", "--no-stream"})
- session.WaitWithDefaultTimeout()
- Expect(session.ExitCode()).To(Equal(0))
- })
-
It("podman stats with bogus container", func() {
session := podmanTest.Podman([]string{"stats", "--no-stream", "123"})
session.WaitWithDefaultTimeout()
@@ -53,15 +47,6 @@ var _ = Describe("Podman stats", func() {
Expect(session.ExitCode()).To(Equal(0))
})
- It("podman stats on a running container no id", 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 on all containers", func() {
session := podmanTest.RunTopContainer("")
session.WaitWithDefaultTimeout()
@@ -75,7 +60,7 @@ var _ = Describe("Podman stats", func() {
session := podmanTest.RunTopContainer("")
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
- session = podmanTest.Podman([]string{"stats", "--no-stream", "--format", "\"{{.Container}}\""})
+ session = podmanTest.Podman([]string{"stats", "--all", "--no-stream", "--format", "\"{{.Container}}\""})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
})
@@ -84,7 +69,7 @@ var _ = Describe("Podman stats", func() {
session := podmanTest.RunTopContainer("")
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
- session = podmanTest.Podman([]string{"stats", "--no-stream", "--format", "json"})
+ session = podmanTest.Podman([]string{"stats", "--all", "--no-stream", "--format", "json"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
Expect(session.IsJSONOutputValid()).To(BeTrue())