|
@@ -22,22 +22,6 @@ func GetLogHttpHandler(w http.ResponseWriter, req *http.Request) {
|
|
|
json.NewEncoder(w).Encode(server.LogEntries())
|
|
json.NewEncoder(w).Encode(server.LogEntries())
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func JoinHttpHandler(w http.ResponseWriter, req *http.Request) {
|
|
|
|
|
- debug("[recv] POST http://%v/join", server.Name())
|
|
|
|
|
- command := &JoinCommand{}
|
|
|
|
|
- if err := decodeJsonRequest(req, command); err == nil {
|
|
|
|
|
- if _, err= server.Do(command); err != nil {
|
|
|
|
|
- warn("raftd: Unable to join: %v", err)
|
|
|
|
|
- w.WriteHeader(http.StatusInternalServerError)
|
|
|
|
|
- } else {
|
|
|
|
|
- w.WriteHeader(http.StatusOK)
|
|
|
|
|
- }
|
|
|
|
|
- } else {
|
|
|
|
|
- warn("[join] ERROR: %v", err)
|
|
|
|
|
- w.WriteHeader(http.StatusInternalServerError)
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
func VoteHttpHandler(w http.ResponseWriter, req *http.Request) {
|
|
func VoteHttpHandler(w http.ResponseWriter, req *http.Request) {
|
|
|
rvreq := &raft.RequestVoteRequest{}
|
|
rvreq := &raft.RequestVoteRequest{}
|
|
|
err := decodeJsonRequest(req, rvreq)
|
|
err := decodeJsonRequest(req, rvreq)
|
|
@@ -59,6 +43,7 @@ func AppendEntriesHttpHandler(w http.ResponseWriter, req *http.Request) {
|
|
|
debug("[recv] POST http://%s/log/append [%d]", server.Name(), len(aereq.Entries))
|
|
debug("[recv] POST http://%s/log/append [%d]", server.Name(), len(aereq.Entries))
|
|
|
debug("My role is %s", server.State())
|
|
debug("My role is %s", server.State())
|
|
|
if resp, _ := server.AppendEntries(aereq); resp != nil {
|
|
if resp, _ := server.AppendEntries(aereq); resp != nil {
|
|
|
|
|
+ debug("write back success")
|
|
|
w.WriteHeader(http.StatusOK)
|
|
w.WriteHeader(http.StatusOK)
|
|
|
json.NewEncoder(w).Encode(resp)
|
|
json.NewEncoder(w).Encode(resp)
|
|
|
if !resp.Success {
|
|
if !resp.Success {
|
|
@@ -68,6 +53,7 @@ func AppendEntriesHttpHandler(w http.ResponseWriter, req *http.Request) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
warn("[append] ERROR: %v", err)
|
|
warn("[append] ERROR: %v", err)
|
|
|
|
|
+ debug("write back")
|
|
|
w.WriteHeader(http.StatusInternalServerError)
|
|
w.WriteHeader(http.StatusInternalServerError)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -86,6 +72,24 @@ func SnapshotHttpHandler(w http.ResponseWriter, req *http.Request) {
|
|
|
w.WriteHeader(http.StatusInternalServerError)
|
|
w.WriteHeader(http.StatusInternalServerError)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+func JoinHttpHandler(w http.ResponseWriter, req *http.Request) {
|
|
|
|
|
+ debug("[recv] POST http://%v/join", server.Name())
|
|
|
|
|
+ command := &JoinCommand{}
|
|
|
|
|
+ if err := decodeJsonRequest(req, command); err == nil {
|
|
|
|
|
+ if _, err= server.Do(command); err != nil {
|
|
|
|
|
+ warn("raftd: Unable to join: %v", err)
|
|
|
|
|
+ w.WriteHeader(http.StatusInternalServerError)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ w.WriteHeader(http.StatusOK)
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ warn("[join] ERROR: %v", err)
|
|
|
|
|
+ w.WriteHeader(http.StatusInternalServerError)
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
func SetHttpHandler(w http.ResponseWriter, req *http.Request) {
|
|
func SetHttpHandler(w http.ResponseWriter, req *http.Request) {
|
|
|
key := req.URL.Path[len("/set/"):]
|
|
key := req.URL.Path[len("/set/"):]
|
|
|
|
|
|