Merge pull request #17483 from vyasgun/pr/filter-fix

fix != filter in volume prune
This commit is contained in:
OpenShift Merge Robot 2023-02-15 05:22:41 -05:00 committed by GitHub
commit cfa38114ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 0 deletions

View File

@ -39,6 +39,11 @@ func GenerateVolumeFilters(filters url.Values) ([]libpod.VolumeFilter, error) {
vf = append(vf, func(v *libpod.Volume) bool {
return pruneFilters.MatchLabelFilters([]string{filter}, v.Labels())
})
case "label!":
filter := val
vf = append(vf, func(v *libpod.Volume) bool {
return !pruneFilters.MatchLabelFilters([]string{filter}, v.Labels())
})
case "opt":
filterArray := strings.SplitN(val, "=", 2)
filterKey := filterArray[0]
@ -103,6 +108,11 @@ func GeneratePruneVolumeFilters(filters url.Values) ([]libpod.VolumeFilter, erro
vf = append(vf, func(v *libpod.Volume) bool {
return pruneFilters.MatchLabelFilters([]string{filterVal}, v.Labels())
})
case "label!":
filter := val
vf = append(vf, func(v *libpod.Volume) bool {
return !pruneFilters.MatchLabelFilters([]string{filter}, v.Labels())
})
case "until":
f, err := createUntilFilterVolumeFunction(filterVal)
if err != nil {

View File

@ -150,6 +150,14 @@ var _ = Describe("Podman volume prune", func() {
Expect(session).Should(Exit(0))
Expect(session.OutputToStringArray()).To(HaveLen(3))
session = podmanTest.Podman([]string{"volume", "create", "--label", "testlabel", "myvol7"})
session.WaitWithDefaultTimeout()
Expect(session).Should(Exit(0))
session = podmanTest.Podman([]string{"volume", "prune", "--force", "--filter", "label!=testlabel"})
session.WaitWithDefaultTimeout()
Expect(session).Should(Exit(0))
podmanTest.Cleanup()
})