github.com/containers/podman/v5@v5.1.0-rc1/test/e2e/volume_prune_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  )
     8  
     9  var _ = Describe("Podman volume prune", func() {
    10  
    11  	AfterEach(func() {
    12  		podmanTest.CleanupVolume()
    13  	})
    14  
    15  	It("podman prune volume", func() {
    16  		session := podmanTest.Podman([]string{"volume", "create"})
    17  		session.WaitWithDefaultTimeout()
    18  		Expect(session).Should(ExitCleanly())
    19  
    20  		session = podmanTest.Podman([]string{"volume", "create"})
    21  		session.WaitWithDefaultTimeout()
    22  		Expect(session).Should(ExitCleanly())
    23  
    24  		session = podmanTest.Podman([]string{"create", "-v", "myvol:/myvol", ALPINE, "ls"})
    25  		session.WaitWithDefaultTimeout()
    26  		Expect(session).Should(ExitCleanly())
    27  
    28  		session = podmanTest.Podman([]string{"volume", "ls"})
    29  		session.WaitWithDefaultTimeout()
    30  		Expect(session).Should(ExitCleanly())
    31  		Expect(session.OutputToStringArray()).To(HaveLen(4))
    32  
    33  		session = podmanTest.Podman([]string{"volume", "prune", "--force"})
    34  		session.WaitWithDefaultTimeout()
    35  		Expect(session).Should(ExitCleanly())
    36  
    37  		session = podmanTest.Podman([]string{"volume", "ls"})
    38  		session.WaitWithDefaultTimeout()
    39  		Expect(session).Should(ExitCleanly())
    40  		Expect(session.OutputToStringArray()).To(HaveLen(2))
    41  	})
    42  
    43  	It("podman prune volume --filter until", func() {
    44  		session := podmanTest.Podman([]string{"volume", "create", "--label", "label1=value1", "myvol1"})
    45  		session.WaitWithDefaultTimeout()
    46  		Expect(session).Should(ExitCleanly())
    47  
    48  		session = podmanTest.Podman([]string{"volume", "ls"})
    49  		session.WaitWithDefaultTimeout()
    50  		Expect(session).Should(ExitCleanly())
    51  		Expect(session.OutputToStringArray()).To(HaveLen(2))
    52  
    53  		session = podmanTest.Podman([]string{"volume", "prune", "--force", "--filter", "until=50"})
    54  		session.WaitWithDefaultTimeout()
    55  		Expect(session).Should(ExitCleanly())
    56  
    57  		session = podmanTest.Podman([]string{"volume", "ls"})
    58  		session.WaitWithDefaultTimeout()
    59  		Expect(session).Should(ExitCleanly())
    60  		Expect(session.OutputToStringArray()).To(HaveLen(2))
    61  
    62  		session = podmanTest.Podman([]string{"volume", "prune", "--force", "--filter", "until=5000000000"})
    63  		session.WaitWithDefaultTimeout()
    64  		Expect(session).Should(ExitCleanly())
    65  
    66  		session = podmanTest.Podman([]string{"volume", "ls"})
    67  		session.WaitWithDefaultTimeout()
    68  		Expect(session).Should(ExitCleanly())
    69  		Expect(session.OutputToStringArray()).To(BeEmpty())
    70  	})
    71  
    72  	It("podman prune volume --filter", func() {
    73  		session := podmanTest.Podman([]string{"volume", "create", "--label", "label1=value1", "myvol1"})
    74  		session.WaitWithDefaultTimeout()
    75  		Expect(session).Should(ExitCleanly())
    76  
    77  		session = podmanTest.Podman([]string{"volume", "create", "--label", "sharedlabel1=slv1", "myvol2"})
    78  		session.WaitWithDefaultTimeout()
    79  		Expect(session).Should(ExitCleanly())
    80  
    81  		session = podmanTest.Podman([]string{"volume", "create", "--label", "sharedlabel1=slv2", "myvol3"})
    82  		session.WaitWithDefaultTimeout()
    83  		Expect(session).Should(ExitCleanly())
    84  
    85  		session = podmanTest.Podman([]string{"volume", "create", "--label", "sharedlabel1", "myvol4"})
    86  		session.WaitWithDefaultTimeout()
    87  		Expect(session).Should(ExitCleanly())
    88  
    89  		session = podmanTest.Podman([]string{"create", "-v", "myvol5:/myvol5", ALPINE, "ls"})
    90  		session.WaitWithDefaultTimeout()
    91  		Expect(session).Should(ExitCleanly())
    92  
    93  		session = podmanTest.Podman([]string{"create", "-v", "myvol6:/myvol6", ALPINE, "ls"})
    94  		session.WaitWithDefaultTimeout()
    95  		Expect(session).Should(ExitCleanly())
    96  
    97  		session = podmanTest.Podman([]string{"volume", "ls"})
    98  		session.WaitWithDefaultTimeout()
    99  		Expect(session).Should(ExitCleanly())
   100  		Expect(session.OutputToStringArray()).To(HaveLen(7))
   101  
   102  		session = podmanTest.Podman([]string{"volume", "prune", "--force", "--filter", "label=label1=value1"})
   103  		session.WaitWithDefaultTimeout()
   104  		Expect(session).Should(ExitCleanly())
   105  
   106  		session = podmanTest.Podman([]string{"volume", "ls"})
   107  		session.WaitWithDefaultTimeout()
   108  		Expect(session).Should(ExitCleanly())
   109  		Expect(session.OutputToStringArray()).To(HaveLen(6))
   110  
   111  		session = podmanTest.Podman([]string{"volume", "prune", "--force", "--filter", "label=sharedlabel1=slv1"})
   112  		session.WaitWithDefaultTimeout()
   113  		Expect(session).Should(ExitCleanly())
   114  
   115  		session = podmanTest.Podman([]string{"volume", "ls"})
   116  		session.WaitWithDefaultTimeout()
   117  		Expect(session).Should(ExitCleanly())
   118  		Expect(session.OutputToStringArray()).To(HaveLen(5))
   119  
   120  		session = podmanTest.Podman([]string{"volume", "prune", "--force", "--filter", "label=sharedlabel1"})
   121  		session.WaitWithDefaultTimeout()
   122  		Expect(session).Should(ExitCleanly())
   123  
   124  		session = podmanTest.Podman([]string{"volume", "ls"})
   125  		session.WaitWithDefaultTimeout()
   126  		Expect(session).Should(ExitCleanly())
   127  		Expect(session.OutputToStringArray()).To(HaveLen(3))
   128  
   129  		session = podmanTest.Podman([]string{"volume", "create", "--label", "testlabel", "myvol7"})
   130  		session.WaitWithDefaultTimeout()
   131  		Expect(session).Should(ExitCleanly())
   132  
   133  		session = podmanTest.Podman([]string{"volume", "prune", "--force", "--filter", "label!=testlabel"})
   134  		session.WaitWithDefaultTimeout()
   135  		Expect(session).Should(ExitCleanly())
   136  	})
   137  
   138  	It("podman system prune --volume", func() {
   139  		useCustomNetworkDir(podmanTest, tempdir)
   140  		session := podmanTest.Podman([]string{"volume", "create"})
   141  		session.WaitWithDefaultTimeout()
   142  		Expect(session).Should(ExitCleanly())
   143  
   144  		session = podmanTest.Podman([]string{"volume", "create"})
   145  		session.WaitWithDefaultTimeout()
   146  		Expect(session).Should(ExitCleanly())
   147  
   148  		session = podmanTest.Podman([]string{"create", "-v", "myvol:/myvol", ALPINE, "ls"})
   149  		session.WaitWithDefaultTimeout()
   150  		Expect(session).Should(ExitCleanly())
   151  
   152  		session = podmanTest.Podman([]string{"volume", "ls"})
   153  		session.WaitWithDefaultTimeout()
   154  		Expect(session).Should(ExitCleanly())
   155  		Expect(session.OutputToStringArray()).To(HaveLen(4))
   156  
   157  		session = podmanTest.Podman([]string{"system", "prune", "--force", "--volumes"})
   158  		session.WaitWithDefaultTimeout()
   159  		Expect(session).Should(ExitCleanly())
   160  
   161  		session = podmanTest.Podman([]string{"volume", "ls"})
   162  		session.WaitWithDefaultTimeout()
   163  		Expect(session).Should(ExitCleanly())
   164  		Expect(session.OutputToStringArray()).To(BeEmpty())
   165  	})
   166  
   167  	It("podman volume prune --filter since/after", func() {
   168  		vol1 := "vol1"
   169  		vol2 := "vol2"
   170  		vol3 := "vol3"
   171  
   172  		session := podmanTest.Podman([]string{"volume", "create", vol1})
   173  		session.WaitWithDefaultTimeout()
   174  		Expect(session).To(ExitCleanly())
   175  
   176  		session = podmanTest.Podman([]string{"volume", "create", vol2})
   177  		session.WaitWithDefaultTimeout()
   178  		Expect(session).To(ExitCleanly())
   179  
   180  		session = podmanTest.Podman([]string{"volume", "create", vol3})
   181  		session.WaitWithDefaultTimeout()
   182  		Expect(session).To(ExitCleanly())
   183  
   184  		session = podmanTest.Podman([]string{"volume", "prune", "-f", "--filter", "since=" + vol1})
   185  		session.WaitWithDefaultTimeout()
   186  		Expect(session).To(ExitCleanly())
   187  
   188  		session = podmanTest.Podman([]string{"volume", "ls", "-q"})
   189  		session.WaitWithDefaultTimeout()
   190  		Expect(session.OutputToStringArray()).To(HaveLen(1))
   191  		Expect(session.OutputToStringArray()[0]).To(Equal(vol1))
   192  	})
   193  })