github.com/containers/podman/v5@v5.1.0-rc1/test/e2e/pod_restart_test.go (about)

     1  package integration
     2  
     3  import (
     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"
     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  })