aboutsummaryrefslogtreecommitdiff
path: root/weed/server/raft_server_handlers.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/server/raft_server_handlers.go')
-rw-r--r--weed/server/raft_server_handlers.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/weed/server/raft_server_handlers.go b/weed/server/raft_server_handlers.go
new file mode 100644
index 000000000..fd38cb977
--- /dev/null
+++ b/weed/server/raft_server_handlers.go
@@ -0,0 +1,22 @@
+package weed_server
+
+import (
+ "net/http"
+)
+
+type ClusterStatusResult struct {
+ IsLeader bool `json:"IsLeader,omitempty"`
+ Leader string `json:"Leader,omitempty"`
+ Peers []string `json:"Peers,omitempty"`
+}
+
+func (s *RaftServer) StatusHandler(w http.ResponseWriter, r *http.Request) {
+ ret := ClusterStatusResult{
+ IsLeader: s.topo.IsLeader(),
+ Peers: s.Peers(),
+ }
+ if leader, e := s.topo.Leader(); e == nil {
+ ret.Leader = leader
+ }
+ writeJsonQuiet(w, r, http.StatusOK, ret)
+}