Browse Source

move etcdMux to etcd_handlers.go (better proximity code)

Fabrizio (Misto) Milo 12 years ago
parent
commit
82fe001c65
2 changed files with 19 additions and 15 deletions
  1. 6 15
      etcd.go
  2. 13 0
      etcd_handlers.go

+ 6 - 15
etcd.go

@@ -265,23 +265,14 @@ func startEtcdTransport(info Info, scheme string, tlsConf tls.Config) {
 	}
 	infof("etcd server [%s:%s]", info.Name, u)
 
-	etcdMux := http.NewServeMux()
-
-	server := &http.Server{
-		Handler:   etcdMux,
-		TLSConfig: &tlsConf,
-		Addr:      u.Host,
+	server := &Etcd{
+		Server: http.Server{
+			Handler:   NewEtcdMuxer(),
+			TLSConfig: &tlsConf,
+			Addr:      u.Host,
+		},
 	}
 
-	// external commands
-	etcdMux.HandleFunc("/"+version+"/keys/", Multiplexer)
-	etcdMux.HandleFunc("/"+version+"/watch/", WatchHttpHandler)
-	etcdMux.HandleFunc("/leader", LeaderHttpHandler)
-	etcdMux.HandleFunc("/machines", MachinesHttpHandler)
-	etcdMux.HandleFunc("/", VersionHttpHandler)
-	etcdMux.HandleFunc("/stats", StatsHttpHandler)
-	etcdMux.HandleFunc("/test/", TestHttpHandler)
-
 	if scheme == "http" {
 		fatal(server.ListenAndServe())
 	} else {

+ 13 - 0
etcd_handlers.go

@@ -12,6 +12,19 @@ import (
 // Handlers to handle etcd-store related request via etcd url
 //-------------------------------------------------------------------
 
+func NewEtcdMuxer() *http.ServeMux {
+	// external commands
+	etcdMux := http.NewServeMux()
+	etcdMux.HandleFunc("/"+version+"/keys/", Multiplexer)
+	etcdMux.HandleFunc("/"+version+"/watch/", WatchHttpHandler)
+	etcdMux.HandleFunc("/leader", LeaderHttpHandler)
+	etcdMux.HandleFunc("/machines", MachinesHttpHandler)
+	etcdMux.HandleFunc("/", VersionHttpHandler)
+	etcdMux.HandleFunc("/stats", StatsHttpHandler)
+	etcdMux.HandleFunc("/test/", TestHttpHandler)
+	return etcdMux
+}
+
 // Multiplex GET/POST/DELETE request to corresponding handlers
 func Multiplexer(w http.ResponseWriter, req *http.Request) {