... | ... |
@@ -110,34 +110,30 @@ func getContainersExport(srv *Server, w http.ResponseWriter, r *http.Request) ([ |
110 | 110 |
} |
111 | 111 |
|
112 | 112 |
func getImages(srv *Server, w http.ResponseWriter, r *http.Request) ([]byte, error) { |
113 |
- vars := mux.Vars(r) |
|
114 |
- format := vars["format"] |
|
115 |
- |
|
116 | 113 |
if err := parseForm(r); err != nil { |
117 | 114 |
return nil, err |
118 | 115 |
} |
119 | 116 |
|
120 |
- if format == "viz" { |
|
121 |
- if err := srv.ImagesViz(w); err != nil { |
|
122 |
- return nil, err |
|
123 |
- } |
|
124 |
- return nil, nil |
|
125 |
- } else if format == "" || format == "json" { |
|
126 |
- all := r.Form.Get("all") == "1" |
|
127 |
- filter := r.Form.Get("filter") |
|
128 |
- only_ids := r.Form.Get("only_ids") == "1" |
|
117 |
+ all := r.Form.Get("all") == "1" |
|
118 |
+ filter := r.Form.Get("filter") |
|
119 |
+ only_ids := r.Form.Get("only_ids") == "1" |
|
129 | 120 |
|
130 |
- outs, err := srv.Images(all, only_ids, filter) |
|
131 |
- if err != nil { |
|
132 |
- return nil, err |
|
133 |
- } |
|
134 |
- b, err := json.Marshal(outs) |
|
135 |
- if err != nil { |
|
136 |
- return nil, err |
|
137 |
- } |
|
138 |
- return b, nil |
|
121 |
+ outs, err := srv.Images(all, only_ids, filter) |
|
122 |
+ if err != nil { |
|
123 |
+ return nil, err |
|
139 | 124 |
} |
140 |
- return nil, fmt.Errorf("No such format: %s", format) |
|
125 |
+ b, err := json.Marshal(outs) |
|
126 |
+ if err != nil { |
|
127 |
+ return nil, err |
|
128 |
+ } |
|
129 |
+ return b, nil |
|
130 |
+} |
|
131 |
+ |
|
132 |
+func getImagesViz(srv *Server, w http.ResponseWriter, r *http.Request) ([]byte, error) { |
|
133 |
+ if err := srv.ImagesViz(w); err != nil { |
|
134 |
+ return nil, err |
|
135 |
+ } |
|
136 |
+ return nil, nil |
|
141 | 137 |
} |
142 | 138 |
|
143 | 139 |
func getInfo(srv *Server, w http.ResponseWriter, r *http.Request) ([]byte, error) { |
... | ... |
@@ -508,7 +504,7 @@ func getImagesByName(srv *Server, w http.ResponseWriter, r *http.Request) ([]byt |
508 | 508 |
return b, nil |
509 | 509 |
} |
510 | 510 |
|
511 |
-func ListenAndServe(addr string, srv *Server) error { |
|
511 |
+func ListenAndServe(addr string, srv *Server, logging bool) error { |
|
512 | 512 |
r := mux.NewRouter() |
513 | 513 |
log.Printf("Listening for HTTP on %s\n", addr) |
514 | 514 |
|
... | ... |
@@ -518,7 +514,8 @@ func ListenAndServe(addr string, srv *Server) error { |
518 | 518 |
"/version": getVersion, |
519 | 519 |
"/containers/{name:.*}/export": getContainersExport, |
520 | 520 |
"/images": getImages, |
521 |
- "/images/{format}": getImages, |
|
521 |
+ "/images/json": getImages, |
|
522 |
+ "/images/viz": getImagesViz, |
|
522 | 523 |
"/info": getInfo, |
523 | 524 |
"/images/search": getImagesSearch, |
524 | 525 |
"/images/{name:.*}/history": getImagesHistory, |
... | ... |
@@ -558,8 +555,9 @@ func ListenAndServe(addr string, srv *Server) error { |
558 | 558 |
localFct := fct |
559 | 559 |
r.Path(localRoute).Methods(localMethod).HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |
560 | 560 |
Debugf("Calling %s %s", localMethod, localRoute) |
561 |
- log.Println(r.Method, r.RequestURI) |
|
562 |
- |
|
561 |
+ if logging { |
|
562 |
+ log.Println(r.Method, r.RequestURI) |
|
563 |
+ } |
|
563 | 564 |
if strings.Contains(r.Header.Get("User-Agent"), "Docker-Client/") { |
564 | 565 |
userAgent := strings.Split(r.Header.Get("User-Agent"), "/") |
565 | 566 |
if len(userAgent) == 2 && userAgent[1] != VERSION { |