浏览代码

filters: don't encode empty set. API docs

Docker-DCO-1.1-Signed-off-by: Vincent Batts <vbatts@redhat.com> (github: vbatts)
Vincent Batts 11 年之前
父节点
当前提交
02255ddaa4
共有 3 个文件被更改,包括 26 次插入13 次删除
  1. 15 12
      api/client/commands.go
  2. 10 0
      docs/sources/reference/api/docker_remote_api_v1.12.md
  3. 1 1
      server/server.go

+ 15 - 12
api/client/commands.go

@@ -1172,13 +1172,15 @@ func (cli *DockerCli) CmdImages(args ...string) error {
 	matchName := cmd.Arg(0)
 	// FIXME: --viz and --tree are deprecated. Remove them in a future version.
 	if *flViz || *flTree {
-		filterJson, err := filters.ToParam(imageFilterArgs)
-		if err != nil {
-			return err
-		}
 		v := url.Values{
-			"all":     []string{"1"},
-			"filters": []string{filterJson},
+			"all": []string{"1"},
+		}
+		if len(imageFilterArgs) > 0 {
+			filterJson, err := filters.ToParam(imageFilterArgs)
+			if err != nil {
+				return err
+			}
+			v.Set("filters", filterJson)
 		}
 
 		body, _, err := readBody(cli.call("GET", "/images/json?"+v.Encode(), nil, false))
@@ -1242,12 +1244,13 @@ func (cli *DockerCli) CmdImages(args ...string) error {
 			fmt.Fprintf(cli.out, " base [style=invisible]\n}\n")
 		}
 	} else {
-		filterJson, err := filters.ToParam(imageFilterArgs)
-		if err != nil {
-			return err
-		}
-		v := url.Values{
-			"filters": []string{filterJson},
+		v := url.Values{}
+		if len(imageFilterArgs) > 0 {
+			filterJson, err := filters.ToParam(imageFilterArgs)
+			if err != nil {
+				return err
+			}
+			v.Set("filters", filterJson)
 		}
 
 		if cmd.NArg() == 1 {

+ 10 - 0
docs/sources/reference/api/docker_remote_api_v1.12.md

@@ -712,6 +712,16 @@ Copy files or folders of container `id`
           }
         ]
 
+
+    Query Parameters:
+
+     
+
+    -   **all** – 1/True/true or 0/False/false, default false
+    -   **filters** – a json encoded value of the filters (a map[string][]string) to process on the images list.
+        
+
+
 ### Create an image
 
 `POST /images/create`

+ 1 - 1
server/server.go

@@ -712,7 +712,7 @@ func (srv *Server) Images(job *engine.Job) engine.Status {
 		}
 	}
 
-	if job.GetenvBool("all") && !filt_tagged {
+	if job.GetenvBool("all") && filt_tagged {
 		allImages, err = srv.daemon.Graph().Map()
 	} else {
 		allImages, err = srv.daemon.Graph().Heads()