aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2014-02-04 01:10:07 -0800
committerChris Lu <chris.lu@gmail.com>2014-02-04 01:10:07 -0800
commit6887e55f6abc03fdf8c2140f1b540ce0bcaf9f0c (patch)
treed906a1db2c5ec2d37292468ae3b14cd6bace247a
parent260fcd8e1e9912eb5875220cd52984cb8fe5bd41 (diff)
downloadseaweedfs-6887e55f6abc03fdf8c2140f1b540ce0bcaf9f0c.tar.xz
seaweedfs-6887e55f6abc03fdf8c2140f1b540ce0bcaf9f0c.zip
minor adjustment for weed master nodes clustering
-rw-r--r--go/weed/weed_server/raft_server.go11
-rw-r--r--go/weed/weed_server/raft_server_handlers.go7
2 files changed, 14 insertions, 4 deletions
diff --git a/go/weed/weed_server/raft_server.go b/go/weed/weed_server/raft_server.go
index eaa33d107..9b79ac09b 100644
--- a/go/weed/weed_server/raft_server.go
+++ b/go/weed/weed_server/raft_server.go
@@ -32,10 +32,12 @@ func NewRaftServer(r *mux.Router, version string, peers []string, httpAddr strin
router: r,
}
- //raft.SetLogLevel(2)
+ if glog.V(4) {
+ raft.SetLogLevel(2)
+ }
var err error
- transporter := raft.NewHTTPTransporter("/raft")
+ transporter := raft.NewHTTPTransporter("/cluster")
s.raftServer, err = raft.NewServer(s.httpAddr, s.dataDir, transporter, nil, nil, "")
if err != nil {
glog.V(0).Infoln(err)
@@ -46,7 +48,8 @@ func NewRaftServer(r *mux.Router, version string, peers []string, httpAddr strin
s.raftServer.SetElectionTimeout(1500 * time.Millisecond)
s.raftServer.Start()
- s.router.HandleFunc("/raft/join", s.joinHandler).Methods("POST")
+ s.router.HandleFunc("/cluster/join", s.joinHandler).Methods("POST")
+ s.router.HandleFunc("/cluster/status", s.statusHandler).Methods("GET")
// Join to leader if specified.
if len(s.peers) > 0 {
@@ -117,7 +120,7 @@ func (s *RaftServer) Join(peers []string) error {
for _, m := range peers {
glog.V(0).Infoln("Attempting to connect to:", m)
- resp, err := http.Post(fmt.Sprintf("http://%s/raft/join", strings.TrimSpace(m)), "application/json", &b)
+ resp, err := http.Post(fmt.Sprintf("http://%s/cluster/join", strings.TrimSpace(m)), "application/json", &b)
glog.V(0).Infoln("Post returned: ", err)
if err != nil {
diff --git a/go/weed/weed_server/raft_server_handlers.go b/go/weed/weed_server/raft_server_handlers.go
index f1cb1a6c9..0fe602925 100644
--- a/go/weed/weed_server/raft_server_handlers.go
+++ b/go/weed/weed_server/raft_server_handlers.go
@@ -44,3 +44,10 @@ func (s *RaftServer) redirectToLeader(w http.ResponseWriter, req *http.Request)
http.Error(w, "Leader unknown", http.StatusInternalServerError)
}
}
+
+func (s *RaftServer) statusHandler(w http.ResponseWriter, r *http.Request) {
+ m := make(map[string]interface{})
+ m["Leader"] = s.Leader()
+ m["Members"] = s.Members()
+ writeJsonQuiet(w, r, m)
+}