summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrent Baude <bbaude@redhat.com>2020-05-07 16:35:48 -0500
committerBrent Baude <bbaude@redhat.com>2020-05-08 09:05:37 -0500
commit20407a2f1fadb1488caac1560dfdd56facff4153 (patch)
treee6c1e9fb94b09bc54caaa631e858b11cfab31464
parenta4c607cc71ea5c3a4d4898a84b19cdd236ae90bd (diff)
downloadpodman-20407a2f1fadb1488caac1560dfdd56facff4153.tar.gz
podman-20407a2f1fadb1488caac1560dfdd56facff4153.tar.bz2
podman-20407a2f1fadb1488caac1560dfdd56facff4153.zip
fix pod stats flake
it appears that the pod stats flake can be attributed to the fact that the container being run is not fully running when the stats call is made. because the stats call is in format of json, it fails when nil Signed-off-by: Brent Baude <bbaude@redhat.com>
-rw-r--r--cmd/podman/containers/stats.go1
-rw-r--r--test/e2e/stats_test.go20
2 files changed, 16 insertions, 5 deletions
diff --git a/cmd/podman/containers/stats.go b/cmd/podman/containers/stats.go
index 3f9db671f..5b7f52cc7 100644
--- a/cmd/podman/containers/stats.go
+++ b/cmd/podman/containers/stats.go
@@ -234,7 +234,6 @@ func outputJSON(stats []*containerStats) error {
Pids: j.PIDS(),
})
}
-
b, err := json.MarshalIndent(jstats, "", " ")
if err != nil {
return err
diff --git a/test/e2e/stats_test.go b/test/e2e/stats_test.go
index 762417a17..d3af44891 100644
--- a/test/e2e/stats_test.go
+++ b/test/e2e/stats_test.go
@@ -5,6 +5,7 @@ package integration
import (
"fmt"
"os"
+ "time"
"github.com/containers/libpod/pkg/cgroups"
. "github.com/containers/libpod/test/utils"
@@ -87,13 +88,24 @@ var _ = Describe("Podman stats", func() {
})
It("podman stats with json output", func() {
+ var found bool
session := podmanTest.RunTopContainer("")
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
- session = podmanTest.Podman([]string{"stats", "--all", "--no-stream", "--format", "json"})
- session.WaitWithDefaultTimeout()
- Expect(session.ExitCode()).To(Equal(0))
- Expect(session.IsJSONOutputValid()).To(BeTrue())
+ for i := 0; i < 5; i++ {
+ ps := podmanTest.Podman([]string{"ps", "-q"})
+ ps.WaitWithDefaultTimeout()
+ if len(ps.OutputToStringArray()) == 1 {
+ found = true
+ break
+ }
+ time.Sleep(time.Second)
+ }
+ Expect(found).To(BeTrue())
+ stats := podmanTest.Podman([]string{"stats", "--all", "--no-stream", "--format", "json"})
+ stats.WaitWithDefaultTimeout()
+ Expect(stats.ExitCode()).To(Equal(0))
+ Expect(stats.IsJSONOutputValid()).To(BeTrue())
})
It("podman stats on a container with no net ns", func() {