diff options
Diffstat (limited to 'weed/server/raft_server_handlers.go')
| -rw-r--r-- | weed/server/raft_server_handlers.go | 22 |
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) +} |
