From e621f0760bccc8980936344a4de8d8f7bfc8b34d Mon Sep 17 00:00:00 2001 From: Madhu Venugopal Date: Sun, 24 May 2015 09:30:41 -0700 Subject: [PATCH] Added API support for both /vx.x/networks & /networks In one of the previous commit, we went to the extreme of supporting just the /{version}/networks. Though that satisfied the requirements for UI integration, it is not fully consistent with Docker APIs. Docker API supports both /{version}/resource and /resource and hence we must add the same support for networks resource. Also fixed a silly bug in api.go Signed-off-by: Madhu Venugopal --- api/api.go | 7 ++++++- cmd/dnet/dnet.go | 4 +++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/api/api.go b/api/api.go index 42f1672..852a181 100644 --- a/api/api.go +++ b/api/api.go @@ -100,7 +100,7 @@ func (h *httpHandler) initRouter() { "DELETE": { {"/networks/" + nwID, nil, procDeleteNetwork}, {"/networks/" + nwID + "/endpoints/" + epID, nil, procDeleteEndpoint}, - {"/networks/id/" + nwID + "/endpoints/" + epID + "/containers/" + cnID, nil, procLeaveEndpoint}, + {"/networks/" + nwID + "/endpoints/" + epID + "/containers/" + cnID, nil, procLeaveEndpoint}, }, } @@ -111,6 +111,11 @@ func (h *httpHandler) initRouter() { if route.qrs != nil { r.Queries(route.qrs...) } + + r = h.r.Path(route.url).Methods(method).HandlerFunc(makeHandler(h.c, route.fct)) + if route.qrs != nil { + r.Queries(route.qrs...) + } } } } diff --git a/cmd/dnet/dnet.go b/cmd/dnet/dnet.go index 8c59924..90ec6ff 100644 --- a/cmd/dnet/dnet.go +++ b/cmd/dnet/dnet.go @@ -115,6 +115,8 @@ func (d *dnetConnection) dnetDaemon() error { r := mux.NewRouter().StrictSlash(false) post := r.PathPrefix("/{.*}/networks").Subrouter() post.Methods("GET", "PUT", "POST", "DELETE").HandlerFunc(httpHandler) + post = r.PathPrefix("/networks").Subrouter() + post.Methods("GET", "PUT", "POST", "DELETE").HandlerFunc(httpHandler) return http.ListenAndServe(d.addr, r) } @@ -141,7 +143,7 @@ func (d *dnetConnection) httpCall(method, path string, data interface{}, headers return nil, -1, err } - req, err := http.NewRequest(method, fmt.Sprintf("/dnet%s", path), in) + req, err := http.NewRequest(method, fmt.Sprintf("%s", path), in) if err != nil { return nil, -1, err }