github.com/AbhinandanKurakure/podman/v3@v3.4.10/test/e2e/pod_restart_test.go (about)

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