github.com/AbhinandanKurakure/podman/v3@v3.4.10/test/e2e/pod_stop_test.go (about) 1 package integration 2 3 import ( 4 "io/ioutil" 5 "os" 6 7 . "github.com/containers/podman/v3/test/utils" 8 . "github.com/onsi/ginkgo" 9 . "github.com/onsi/gomega" 10 . "github.com/onsi/gomega/gexec" 11 ) 12 13 var _ = Describe("Podman pod stop", func() { 14 var ( 15 tempdir string 16 err error 17 podmanTest *PodmanTestIntegration 18 ) 19 20 BeforeEach(func() { 21 tempdir, err = CreateTempDirInTempDir() 22 if err != nil { 23 os.Exit(1) 24 } 25 podmanTest = PodmanTestCreate(tempdir) 26 podmanTest.Setup() 27 podmanTest.SeedImages() 28 }) 29 30 AfterEach(func() { 31 podmanTest.Cleanup() 32 f := CurrentGinkgoTestDescription() 33 processTestResult(f) 34 35 }) 36 37 It("podman pod stop bogus pod", func() { 38 session := podmanTest.Podman([]string{"pod", "stop", "123"}) 39 session.WaitWithDefaultTimeout() 40 Expect(session).Should(Exit(125)) 41 }) 42 43 It("podman pod stop --ignore bogus pod", func() { 44 45 session := podmanTest.Podman([]string{"pod", "stop", "--ignore", "123"}) 46 session.WaitWithDefaultTimeout() 47 Expect(session).Should(Exit(0)) 48 }) 49 50 It("podman stop bogus pod and a running pod", func() { 51 _, ec, podid1 := podmanTest.CreatePod(nil) 52 Expect(ec).To(Equal(0)) 53 54 session := podmanTest.RunTopContainerInPod("test1", podid1) 55 session.WaitWithDefaultTimeout() 56 Expect(session).Should(Exit(0)) 57 58 session = podmanTest.Podman([]string{"pod", "stop", "bogus", "test1"}) 59 session.WaitWithDefaultTimeout() 60 Expect(session).Should(Exit(125)) 61 }) 62 63 It("podman stop --ignore bogus pod and a running pod", func() { 64 65 _, ec, podid1 := podmanTest.CreatePod(nil) 66 Expect(ec).To(Equal(0)) 67 68 session := podmanTest.RunTopContainerInPod("test1", podid1) 69 session.WaitWithDefaultTimeout() 70 Expect(session).Should(Exit(0)) 71 72 session = podmanTest.Podman([]string{"pod", "stop", "--ignore", "bogus", "test1"}) 73 session.WaitWithDefaultTimeout() 74 Expect(session).Should(Exit(0)) 75 76 session = podmanTest.Podman([]string{"pod", "stop", "--ignore", "test1", "bogus"}) 77 session.WaitWithDefaultTimeout() 78 Expect(session).Should(Exit(0)) 79 }) 80 81 It("podman pod stop single empty pod", func() { 82 _, ec, podid := podmanTest.CreatePod(nil) 83 Expect(ec).To(Equal(0)) 84 85 session := podmanTest.Podman([]string{"pod", "stop", podid}) 86 session.WaitWithDefaultTimeout() 87 Expect(session).Should(Exit(0)) 88 }) 89 90 It("podman pod stop single pod by name", func() { 91 _, ec, _ := podmanTest.CreatePod(map[string][]string{"--name": {"foobar99"}}) 92 Expect(ec).To(Equal(0)) 93 94 session := podmanTest.RunTopContainerInPod("", "foobar99") 95 session.WaitWithDefaultTimeout() 96 Expect(session).Should(Exit(0)) 97 98 session = podmanTest.Podman([]string{"pod", "stop", "foobar99"}) 99 session.WaitWithDefaultTimeout() 100 Expect(session).Should(Exit(0)) 101 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0)) 102 }) 103 104 It("podman pod stop multiple pods", func() { 105 _, ec, podid1 := podmanTest.CreatePod(map[string][]string{"--name": {"foobar99"}}) 106 Expect(ec).To(Equal(0)) 107 108 session := podmanTest.RunTopContainerInPod("", "foobar99") 109 session.WaitWithDefaultTimeout() 110 Expect(session).Should(Exit(0)) 111 112 _, ec2, podid2 := podmanTest.CreatePod(map[string][]string{"--name": {"foobar100"}}) 113 Expect(ec2).To(Equal(0)) 114 115 session = podmanTest.RunTopContainerInPod("", "foobar100") 116 session.WaitWithDefaultTimeout() 117 Expect(session).Should(Exit(0)) 118 119 session = podmanTest.Podman([]string{"pod", "stop", podid1, podid2}) 120 session.WaitWithDefaultTimeout() 121 Expect(session).Should(Exit(0)) 122 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0)) 123 }) 124 125 It("podman pod stop all pods", func() { 126 _, ec, _ := podmanTest.CreatePod(map[string][]string{"--name": {"foobar99"}}) 127 Expect(ec).To(Equal(0)) 128 129 session := podmanTest.RunTopContainerInPod("", "foobar99") 130 session.WaitWithDefaultTimeout() 131 Expect(session).Should(Exit(0)) 132 133 _, ec, _ = podmanTest.CreatePod(map[string][]string{"--name": {"foobar100"}}) 134 Expect(ec).To(Equal(0)) 135 136 session = podmanTest.RunTopContainerInPod("", "foobar100") 137 session.WaitWithDefaultTimeout() 138 Expect(session).Should(Exit(0)) 139 140 session = podmanTest.Podman([]string{"pod", "stop", "--all"}) 141 session.WaitWithDefaultTimeout() 142 Expect(session).Should(Exit(0)) 143 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0)) 144 }) 145 146 It("podman pod stop latest pod", func() { 147 _, ec, _ := podmanTest.CreatePod(map[string][]string{"--name": {"foobar99"}}) 148 Expect(ec).To(Equal(0)) 149 150 session := podmanTest.RunTopContainerInPod("", "foobar99") 151 session.WaitWithDefaultTimeout() 152 Expect(session).Should(Exit(0)) 153 154 _, ec, _ = podmanTest.CreatePod(map[string][]string{"--name": {"foobar100"}}) 155 Expect(ec).To(Equal(0)) 156 157 session = podmanTest.RunTopContainerInPod("", "foobar100") 158 session.WaitWithDefaultTimeout() 159 Expect(session).Should(Exit(0)) 160 161 podid := "--latest" 162 if IsRemote() { 163 podid = "foobar100" 164 } 165 session = podmanTest.Podman([]string{"pod", "stop", podid}) 166 session.WaitWithDefaultTimeout() 167 Expect(session).Should(Exit(0)) 168 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(1)) 169 }) 170 171 It("podman pod stop multiple pods with bogus", func() { 172 _, ec, podid1 := podmanTest.CreatePod(map[string][]string{"--name": {"foobar99"}}) 173 Expect(ec).To(Equal(0)) 174 175 session := podmanTest.RunTopContainerInPod("", "foobar99") 176 session.WaitWithDefaultTimeout() 177 Expect(session).Should(Exit(0)) 178 179 session = podmanTest.Podman([]string{"pod", "stop", podid1, "doesnotexist"}) 180 session.WaitWithDefaultTimeout() 181 Expect(session).Should(Exit(125)) 182 }) 183 184 It("podman pod start/stop single pod via --pod-id-file", func() { 185 tmpDir, err := ioutil.TempDir("", "") 186 Expect(err).To(BeNil()) 187 tmpFile := tmpDir + "podID" 188 defer os.RemoveAll(tmpDir) 189 190 podName := "rudolph" 191 192 // Create a pod with --pod-id-file. 193 session := podmanTest.Podman([]string{"pod", "create", "--name", podName, "--pod-id-file", tmpFile}) 194 session.WaitWithDefaultTimeout() 195 Expect(session).Should(Exit(0)) 196 197 // Create container inside the pod. 198 session = podmanTest.Podman([]string{"create", "--pod", podName, ALPINE, "top"}) 199 session.WaitWithDefaultTimeout() 200 Expect(session).Should(Exit(0)) 201 202 session = podmanTest.Podman([]string{"pod", "start", "--pod-id-file", tmpFile}) 203 session.WaitWithDefaultTimeout() 204 Expect(session).Should(Exit(0)) 205 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(2)) // infra+top 206 207 session = podmanTest.Podman([]string{"pod", "stop", "--pod-id-file", tmpFile}) 208 session.WaitWithDefaultTimeout() 209 Expect(session).Should(Exit(0)) 210 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0)) 211 }) 212 213 It("podman pod start/stop multiple pods via --pod-id-file", func() { 214 tmpDir, err := ioutil.TempDir("", "") 215 Expect(err).To(BeNil()) 216 defer os.RemoveAll(tmpDir) 217 218 podIDFiles := []string{} 219 for _, i := range "0123456789" { 220 tmpFile := tmpDir + "cid" + string(i) 221 podName := "rudolph" + string(i) 222 // Create a pod with --pod-id-file. 223 session := podmanTest.Podman([]string{"pod", "create", "--name", podName, "--pod-id-file", tmpFile}) 224 session.WaitWithDefaultTimeout() 225 Expect(session).Should(Exit(0)) 226 227 // Create container inside the pod. 228 session = podmanTest.Podman([]string{"create", "--pod", podName, ALPINE, "top"}) 229 session.WaitWithDefaultTimeout() 230 Expect(session).Should(Exit(0)) 231 232 // Append the id files along with the command. 233 podIDFiles = append(podIDFiles, "--pod-id-file") 234 podIDFiles = append(podIDFiles, tmpFile) 235 } 236 237 cmd := []string{"pod", "start"} 238 cmd = append(cmd, podIDFiles...) 239 session := podmanTest.Podman(cmd) 240 session.WaitWithDefaultTimeout() 241 Expect(session).Should(Exit(0)) 242 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(20)) // 10*(infra+top) 243 244 cmd = []string{"pod", "stop"} 245 cmd = append(cmd, podIDFiles...) 246 session = podmanTest.Podman(cmd) 247 session.WaitWithDefaultTimeout() 248 Expect(session).Should(Exit(0)) 249 Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0)) 250 }) 251 })