diff options
author | baude <bbaude@redhat.com> | 2019-04-15 09:03:18 -0500 |
---|---|---|
committer | baude <bbaude@redhat.com> | 2019-04-18 13:42:27 -0500 |
commit | 55e630e7876557ebd2a44e81fa357aab9efbb793 (patch) | |
tree | cc8b6f224a6520e3c38bc41022abe40c6f1952a2 /test/e2e/libpod_suite_test.go | |
parent | bf5ffdafb40f32fac891a8cd5fc64cfd5b77674f (diff) | |
download | podman-55e630e7876557ebd2a44e81fa357aab9efbb793.tar.gz podman-55e630e7876557ebd2a44e81fa357aab9efbb793.tar.bz2 podman-55e630e7876557ebd2a44e81fa357aab9efbb793.zip |
podman-remote pause|unpause
Add the ability to pause and unpause containers with the remote client.
Also turned on the pause tests!
Signed-off-by: baude <bbaude@redhat.com>
Diffstat (limited to 'test/e2e/libpod_suite_test.go')
-rw-r--r-- | test/e2e/libpod_suite_test.go | 168 |
1 files changed, 2 insertions, 166 deletions
diff --git a/test/e2e/libpod_suite_test.go b/test/e2e/libpod_suite_test.go index a69c1ba9a..867844c32 100644 --- a/test/e2e/libpod_suite_test.go +++ b/test/e2e/libpod_suite_test.go @@ -3,27 +3,17 @@ package integration import ( - "encoding/json" "fmt" "io/ioutil" "os" - "os/exec" "path/filepath" "strings" - "github.com/containers/libpod/libpod" - "github.com/containers/libpod/pkg/inspect" - . "github.com/containers/libpod/test/utils" "github.com/onsi/ginkgo" - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - "github.com/onsi/gomega/gexec" ) func SkipIfRemote() { - if os.Geteuid() != 0 { - ginkgo.Skip("This function is not enabled for rootless podman") - } + ginkgo.Skip("This function is not enabled for remote podman") } func SkipIfRootless() { @@ -44,161 +34,6 @@ func (p *PodmanTestIntegration) PodmanAsUser(args []string, uid, gid uint32, cwd return &PodmanSessionIntegration{podmanSession} } -// PodmanPID execs podman and returns its PID -func (p *PodmanTestIntegration) PodmanPID(args []string) (*PodmanSessionIntegration, int) { - podmanOptions := p.MakeOptions(args) - fmt.Printf("Running: %s %s\n", p.PodmanBinary, strings.Join(podmanOptions, " ")) - command := exec.Command(p.PodmanBinary, podmanOptions...) - session, err := gexec.Start(command, GinkgoWriter, GinkgoWriter) - if err != nil { - Fail(fmt.Sprintf("unable to run podman command: %s", strings.Join(podmanOptions, " "))) - } - podmanSession := &PodmanSession{session} - return &PodmanSessionIntegration{podmanSession}, command.Process.Pid -} - -// Cleanup cleans up the temporary store -func (p *PodmanTestIntegration) Cleanup() { - // Remove all containers - stopall := p.Podman([]string{"stop", "-a", "--timeout", "0"}) - // stopall.WaitWithDefaultTimeout() - stopall.Wait(90) - - session := p.Podman([]string{"rm", "-fa"}) - session.Wait(90) - - // Nuke tempdir - if err := os.RemoveAll(p.TempDir); err != nil { - fmt.Printf("%q\n", err) - } - - // Clean up the registries configuration file ENV variable set in Create - resetRegistriesConfigEnv() -} - -// CleanupPod cleans up the temporary store -func (p *PodmanTestIntegration) CleanupPod() { - // Remove all containers - session := p.Podman([]string{"pod", "rm", "-fa"}) - session.Wait(90) - // Nuke tempdir - if err := os.RemoveAll(p.TempDir); err != nil { - fmt.Printf("%q\n", err) - } -} - -// CleanupVolume cleans up the temporary store -func (p *PodmanTestIntegration) CleanupVolume() { - // Remove all containers - session := p.Podman([]string{"volume", "rm", "-fa"}) - session.Wait(90) - // Nuke tempdir - if err := os.RemoveAll(p.TempDir); err != nil { - fmt.Printf("%q\n", err) - } -} - -// PullImages pulls multiple images -func (p *PodmanTestIntegration) PullImages(images []string) error { - for _, i := range images { - p.PullImage(i) - } - return nil -} - -// PullImage pulls a single image -// TODO should the timeout be configurable? -func (p *PodmanTestIntegration) PullImage(image string) error { - session := p.Podman([]string{"pull", image}) - session.Wait(60) - Expect(session.ExitCode()).To(Equal(0)) - return nil -} - -// InspectContainerToJSON takes the session output of an inspect -// container and returns json -func (s *PodmanSessionIntegration) InspectContainerToJSON() []inspect.ContainerData { - var i []inspect.ContainerData - err := json.Unmarshal(s.Out.Contents(), &i) - Expect(err).To(BeNil()) - return i -} - -// InspectPodToJSON takes the sessions output from a pod inspect and returns json -func (s *PodmanSessionIntegration) InspectPodToJSON() libpod.PodInspect { - var i libpod.PodInspect - err := json.Unmarshal(s.Out.Contents(), &i) - Expect(err).To(BeNil()) - return i -} - -// CreatePod creates a pod with no infra container -// it optionally takes a pod name -func (p *PodmanTestIntegration) CreatePod(name string) (*PodmanSessionIntegration, int, string) { - var podmanArgs = []string{"pod", "create", "--infra=false", "--share", ""} - if name != "" { - podmanArgs = append(podmanArgs, "--name", name) - } - session := p.Podman(podmanArgs) - session.WaitWithDefaultTimeout() - return session, session.ExitCode(), session.OutputToString() -} - -// RunTopContainer runs a simple container in the background that -// runs top. If the name passed != "", it will have a name -func (p *PodmanTestIntegration) RunTopContainer(name string) *PodmanSessionIntegration { - var podmanArgs = []string{"run"} - if name != "" { - podmanArgs = append(podmanArgs, "--name", name) - } - podmanArgs = append(podmanArgs, "-d", ALPINE, "top") - return p.Podman(podmanArgs) -} - -func (p *PodmanTestIntegration) RunTopContainerInPod(name, pod string) *PodmanSessionIntegration { - var podmanArgs = []string{"run", "--pod", pod} - if name != "" { - podmanArgs = append(podmanArgs, "--name", name) - } - podmanArgs = append(podmanArgs, "-d", ALPINE, "top") - return p.Podman(podmanArgs) -} - -// RunLsContainer runs a simple container in the background that -// simply runs ls. If the name passed != "", it will have a name -func (p *PodmanTestIntegration) RunLsContainer(name string) (*PodmanSessionIntegration, int, string) { - var podmanArgs = []string{"run"} - if name != "" { - podmanArgs = append(podmanArgs, "--name", name) - } - podmanArgs = append(podmanArgs, "-d", ALPINE, "ls") - session := p.Podman(podmanArgs) - session.WaitWithDefaultTimeout() - return session, session.ExitCode(), session.OutputToString() -} - -func (p *PodmanTestIntegration) RunLsContainerInPod(name, pod string) (*PodmanSessionIntegration, int, string) { - var podmanArgs = []string{"run", "--pod", pod} - if name != "" { - podmanArgs = append(podmanArgs, "--name", name) - } - podmanArgs = append(podmanArgs, "-d", ALPINE, "ls") - session := p.Podman(podmanArgs) - session.WaitWithDefaultTimeout() - return session, session.ExitCode(), session.OutputToString() -} - -// BuildImage uses podman build and buildah to build an image -// called imageName based on a string dockerfile -func (p *PodmanTestIntegration) BuildImage(dockerfile, imageName string, layers string) { - dockerfilePath := filepath.Join(p.TempDir, "Dockerfile") - err := ioutil.WriteFile(dockerfilePath, []byte(dockerfile), 0755) - Expect(err).To(BeNil()) - session := p.Podman([]string{"build", "--layers=" + layers, "-t", imageName, "--file", dockerfilePath, p.TempDir}) - session.Wait(120) - Expect(session.ExitCode()).To(Equal(0)) -} - func (p *PodmanTestIntegration) setDefaultRegistriesConfigEnv() { defaultFile := filepath.Join(INTEGRATION_ROOT, "test/registries.conf") os.Setenv("REGISTRIES_CONFIG_PATH", defaultFile) @@ -245,3 +80,4 @@ func (p *PodmanTestIntegration) RestoreArtifact(image string) error { restore.Wait(90) return nil } +func (p *PodmanTestIntegration) StopVarlink() {} |