This commit is contained in:
Victor Vieux 2013-05-09 23:52:12 +02:00
Родитель 93dc2c331e
Коммит c423a790d6
3 изменённых файлов: 26 добавлений и 28 удалений

24
api.go
Просмотреть файл

@ -110,19 +110,10 @@ func getContainersExport(srv *Server, w http.ResponseWriter, r *http.Request) ([
}
func getImages(srv *Server, w http.ResponseWriter, r *http.Request) ([]byte, error) {
vars := mux.Vars(r)
format := vars["format"]
if err := parseForm(r); err != nil {
return nil, err
}
if format == "viz" {
if err := srv.ImagesViz(w); err != nil {
return nil, err
}
return nil, nil
} else if format == "" || format == "json" {
all := r.Form.Get("all") == "1"
filter := r.Form.Get("filter")
only_ids := r.Form.Get("only_ids") == "1"
@ -136,8 +127,13 @@ func getImages(srv *Server, w http.ResponseWriter, r *http.Request) ([]byte, err
return nil, err
}
return b, nil
}
func getImagesViz(srv *Server, w http.ResponseWriter, r *http.Request) ([]byte, error) {
if err := srv.ImagesViz(w); err != nil {
return nil, err
}
return nil, fmt.Errorf("No such format: %s", format)
return nil, nil
}
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
return b, nil
}
func ListenAndServe(addr string, srv *Server) error {
func ListenAndServe(addr string, srv *Server, logging bool) error {
r := mux.NewRouter()
log.Printf("Listening for HTTP on %s\n", addr)
@ -518,7 +514,8 @@ func ListenAndServe(addr string, srv *Server) error {
"/version": getVersion,
"/containers/{name:.*}/export": getContainersExport,
"/images": getImages,
"/images/{format}": getImages,
"/images/json": getImages,
"/images/viz": getImagesViz,
"/info": getInfo,
"/images/search": getImagesSearch,
"/images/{name:.*}/history": getImagesHistory,
@ -558,8 +555,9 @@ func ListenAndServe(addr string, srv *Server) error {
localFct := fct
r.Path(localRoute).Methods(localMethod).HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
Debugf("Calling %s %s", localMethod, localRoute)
if logging {
log.Println(r.Method, r.RequestURI)
}
if strings.Contains(r.Header.Get("User-Agent"), "Docker-Client/") {
userAgent := strings.Split(r.Header.Get("User-Agent"), "/")
if len(userAgent) == 2 && userAgent[1] != VERSION {

Просмотреть файл

@ -17,7 +17,7 @@ func init() {
srv := &Server{
runtime: runtime,
}
go ListenAndServe("0.0.0.0:4243", srv)
go ListenAndServe("0.0.0.0:4243", srv, false)
}

Просмотреть файл

@ -102,5 +102,5 @@ func daemon(pidfile string, autoRestart bool) error {
return err
}
return docker.ListenAndServe("0.0.0.0:4243", server)
return docker.ListenAndServe("0.0.0.0:4243", server, true)
}