From 3942f19897c3ee655ac00ba9af5fd97d759181f4 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Fri, 29 Aug 2014 15:26:04 +0100 Subject: [PATCH] Remove boilerplate and condense the http handler down to one function. Also fixed indenting on one line in shell script. --- http_responder.go | 34 ---------------------------------- weaver/main.go | 13 +++++++++++-- weaver/weave | 2 +- 3 files changed, 12 insertions(+), 37 deletions(-) delete mode 100644 http_responder.go diff --git a/http_responder.go b/http_responder.go deleted file mode 100644 index 29cfd299..00000000 --- a/http_responder.go +++ /dev/null @@ -1,34 +0,0 @@ -package weave - -import ( - "fmt" - "net/http" -) - -/* A simple http responder that will show the status of the router when asked, -e.g. via http://172.17.0.2/status -*/ -type HttpStatusResponder struct { - router *Router -} - -func NewHttpStatusResponder(router *Router) *HttpStatusResponder { - resp := &HttpStatusResponder{router} - return resp -} - -func (resp *HttpStatusResponder) SetRouter(newRouter *Router) { - resp.router = newRouter -} - -func (resp *HttpStatusResponder) ListenAndServe() { - http.HandleFunc("/status", func(w http.ResponseWriter, r *http.Request) { - if resp.router != nil { - fmt.Fprint(w, resp.router.Status()) - } else { - fmt.Fprintf(w, "Not initialized") - } - }) - address := fmt.Sprintf(":%d", StatusPort) - http.ListenAndServe(address, nil) -} diff --git a/weaver/main.go b/weaver/main.go index e8c210e3..92758700 100644 --- a/weaver/main.go +++ b/weaver/main.go @@ -9,6 +9,7 @@ import ( "github.com/davecheney/profile" "log" "net" + "net/http" "os" "os/signal" "runtime" @@ -123,11 +124,19 @@ func main() { } }() } - httpResponder := weave.NewHttpStatusResponder(router) - go httpResponder.ListenAndServe() + go handleHttp(router) handleSignals(router) } +func handleHttp(router *weave.Router) { + http.HandleFunc("/status", func(w http.ResponseWriter, r *http.Request) { + fmt.Fprint(w, router.Status()) + }) + address := fmt.Sprintf(":%d", weave.StatusPort) + http.ListenAndServe(address, nil) +} + + func handleSignals(router *weave.Router) { sigs := make(chan os.Signal, 1) signal.Notify(sigs, syscall.SIGQUIT, syscall.SIGUSR1) diff --git a/weaver/weave b/weaver/weave index 1b89e749..ab0b591f 100755 --- a/weaver/weave +++ b/weaver/weave @@ -19,7 +19,7 @@ usage() { if [ "$#" -lt 1 ]; then usage -exit 1 + exit 1 fi [ `id -u` = 0 ] || {