mirror of
https://github.com/podman-container-tools/podman.git
synced 2026-09-27 01:57:49 +00:00
Merge pull request #28464 from simonbrauner/volume-prune-fix-all-filter
Fix inconsistencies between --all and --filter=all in volume prune
This commit is contained in:
commit
ef7fdbabc4
2 changed files with 19 additions and 0 deletions
|
|
@ -3,6 +3,7 @@ package volumes
|
|||
import (
|
||||
"bufio"
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
|
|
@ -64,6 +65,11 @@ func prune(cmd *cobra.Command, _ []string) error {
|
|||
|
||||
// --all adds filter all=true (Docker-compatible; behavior is filter-only)
|
||||
allFlag, _ := cmd.Flags().GetBool("all")
|
||||
filterAllFlag := strings.EqualFold(pruneOptions.Filters.Get("all"), "true")
|
||||
if allFlag && filterAllFlag {
|
||||
return errors.New("--all and --filter all cannot be used together")
|
||||
}
|
||||
allFlag = allFlag || filterAllFlag
|
||||
if allFlag {
|
||||
pruneOptions.Filters.Set("all", "true")
|
||||
}
|
||||
|
|
@ -79,6 +85,7 @@ func prune(cmd *cobra.Command, _ []string) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
delete(listOptions.Filter, "all") // list does not support --filter all
|
||||
filteredVolumes, err := registry.ContainerEngine().VolumeList(context.Background(), listOptions)
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
|
|||
|
|
@ -42,6 +42,14 @@ var _ = Describe("Podman volume prune", func() {
|
|||
Expect(session.OutputToString()).To(ContainSubstring("named_vol"))
|
||||
})
|
||||
|
||||
It("podman volume prune --all removes all unused volumes", func() {
|
||||
podmanTest.PodmanExitCleanly("volume", "create", "prune_all_test")
|
||||
podmanTest.PodmanExitCleanly("volume", "prune", "--all", "--force")
|
||||
|
||||
session := podmanTest.PodmanExitCleanly("volume", "ls")
|
||||
Expect(session.OutputToStringArray()).To(HaveLen(1))
|
||||
})
|
||||
|
||||
It("podman volume prune --filter all=true removes all unused volumes", func() {
|
||||
podmanTest.PodmanExitCleanly("volume", "create", "prune_filter_all_test")
|
||||
podmanTest.PodmanExitCleanly("volume", "prune", "--filter", "all=true", "--force")
|
||||
|
|
@ -50,6 +58,10 @@ var _ = Describe("Podman volume prune", func() {
|
|||
Expect(session.OutputToStringArray()).To(HaveLen(1))
|
||||
})
|
||||
|
||||
It("podman volume prune --filter all=true does not crash without --force", func() {
|
||||
podmanTest.PodmanExitCleanly("volume", "prune", "--filter", "all=true")
|
||||
})
|
||||
|
||||
It("podman prune volume --filter until", func() {
|
||||
podmanTest.PodmanExitCleanly("volume", "create", "--label", "label1=value1", "myvol1")
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue