aboutsummaryrefslogtreecommitdiff
path: root/test/e2e/libpod_suite_test.go
diff options
context:
space:
mode:
authorbaude <bbaude@redhat.com>2019-04-15 09:03:18 -0500
committerbaude <bbaude@redhat.com>2019-04-18 13:42:27 -0500
commit55e630e7876557ebd2a44e81fa357aab9efbb793 (patch)
treecc8b6f224a6520e3c38bc41022abe40c6f1952a2 /test/e2e/libpod_suite_test.go
parentbf5ffdafb40f32fac891a8cd5fc64cfd5b77674f (diff)
downloadpodman-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.go168
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() {}