From 0e9acf76844a0dcd76bc855b945d0e4b80149195 Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Fri, 16 Jan 2015 00:33:11 +0000 Subject: [PATCH 1/2] don't restrict filters in docker images Signed-off-by: Victor Vieux --- api/client/commands.go | 10 ---------- integration-cli/docker_cli_images_test.go | 10 ---------- 2 files changed, 20 deletions(-) diff --git a/api/client/commands.go b/api/client/commands.go index 06c369958a..6e8eabe179 100644 --- a/api/client/commands.go +++ b/api/client/commands.go @@ -49,10 +49,6 @@ const ( tarHeaderSize = 512 ) -var ( - acceptedImageFilterTags = map[string]struct{}{"dangling": {}} -) - func (cli *DockerCli) CmdHelp(args ...string) error { if len(args) > 1 { method, exists := cli.getMethod(args[:2]...) @@ -1331,12 +1327,6 @@ func (cli *DockerCli) CmdImages(args ...string) error { } } - for name := range imageFilterArgs { - if _, ok := acceptedImageFilterTags[name]; !ok { - return fmt.Errorf("Invalid filter '%s'", name) - } - } - matchName := cmd.Arg(0) // FIXME: --viz and --tree are deprecated. Remove them in a future version. if *flViz || *flTree { diff --git a/integration-cli/docker_cli_images_test.go b/integration-cli/docker_cli_images_test.go index a91f1c0e22..2758797fba 100644 --- a/integration-cli/docker_cli_images_test.go +++ b/integration-cli/docker_cli_images_test.go @@ -67,16 +67,6 @@ func TestImagesOrderedByCreationDate(t *testing.T) { logDone("images - ordering by creation date") } -func TestImagesErrorWithInvalidFilterNameTest(t *testing.T) { - imagesCmd := exec.Command(dockerBinary, "images", "-f", "FOO=123") - out, _, err := runCommandWithOutput(imagesCmd) - if !strings.Contains(out, "Invalid filter") { - t.Fatalf("error should occur when listing images with invalid filter name FOO, %s, %v", out, err) - } - - logDone("images - invalid filter name check working") -} - func TestImagesFilterWhiteSpaceTrimmingAndLowerCasingWorking(t *testing.T) { imageName := "images_filter_test" defer deleteAllContainers() From c6309229a0f5e3d8ee18d7ce80d1d0bd1d193e07 Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Fri, 16 Jan 2015 21:49:46 +0000 Subject: [PATCH 2/2] move test to the daemon Signed-off-by: Victor Vieux --- graph/list.go | 8 ++++++++ integration-cli/docker_cli_images_test.go | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/graph/list.go b/graph/list.go index 63a906b9a9..49d4072be5 100644 --- a/graph/list.go +++ b/graph/list.go @@ -11,6 +11,8 @@ import ( "github.com/docker/docker/pkg/parsers/filters" ) +var acceptedImageFilterTags = map[string]struct{}{"dangling": {}} + func (s *TagStore) CmdImages(job *engine.Job) engine.Status { var ( allImages map[string]*image.Image @@ -22,6 +24,12 @@ func (s *TagStore) CmdImages(job *engine.Job) engine.Status { if err != nil { return job.Error(err) } + for name := range imageFilters { + if _, ok := acceptedImageFilterTags[name]; !ok { + return job.Errorf("Invalid filter '%s'", name) + } + } + if i, ok := imageFilters["dangling"]; ok { for _, value := range i { if strings.ToLower(value) == "true" { diff --git a/integration-cli/docker_cli_images_test.go b/integration-cli/docker_cli_images_test.go index 2758797fba..a91f1c0e22 100644 --- a/integration-cli/docker_cli_images_test.go +++ b/integration-cli/docker_cli_images_test.go @@ -67,6 +67,16 @@ func TestImagesOrderedByCreationDate(t *testing.T) { logDone("images - ordering by creation date") } +func TestImagesErrorWithInvalidFilterNameTest(t *testing.T) { + imagesCmd := exec.Command(dockerBinary, "images", "-f", "FOO=123") + out, _, err := runCommandWithOutput(imagesCmd) + if !strings.Contains(out, "Invalid filter") { + t.Fatalf("error should occur when listing images with invalid filter name FOO, %s, %v", out, err) + } + + logDone("images - invalid filter name check working") +} + func TestImagesFilterWhiteSpaceTrimmingAndLowerCasingWorking(t *testing.T) { imageName := "images_filter_test" defer deleteAllContainers()