podman

Форк
0
/
pod_stop_test.go 
221 строка · 7.3 Кб
1
package integration
2

3
import (
4
	"path/filepath"
5

6
	. "github.com/containers/podman/v5/test/utils"
7
	. "github.com/onsi/ginkgo/v2"
8
	. "github.com/onsi/gomega"
9
	. "github.com/onsi/gomega/gexec"
10
)
11

12
var _ = Describe("Podman pod stop", func() {
13

14
	It("podman pod stop bogus pod", func() {
15
		session := podmanTest.Podman([]string{"pod", "stop", "123"})
16
		session.WaitWithDefaultTimeout()
17
		Expect(session).Should(Exit(125))
18
	})
19

20
	It("podman pod stop --ignore bogus pod", func() {
21

22
		session := podmanTest.Podman([]string{"pod", "stop", "--ignore", "123"})
23
		session.WaitWithDefaultTimeout()
24
		Expect(session).Should(ExitCleanly())
25
	})
26

27
	It("podman stop bogus pod and a running pod", func() {
28
		_, ec, podid1 := podmanTest.CreatePod(nil)
29
		Expect(ec).To(Equal(0))
30

31
		session := podmanTest.RunTopContainerInPod("test1", podid1)
32
		session.WaitWithDefaultTimeout()
33
		Expect(session).Should(ExitCleanly())
34

35
		session = podmanTest.Podman([]string{"pod", "stop", "bogus", "test1"})
36
		session.WaitWithDefaultTimeout()
37
		Expect(session).Should(Exit(125))
38
	})
39

40
	It("podman stop --ignore bogus pod and a running pod", func() {
41

42
		_, ec, podid1 := podmanTest.CreatePod(nil)
43
		Expect(ec).To(Equal(0))
44

45
		session := podmanTest.RunTopContainerInPod("test1", podid1)
46
		session.WaitWithDefaultTimeout()
47
		Expect(session).Should(ExitCleanly())
48

49
		session = podmanTest.Podman([]string{"pod", "stop", "--ignore", "bogus", "test1"})
50
		session.WaitWithDefaultTimeout()
51
		Expect(session).Should(ExitCleanly())
52

53
		session = podmanTest.Podman([]string{"pod", "stop", "-t", "-1", "--ignore", "test1", "bogus"})
54
		session.WaitWithDefaultTimeout()
55
		Expect(session).Should(ExitCleanly())
56
	})
57

58
	It("podman pod stop single empty pod", func() {
59
		_, ec, podid := podmanTest.CreatePod(nil)
60
		Expect(ec).To(Equal(0))
61

62
		session := podmanTest.Podman([]string{"pod", "stop", podid})
63
		session.WaitWithDefaultTimeout()
64
		Expect(session).Should(ExitCleanly())
65
	})
66

67
	It("podman pod stop single pod by name", func() {
68
		_, ec, _ := podmanTest.CreatePod(map[string][]string{"--name": {"foobar99"}})
69
		Expect(ec).To(Equal(0))
70

71
		session := podmanTest.RunTopContainerInPod("", "foobar99")
72
		session.WaitWithDefaultTimeout()
73
		Expect(session).Should(ExitCleanly())
74

75
		session = podmanTest.Podman([]string{"pod", "stop", "foobar99"})
76
		session.WaitWithDefaultTimeout()
77
		Expect(session).Should(ExitCleanly())
78
		Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0))
79
	})
80

81
	It("podman pod stop multiple pods", func() {
82
		_, ec, podid1 := podmanTest.CreatePod(map[string][]string{"--name": {"foobar99"}})
83
		Expect(ec).To(Equal(0))
84

85
		session := podmanTest.RunTopContainerInPod("", "foobar99")
86
		session.WaitWithDefaultTimeout()
87
		Expect(session).Should(ExitCleanly())
88

89
		_, ec2, podid2 := podmanTest.CreatePod(map[string][]string{"--name": {"foobar100"}})
90
		Expect(ec2).To(Equal(0))
91

92
		session = podmanTest.RunTopContainerInPod("", "foobar100")
93
		session.WaitWithDefaultTimeout()
94
		Expect(session).Should(ExitCleanly())
95

96
		session = podmanTest.Podman([]string{"pod", "stop", podid1, podid2})
97
		session.WaitWithDefaultTimeout()
98
		Expect(session).Should(ExitCleanly())
99
		Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0))
100
	})
101

102
	It("podman pod stop all pods", func() {
103
		_, ec, _ := podmanTest.CreatePod(map[string][]string{"--name": {"foobar99"}})
104
		Expect(ec).To(Equal(0))
105

106
		session := podmanTest.RunTopContainerInPod("", "foobar99")
107
		session.WaitWithDefaultTimeout()
108
		Expect(session).Should(ExitCleanly())
109

110
		_, ec, _ = podmanTest.CreatePod(map[string][]string{"--name": {"foobar100"}})
111
		Expect(ec).To(Equal(0))
112

113
		session = podmanTest.RunTopContainerInPod("", "foobar100")
114
		session.WaitWithDefaultTimeout()
115
		Expect(session).Should(ExitCleanly())
116

117
		session = podmanTest.Podman([]string{"pod", "stop", "--all"})
118
		session.WaitWithDefaultTimeout()
119
		Expect(session).Should(ExitCleanly())
120
		Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0))
121
	})
122

123
	It("podman pod stop latest pod", func() {
124
		_, ec, _ := podmanTest.CreatePod(map[string][]string{"--name": {"foobar99"}})
125
		Expect(ec).To(Equal(0))
126

127
		session := podmanTest.RunTopContainerInPod("", "foobar99")
128
		session.WaitWithDefaultTimeout()
129
		Expect(session).Should(ExitCleanly())
130

131
		_, ec, _ = podmanTest.CreatePod(map[string][]string{"--name": {"foobar100"}})
132
		Expect(ec).To(Equal(0))
133

134
		session = podmanTest.RunTopContainerInPod("", "foobar100")
135
		session.WaitWithDefaultTimeout()
136
		Expect(session).Should(ExitCleanly())
137

138
		podid := "--latest"
139
		if IsRemote() {
140
			podid = "foobar100"
141
		}
142
		session = podmanTest.Podman([]string{"pod", "stop", podid})
143
		session.WaitWithDefaultTimeout()
144
		Expect(session).Should(ExitCleanly())
145
		Expect(podmanTest.NumberOfContainersRunning()).To(Equal(1))
146
	})
147

148
	It("podman pod stop multiple pods with bogus", func() {
149
		_, ec, podid1 := podmanTest.CreatePod(map[string][]string{"--name": {"foobar99"}})
150
		Expect(ec).To(Equal(0))
151

152
		session := podmanTest.RunTopContainerInPod("", "foobar99")
153
		session.WaitWithDefaultTimeout()
154
		Expect(session).Should(ExitCleanly())
155

156
		session = podmanTest.Podman([]string{"pod", "stop", podid1, "doesnotexist"})
157
		session.WaitWithDefaultTimeout()
158
		Expect(session).Should(Exit(125))
159
	})
160

161
	It("podman pod start/stop single pod via --pod-id-file", func() {
162
		podIDFile := filepath.Join(tempdir, "podID")
163

164
		podName := "rudolph"
165

166
		// Create a pod with --pod-id-file.
167
		session := podmanTest.Podman([]string{"pod", "create", "--name", podName, "--pod-id-file", podIDFile})
168
		session.WaitWithDefaultTimeout()
169
		Expect(session).Should(ExitCleanly())
170

171
		// Create container inside the pod.
172
		session = podmanTest.Podman([]string{"create", "--pod", podName, ALPINE, "top"})
173
		session.WaitWithDefaultTimeout()
174
		Expect(session).Should(ExitCleanly())
175

176
		session = podmanTest.Podman([]string{"pod", "start", "--pod-id-file", podIDFile})
177
		session.WaitWithDefaultTimeout()
178
		Expect(session).Should(ExitCleanly())
179
		Expect(podmanTest.NumberOfContainersRunning()).To(Equal(2)) // infra+top
180

181
		session = podmanTest.Podman([]string{"pod", "stop", "--pod-id-file", podIDFile})
182
		session.WaitWithDefaultTimeout()
183
		Expect(session).Should(ExitCleanly())
184
		Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0))
185
	})
186

187
	It("podman pod start/stop multiple pods via --pod-id-file", func() {
188
		podIDFiles := []string{}
189
		for _, i := range "0123456789" {
190
			podIDFile := filepath.Join(tempdir, "cid"+string(i))
191
			podName := "rudolph" + string(i)
192
			// Create a pod with --pod-id-file.
193
			session := podmanTest.Podman([]string{"pod", "create", "--name", podName, "--pod-id-file", podIDFile})
194
			session.WaitWithDefaultTimeout()
195
			Expect(session).Should(ExitCleanly())
196

197
			// Create container inside the pod.
198
			session = podmanTest.Podman([]string{"create", "--pod", podName, ALPINE, "top"})
199
			session.WaitWithDefaultTimeout()
200
			Expect(session).Should(ExitCleanly())
201

202
			// Append the id files along with the command.
203
			podIDFiles = append(podIDFiles, "--pod-id-file")
204
			podIDFiles = append(podIDFiles, podIDFile)
205
		}
206

207
		cmd := []string{"pod", "start"}
208
		cmd = append(cmd, podIDFiles...)
209
		session := podmanTest.Podman(cmd)
210
		session.WaitWithDefaultTimeout()
211
		Expect(session).Should(ExitCleanly())
212
		Expect(podmanTest.NumberOfContainersRunning()).To(Equal(20)) // 10*(infra+top)
213

214
		cmd = []string{"pod", "stop"}
215
		cmd = append(cmd, podIDFiles...)
216
		session = podmanTest.Podman(cmd)
217
		session.WaitWithDefaultTimeout()
218
		Expect(session).Should(ExitCleanly())
219
		Expect(podmanTest.NumberOfContainersRunning()).To(Equal(0))
220
	})
221
})
222

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.