mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
38 lines
714 B
Go
38 lines
714 B
Go
package web
|
|
|
|
import (
|
|
"code.google.com/p/go.net/websocket"
|
|
"fmt"
|
|
"github.com/coreos/go-raft"
|
|
"html/template"
|
|
"net/http"
|
|
)
|
|
|
|
var s *raft.Server
|
|
var mainTempl *template.Template
|
|
|
|
type MainPage struct {
|
|
Leader string
|
|
Address string
|
|
}
|
|
|
|
func mainHandler(c http.ResponseWriter, req *http.Request) {
|
|
|
|
p := &MainPage{Leader: s.Leader(),
|
|
Address: s.Name()}
|
|
|
|
mainTempl.Execute(c, p)
|
|
}
|
|
|
|
func Start(server *raft.Server, port int) {
|
|
mainTempl = template.Must(template.New("index.html").Parse(index_html))
|
|
s = server
|
|
|
|
go h.run()
|
|
http.HandleFunc("/", mainHandler)
|
|
http.Handle("/ws", websocket.Handler(wsHandler))
|
|
|
|
fmt.Println("web listening at port ", port)
|
|
http.ListenAndServe(fmt.Sprintf(":%v", port), nil)
|
|
}
|