4
. "github.com/containers/podman/v5/test/utils"
5
. "github.com/onsi/ginkgo/v2"
6
. "github.com/onsi/gomega"
7
. "github.com/onsi/gomega/gexec"
10
var _ = Describe("Podman init", func() {
12
It("podman init bogus container", func() {
13
session := podmanTest.Podman([]string{"start", "123456"})
14
session.WaitWithDefaultTimeout()
15
Expect(session).Should(Exit(125))
18
It("podman init with no arguments", func() {
19
session := podmanTest.Podman([]string{"start"})
20
session.WaitWithDefaultTimeout()
21
Expect(session).Should(Exit(125))
24
It("podman init single container by ID", func() {
25
session := podmanTest.Podman([]string{"create", ALPINE, "ls"})
26
session.WaitWithDefaultTimeout()
27
Expect(session).Should(ExitCleanly())
28
cid := session.OutputToString()
29
init := podmanTest.Podman([]string{"init", cid})
30
init.WaitWithDefaultTimeout()
31
Expect(init).Should(ExitCleanly())
32
Expect(init.OutputToString()).To(Equal(cid))
33
result := podmanTest.Podman([]string{"inspect", cid})
34
result.WaitWithDefaultTimeout()
35
Expect(result).Should(ExitCleanly())
36
conData := result.InspectContainerToJSON()
37
Expect(conData[0].State).To(HaveField("Status", "initialized"))
40
It("podman init single container by name", func() {
42
session := podmanTest.Podman([]string{"create", "--name", name, ALPINE, "ls"})
43
session.WaitWithDefaultTimeout()
44
Expect(session).Should(ExitCleanly())
45
init := podmanTest.Podman([]string{"init", name})
46
init.WaitWithDefaultTimeout()
47
Expect(init).Should(ExitCleanly())
48
Expect(init.OutputToString()).To(Equal(name))
49
result := podmanTest.Podman([]string{"inspect", name})
50
result.WaitWithDefaultTimeout()
51
Expect(result).Should(ExitCleanly())
52
conData := result.InspectContainerToJSON()
53
Expect(conData[0].State).To(HaveField("Status", "initialized"))
56
It("podman init latest container", func() {
57
SkipIfRemote("--latest flag n/a")
58
session := podmanTest.Podman([]string{"create", ALPINE, "ls"})
59
session.WaitWithDefaultTimeout()
60
Expect(session).Should(ExitCleanly())
61
cid := session.OutputToString()
62
init := podmanTest.Podman([]string{"init", "--latest"})
63
init.WaitWithDefaultTimeout()
64
Expect(init).Should(ExitCleanly())
65
Expect(init.OutputToString()).To(Equal(cid))
66
result := podmanTest.Podman([]string{"inspect", "--latest"})
67
result.WaitWithDefaultTimeout()
68
Expect(result).Should(ExitCleanly())
69
conData := result.InspectContainerToJSON()
70
Expect(conData[0].State).To(HaveField("Status", "initialized"))
73
It("podman init all three containers, one running", func() {
74
session := podmanTest.Podman([]string{"create", "--name", "test1", ALPINE, "ls"})
75
session.WaitWithDefaultTimeout()
76
Expect(session).Should(ExitCleanly())
77
cid := session.OutputToString()
78
session2 := podmanTest.Podman([]string{"create", "--name", "test2", ALPINE, "ls"})
79
session2.WaitWithDefaultTimeout()
80
Expect(session2).Should(ExitCleanly())
81
cid2 := session2.OutputToString()
82
session3 := podmanTest.Podman([]string{"run", "--name", "test3", "-d", ALPINE, "top"})
83
session3.WaitWithDefaultTimeout()
84
Expect(session3).Should(ExitCleanly())
85
cid3 := session3.OutputToString()
86
init := podmanTest.Podman([]string{"init", "--all"})
87
init.WaitWithDefaultTimeout()
88
Expect(init).Should(ExitCleanly())
89
Expect(init.OutputToString()).To(ContainSubstring(cid))
90
Expect(init.OutputToString()).To(ContainSubstring(cid2))
91
Expect(init.OutputToString()).To(ContainSubstring(cid3))
92
result := podmanTest.Podman([]string{"inspect", "test1"})
93
result.WaitWithDefaultTimeout()
94
Expect(result).Should(ExitCleanly())
95
conData := result.InspectContainerToJSON()
96
Expect(conData[0].State).To(HaveField("Status", "initialized"))
97
result2 := podmanTest.Podman([]string{"inspect", "test2"})
98
result2.WaitWithDefaultTimeout()
99
Expect(result2).Should(ExitCleanly())
100
conData2 := result2.InspectContainerToJSON()
101
Expect(conData2[0].State).To(HaveField("Status", "initialized"))
102
result3 := podmanTest.Podman([]string{"inspect", "test3"})
103
result3.WaitWithDefaultTimeout()
104
Expect(result3).Should(ExitCleanly())
105
conData3 := result3.InspectContainerToJSON()
106
Expect(conData3[0].State).To(HaveField("Status", "running"))
109
It("podman init running container errors", func() {
110
session := podmanTest.Podman([]string{"run", "--name", "init_test", "-d", ALPINE, "top"})
111
session.WaitWithDefaultTimeout()
112
Expect(session).Should(ExitCleanly())
113
init := podmanTest.Podman([]string{"init", "init_test"})
114
init.WaitWithDefaultTimeout()
115
Expect(init).Should(Exit(125))