Move peer http handlers from ipam to weaver

This commit is contained in:
Bryan Boreham committed 2017-04-10 14:09:06 +00:00
1 parent e2d644b86b
commit 768f89c3de
3 files changed
+22 -11

No files matched your search

-11
View File
@@ -198,17 +198,6 @@ func (alloc *Allocator) HandleHTTP(router *mux.Router, defaultSubnet address.CID
w.WriteHeader(204)
})
router.Methods("DELETE").Path("/peer").HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
alloc.Shutdown()
w.WriteHeader(204)
})
router.Methods("DELETE").Path("/peer/{id}").HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
ident := mux.Vars(r)["id"]
transferred := alloc.AdminTakeoverRanges(ident)
fmt.Fprintf(w, "%d IPs taken over from %s\n", transferred, ident)
})
router.Methods("GET").Path("/ipinfo/tracker").HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, tracker)
})
+21
View File
@@ -8,6 +8,10 @@ import (
"io/ioutil"
"net/http"
"time"
"github.com/gorilla/mux"
"github.com/weaveworks/weave/ipam"
)
// TODO: move these definitions somewhere more shareable
@@ -64,3 +68,20 @@ func peerDiscoveryUpdate(discoveryEndpoint, token, peername, nickname string, ad
err := do("POST", discoveryEndpoint, token, request, &updateResponse)
return updateResponse.Addresses, err
}
func HandleHTTPPeer(router *mux.Router, alloc *ipam.Allocator) {
router.Methods("DELETE").Path("/peer").HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if alloc != nil {
alloc.Shutdown()
}
w.WriteHeader(204)
})
router.Methods("DELETE").Path("/peer/{id}").HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
ident := mux.Vars(r)["id"]
if alloc != nil {
transferred := alloc.AdminTakeoverRanges(ident)
fmt.Fprintf(w, "%d IPs taken over from %s\n", transferred, ident)
}
})
}
+1
View File
@@ -372,6 +372,7 @@ func main() {
}
router.HandleHTTP(muxRouter)
HandleHTTP(muxRouter, version, router, allocator, defaultSubnet, ns, dnsserver)
HandleHTTPPeer(muxRouter, allocator)
muxRouter.Methods("GET").Path("/metrics").Handler(metricsHandler(router, allocator, ns, dnsserver))
http.Handle("/", common.LoggingHTTPHandler(muxRouter))
Log.Println("Listening for HTTP control messages on", httpAddr)