github.com/containers/podman/v4@v4.9.4/test/e2e/pod_restart_test.go (about) 1 package integration 2 3 import ( 4 . "github.com/containers/podman/v4/test/utils" 5 . "github.com/onsi/ginkgo/v2" 6 . "github.com/onsi/gomega" 7 . "github.com/onsi/gomega/gexec" 8 ) 9 10 var _ = Describe("Podman pod restart", func() { 11 12 It("podman pod restart bogus pod", func() { 13 session := podmanTest.Podman([]string{"pod", "restart", "123"}) 14 session.WaitWithDefaultTimeout() 15 Expect(session).Should(Exit(125)) 16 }) 17 18 It("podman pod restart single empty pod", func() { 19 _, ec, podid := podmanTest.CreatePod(nil) 20 Expect(ec).To(Equal(0)) 21 22 session := podmanTest.Podman([]string{"pod", "restart", podid}) 23 session.WaitWithDefaultTimeout() 24 Expect(session).Should(Exit(125)) 25 }) 26 27 It("podman pod restart single pod by name", func() { 28 _, ec, _ := podmanTest.CreatePod(map[string][]string{"--name": {"foobar99"}}) 29 Expect(ec).To(Equal(0)) 30 31 session := podmanTest.RunTopContainerInPod("test1", "foobar99") 32 session.WaitWithDefaultTimeout() 33 Expect(session).Should(ExitCleanly()) 34 35 startTime := podmanTest.Podman([]string{"inspect", "--format='{{.State.StartedAt}}'", "test1"}) 36 startTime.WaitWithDefaultTimeout() 37 38 session = podmanTest.Podman([]string{"pod", "restart", "foobar99"}) 39 session.WaitWithDefaultTimeout() 40 Expect(session).Should(ExitCleanly()) 41 42 restartTime := podmanTest.Podman([]string{"inspect", "--format='{{.State.StartedAt}}'", "test1"}) 43 restartTime.WaitWithDefaultTimeout() 44 Expect(restartTime.OutputToString()).To(Not(Equal(startTime.OutputToString()))) 45 }) 46 47 It("podman pod restart multiple pods", func() { 48 _, ec, _ := podmanTest.CreatePod(map[string][]string{"--name": {"foobar99"}}) 49 Expect(ec).To(Equal(0)) 50 51 session := podmanTest.RunTopContainerInPod("test1", "foobar99") 52 session.WaitWithDefaultTimeout() 53 Expect(session).Should(ExitCleanly()) 54 55 _, ec, _ = podmanTest.CreatePod(map[string][]string{"--name": {"foobar100"}}) 56 Expect(ec).To(Equal(0)) 57 58 session = podmanTest.RunTopContainerInPod("test2", "foobar100") 59 session.WaitWithDefaultTimeout() 60 Expect(session).Should(ExitCleanly()) 61 62 session = podmanTest.RunTopContainerInPod("test3", "foobar100") 63 session.WaitWithDefaultTimeout() 64 Expect(session).Should(ExitCleanly()) 65 66 session = podmanTest.RunTopContainerInPod("test4", "foobar100") 67 session.WaitWithDefaultTimeout() 68 Expect(session).Should(ExitCleanly()) 69 70 startTime := podmanTest.Podman([]string{"inspect", "--format='{{.State.StartedAt}}'", "test1", "test2", "test3", "test4"}) 71 startTime.WaitWithDefaultTimeout() 72 73 session = podmanTest.Podman([]string{"pod", "restart", "foobar99", "foobar100"}) 74 session.WaitWithDefaultTimeout() 75 Expect(session).Should(ExitCleanly()) 76 77 restartTime := podmanTest.Podman([]string{"inspect", "--format='{{.State.StartedAt}}'", "test1", "test2", "test3", "test4"}) 78 restartTime.WaitWithDefaultTimeout() 79 Expect(restartTime.OutputToStringArray()[0]).To(Not(Equal(startTime.OutputToStringArray()[0]))) 80 Expect(restartTime.OutputToStringArray()[1]).To(Not(Equal(startTime.OutputToStringArray()[1]))) 81 Expect(restartTime.OutputToStringArray()[2]).To(Not(Equal(startTime.OutputToStringArray()[2]))) 82 Expect(restartTime.OutputToStringArray()[3]).To(Not(Equal(startTime.OutputToStringArray()[3]))) 83 }) 84 85 It("podman pod restart all pods", func() { 86 _, ec, _ := podmanTest.CreatePod(map[string][]string{"--name": {"foobar99"}}) 87 Expect(ec).To(Equal(0)) 88 89 session := podmanTest.RunTopContainerInPod("test1", "foobar99") 90 session.WaitWithDefaultTimeout() 91 Expect(session).Should(ExitCleanly()) 92 93 _, ec, _ = podmanTest.CreatePod(map[string][]string{"--name": {"foobar100"}}) 94 Expect(ec).To(Equal(0)) 95 96 session = podmanTest.RunTopContainerInPod("test2", "foobar100") 97 session.WaitWithDefaultTimeout() 98 Expect(session).Should(ExitCleanly()) 99 100 startTime := podmanTest.Podman([]string{"inspect", "--format='{{.State.StartedAt}}'", "test1", "test2"}) 101 startTime.WaitWithDefaultTimeout() 102 103 session = podmanTest.Podman([]string{"pod", "restart", "-a"}) 104 session.WaitWithDefaultTimeout() 105 Expect(session).Should(ExitCleanly()) 106 107 restartTime := podmanTest.Podman([]string{"inspect", "--format='{{.State.StartedAt}}'", "test1", "test2"}) 108 restartTime.WaitWithDefaultTimeout() 109 Expect(restartTime.OutputToStringArray()[0]).To(Not(Equal(startTime.OutputToStringArray()[0]))) 110 Expect(restartTime.OutputToStringArray()[1]).To(Not(Equal(startTime.OutputToStringArray()[1]))) 111 }) 112 113 It("podman pod restart latest pod", func() { 114 _, ec, _ := podmanTest.CreatePod(map[string][]string{"--name": {"foobar99"}}) 115 Expect(ec).To(Equal(0)) 116 117 session := podmanTest.RunTopContainerInPod("test1", "foobar99") 118 session.WaitWithDefaultTimeout() 119 Expect(session).Should(ExitCleanly()) 120 121 _, ec, _ = podmanTest.CreatePod(map[string][]string{"--name": {"foobar100"}}) 122 Expect(ec).To(Equal(0)) 123 124 session = podmanTest.RunTopContainerInPod("test2", "foobar100") 125 session.WaitWithDefaultTimeout() 126 Expect(session).Should(ExitCleanly()) 127 128 startTime := podmanTest.Podman([]string{"inspect", "--format='{{.State.StartedAt}}'", "test1", "test2"}) 129 startTime.WaitWithDefaultTimeout() 130 131 podid := "-l" 132 if IsRemote() { 133 podid = "foobar100" 134 } 135 session = podmanTest.Podman([]string{"pod", "restart", podid}) 136 session.WaitWithDefaultTimeout() 137 Expect(session).Should(ExitCleanly()) 138 139 restartTime := podmanTest.Podman([]string{"inspect", "--format='{{.State.StartedAt}}'", "test1", "test2"}) 140 restartTime.WaitWithDefaultTimeout() 141 Expect(restartTime.OutputToStringArray()[0]).To(Equal(startTime.OutputToStringArray()[0])) 142 Expect(restartTime.OutputToStringArray()[1]).To(Not(Equal(startTime.OutputToStringArray()[1]))) 143 }) 144 145 It("podman pod restart multiple pods with bogus", func() { 146 _, ec, podid1 := podmanTest.CreatePod(map[string][]string{"--name": {"foobar99"}}) 147 Expect(ec).To(Equal(0)) 148 149 session := podmanTest.RunTopContainerInPod("", "foobar99") 150 session.WaitWithDefaultTimeout() 151 Expect(session).Should(ExitCleanly()) 152 153 session = podmanTest.Podman([]string{"pod", "restart", podid1, "doesnotexist"}) 154 session.WaitWithDefaultTimeout() 155 Expect(session).Should(Exit(125)) 156 }) 157 })