diff options
Diffstat (limited to 'weed/server/raft_server_handlers.go')
| -rw-r--r-- | weed/server/raft_server_handlers.go | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/weed/server/raft_server_handlers.go b/weed/server/raft_server_handlers.go index 0a794ce6c..c91ab0407 100644 --- a/weed/server/raft_server_handlers.go +++ b/weed/server/raft_server_handlers.go @@ -1,59 +1,14 @@ package weed_server import ( - "encoding/json" - "io/ioutil" "net/http" - "strings" - - "github.com/chrislusf/raft" - "github.com/chrislusf/seaweedfs/weed/glog" "github.com/chrislusf/seaweedfs/weed/operation" ) -// Handles incoming RAFT joins. -func (s *RaftServer) joinHandler(w http.ResponseWriter, req *http.Request) { - glog.V(0).Infoln("Processing incoming join. Current Leader", s.raftServer.Leader(), "Self", s.raftServer.Name(), "Peers", s.raftServer.Peers()) - command := &raft.DefaultJoinCommand{} - - commandText, _ := ioutil.ReadAll(req.Body) - glog.V(0).Info("Command:", string(commandText)) - if err := json.NewDecoder(strings.NewReader(string(commandText))).Decode(&command); err != nil { - glog.V(0).Infoln("Error decoding json message:", err, string(commandText)) - http.Error(w, err.Error(), http.StatusInternalServerError) - return - } - - glog.V(0).Infoln("join command from Name", command.Name, "Connection", command.ConnectionString) - - if _, err := s.raftServer.Do(command); err != nil { - switch err { - case raft.NotLeaderError: - s.redirectToLeader(w, req) - default: - glog.V(0).Infoln("Error processing join:", err) - http.Error(w, err.Error(), http.StatusInternalServerError) - } - } -} - func (s *RaftServer) HandleFunc(pattern string, handler func(http.ResponseWriter, *http.Request)) { s.router.HandleFunc(pattern, handler) } -func (s *RaftServer) redirectToLeader(w http.ResponseWriter, req *http.Request) { - if leader, e := s.topo.Leader(); e == nil { - //http.StatusMovedPermanently does not cause http POST following redirection - learderLocation := "http://" + leader + req.URL.Path - glog.V(0).Infoln("Redirecting to", learderLocation) - writeJsonQuiet(w, req, http.StatusOK, learderLocation) - // http.Redirect(w, req, "http://"+leader+req.URL.Path, http.StatusFound) // not working any more - } else { - glog.V(0).Infoln("Error: Leader Unknown") - http.Error(w, "Leader unknown", http.StatusInternalServerError) - } -} - func (s *RaftServer) statusHandler(w http.ResponseWriter, r *http.Request) { ret := operation.ClusterStatusResult{ IsLeader: s.topo.IsLeader(), |
