mirror of
https://github.com/containers/podman
synced 2024-10-20 09:13:46 +00:00
Merge pull request #3360 from baude/fixporttesttiming
fix port -l timing with healthchecks
This commit is contained in:
commit
f9bb91268d
|
@ -10,6 +10,7 @@ import (
|
|||
"sort"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/containers/libpod/cmd/podman/shared"
|
||||
"github.com/containers/libpod/libpod"
|
||||
|
@ -22,6 +23,7 @@ import (
|
|||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
"github.com/onsi/gomega/gexec"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -367,6 +369,18 @@ func (p *PodmanTestIntegration) RunLsContainer(name string) (*PodmanSessionInteg
|
|||
return session, session.ExitCode(), session.OutputToString()
|
||||
}
|
||||
|
||||
// RunNginxWithHealthCheck runs the alpine nginx container with an optional name and adds a healthcheck into it
|
||||
func (p *PodmanTestIntegration) RunNginxWithHealthCheck(name string) (*PodmanSessionIntegration, string) {
|
||||
var podmanArgs = []string{"run"}
|
||||
if name != "" {
|
||||
podmanArgs = append(podmanArgs, "--name", name)
|
||||
}
|
||||
podmanArgs = append(podmanArgs, "-dt", "-P", "--healthcheck-command", "CMD-SHELL curl http://localhost/", nginx)
|
||||
session := p.Podman(podmanArgs)
|
||||
session.WaitWithDefaultTimeout()
|
||||
return session, session.OutputToString()
|
||||
}
|
||||
|
||||
func (p *PodmanTestIntegration) RunLsContainerInPod(name, pod string) (*PodmanSessionIntegration, int, string) {
|
||||
var podmanArgs = []string{"run", "--pod", pod}
|
||||
if name != "" {
|
||||
|
@ -508,3 +522,16 @@ func (p *PodmanTestIntegration) ImageExistsInMainStore(idOrName string) bool {
|
|||
results.WaitWithDefaultTimeout()
|
||||
return Expect(results.ExitCode()).To(Equal(0))
|
||||
}
|
||||
|
||||
func (p *PodmanTestIntegration) RunHealthCheck(cid string) error {
|
||||
for i := 0; i < 10; i++ {
|
||||
hc := p.Podman([]string{"healthcheck", "run", cid})
|
||||
hc.WaitWithDefaultTimeout()
|
||||
if hc.ExitCode() == 0 {
|
||||
return nil
|
||||
}
|
||||
fmt.Printf("Waiting for %s to pass healthcheck\n", cid)
|
||||
time.Sleep(1 * time.Second)
|
||||
}
|
||||
return errors.Errorf("unable to detect %s as running", cid)
|
||||
}
|
||||
|
|
|
@ -48,11 +48,14 @@ var _ = Describe("Podman port", func() {
|
|||
Expect(result.ExitCode()).ToNot(Equal(0))
|
||||
})
|
||||
|
||||
It("podman port -l nginx", func() {
|
||||
session := podmanTest.Podman([]string{"run", "-dt", "-P", nginx})
|
||||
session.WaitWithDefaultTimeout()
|
||||
It("podman port -l nginx", func() {
|
||||
session, cid := podmanTest.RunNginxWithHealthCheck("")
|
||||
Expect(session.ExitCode()).To(Equal(0))
|
||||
|
||||
if err := podmanTest.RunHealthCheck(cid); err != nil {
|
||||
Fail(err.Error())
|
||||
}
|
||||
|
||||
result := podmanTest.Podman([]string{"port", "-l"})
|
||||
result.WaitWithDefaultTimeout()
|
||||
Expect(result.ExitCode()).To(Equal(0))
|
||||
|
@ -61,10 +64,13 @@ var _ = Describe("Podman port", func() {
|
|||
})
|
||||
|
||||
It("podman container port -l nginx", func() {
|
||||
session := podmanTest.Podman([]string{"container", "run", "-dt", "-P", nginx})
|
||||
session.WaitWithDefaultTimeout()
|
||||
session, cid := podmanTest.RunNginxWithHealthCheck("")
|
||||
Expect(session.ExitCode()).To(Equal(0))
|
||||
|
||||
if err := podmanTest.RunHealthCheck(cid); err != nil {
|
||||
Fail(err.Error())
|
||||
}
|
||||
|
||||
result := podmanTest.Podman([]string{"container", "port", "-l"})
|
||||
result.WaitWithDefaultTimeout()
|
||||
Expect(result.ExitCode()).To(Equal(0))
|
||||
|
@ -73,10 +79,13 @@ var _ = Describe("Podman port", func() {
|
|||
})
|
||||
|
||||
It("podman port -l port nginx", func() {
|
||||
session := podmanTest.Podman([]string{"run", "-dt", "-P", nginx})
|
||||
session.WaitWithDefaultTimeout()
|
||||
session, cid := podmanTest.RunNginxWithHealthCheck("")
|
||||
Expect(session.ExitCode()).To(Equal(0))
|
||||
|
||||
if err := podmanTest.RunHealthCheck(cid); err != nil {
|
||||
Fail(err.Error())
|
||||
}
|
||||
|
||||
result := podmanTest.Podman([]string{"port", "-l", "80"})
|
||||
result.WaitWithDefaultTimeout()
|
||||
Expect(result.ExitCode()).To(Equal(0))
|
||||
|
@ -85,10 +94,13 @@ var _ = Describe("Podman port", func() {
|
|||
})
|
||||
|
||||
It("podman port -a nginx", func() {
|
||||
session := podmanTest.Podman([]string{"run", "-dt", "-P", nginx})
|
||||
session.WaitWithDefaultTimeout()
|
||||
session, cid := podmanTest.RunNginxWithHealthCheck("")
|
||||
Expect(session.ExitCode()).To(Equal(0))
|
||||
|
||||
if err := podmanTest.RunHealthCheck(cid); err != nil {
|
||||
Fail(err.Error())
|
||||
}
|
||||
|
||||
result := podmanTest.Podman([]string{"port", "-a"})
|
||||
result.WaitWithDefaultTimeout()
|
||||
Expect(result.ExitCode()).To(Equal(0))
|
||||
|
|
Loading…
Reference in a new issue