summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel J Walsh <dwalsh@redhat.com>2020-05-20 21:05:32 -0400
committerDaniel J Walsh <dwalsh@redhat.com>2020-05-21 09:28:42 -0400
commit9add1abd12bbadef3dac778a72072fae3cb9c08b (patch)
tree05568d1e084696166849d7a007d4a5379910880b
parenta4c8198afd2b92b40b95c6fe01756cf2d0076cb6 (diff)
downloadpodman-9add1abd12bbadef3dac778a72072fae3cb9c08b.tar.gz
podman-9add1abd12bbadef3dac778a72072fae3cb9c08b.tar.bz2
podman-9add1abd12bbadef3dac778a72072fae3cb9c08b.zip
Handle filters correctly for podman prune
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
-rw-r--r--cmd/podman/images/prune.go6
-rw-r--r--pkg/domain/entities/images.go6
-rw-r--r--pkg/domain/infra/tunnel/images.go7
-rw-r--r--test/e2e/images_test.go7
4 files changed, 15 insertions, 11 deletions
diff --git a/cmd/podman/images/prune.go b/cmd/podman/images/prune.go
index 7c9e3eb61..676382a99 100644
--- a/cmd/podman/images/prune.go
+++ b/cmd/podman/images/prune.go
@@ -61,12 +61,6 @@ Are you sure you want to continue? [y/N] `)
}
}
- // TODO Remove once filter refactor is finished and url.Values rules :)
- for _, f := range filter {
- t := strings.SplitN(f, "=", 2)
- pruneOpts.Filters.Add(t[0], t[1])
- }
-
results, err := registry.ImageEngine().Prune(registry.GetContext(), pruneOpts)
if err != nil {
return err
diff --git a/pkg/domain/entities/images.go b/pkg/domain/entities/images.go
index 9d5fd5cc9..0f909ab37 100644
--- a/pkg/domain/entities/images.go
+++ b/pkg/domain/entities/images.go
@@ -1,7 +1,6 @@
package entities
import (
- "net/url"
"time"
"github.com/containers/image/v5/manifest"
@@ -226,9 +225,8 @@ type ImageListOptions struct {
}
type ImagePruneOptions struct {
- All bool `json:"all" schema:"all"`
- Filter []string `json:"filter" schema:"filter"`
- Filters url.Values `json:"filters" schema:"filters"`
+ All bool `json:"all" schema:"all"`
+ Filter []string `json:"filter" schema:"filter"`
}
type ImagePruneReport struct {
diff --git a/pkg/domain/infra/tunnel/images.go b/pkg/domain/infra/tunnel/images.go
index a547a24d7..3d5626c45 100644
--- a/pkg/domain/infra/tunnel/images.go
+++ b/pkg/domain/infra/tunnel/images.go
@@ -67,8 +67,13 @@ func (ir *ImageEngine) History(ctx context.Context, nameOrId string, opts entiti
}
func (ir *ImageEngine) Prune(ctx context.Context, opts entities.ImagePruneOptions) (*entities.ImagePruneReport, error) {
+ filters := make(map[string][]string, len(opts.Filter))
+ for _, filter := range opts.Filter {
+ f := strings.Split(filter, "=")
+ filters[f[0]] = f[1:]
+ }
- results, err := images.Prune(ir.ClientCxt, &opts.All, opts.Filters)
+ results, err := images.Prune(ir.ClientCxt, &opts.All, filters)
if err != nil {
return nil, err
}
diff --git a/test/e2e/images_test.go b/test/e2e/images_test.go
index 118566ea3..1715cf8c1 100644
--- a/test/e2e/images_test.go
+++ b/test/e2e/images_test.go
@@ -131,6 +131,7 @@ var _ = Describe("Podman images", func() {
})
It("podman images filter by image name", func() {
+ Skip(v2remotefail)
podmanTest.RestoreAllArtifacts()
session := podmanTest.PodmanNoCache([]string{"images", "-q", ALPINE})
session.WaitWithDefaultTimeout()
@@ -233,6 +234,9 @@ RUN apk update && apk add man
})
It("podman check for image with sha256: prefix", func() {
+ if podmanTest.RemoteTest {
+ Skip("Does not work on remote client")
+ }
session := podmanTest.Podman([]string{"inspect", "--format=json", ALPINE})
session.WaitWithDefaultTimeout()
Expect(session).Should(Exit(0))
@@ -245,6 +249,9 @@ RUN apk update && apk add man
})
It("podman check for image with sha256: prefix", func() {
+ if podmanTest.RemoteTest {
+ Skip("Does not work on remote client")
+ }
session := podmanTest.Podman([]string{"image", "inspect", "--format=json", ALPINE})
session.WaitWithDefaultTimeout()
Expect(session).Should(Exit(0))