Skip to content

Commit

Permalink
address
Browse files Browse the repository at this point in the history
  • Loading branch information
nolouch committed May 17, 2017
1 parent e8cd682 commit 48be683
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 21 deletions.
4 changes: 2 additions & 2 deletions server/api/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ func (h *clusterHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
h.rd.JSON(w, http.StatusOK, h.svr.GetCluster())
}

func (h *clusterHandler) GetRaftClusterStatus(w http.ResponseWriter, r *http.Request) {
status, err := h.svr.GetRaftClusterStatus()
func (h *clusterHandler) GetClusterStatus(w http.ResponseWriter, r *http.Request) {
status, err := h.svr.GetClusterStatus()
if err != nil {
h.rd.JSON(w, http.StatusInternalServerError, err.Error())
return
Expand Down
7 changes: 4 additions & 3 deletions server/api/cluster_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,13 +60,14 @@ func (s *testClusterInfo) TestCluster(c *C) {
}

func (s *testClusterInfo) TestGetClusterStatus(c *C) {
url := fmt.Sprintf("%s/cluster/raft/status", s.urlPrefix)
status := server.RaftClusterStatus{}
url := fmt.Sprintf("%s/cluster/status", s.urlPrefix)
status := server.ClusterStatus{}
err := readJSONWithURL(url, &status)
c.Assert(err, NotNil)
c.Assert(status.BootstrapTime, IsNil)
now := time.Now()
mustBootstrapCluster(c, s.svr)
err = readJSONWithURL(url, &status)
fmt.Printf("%+v", status)
c.Assert(err, IsNil)
c.Assert(status.BootstrapTime.After(now), IsTrue)
}
2 changes: 1 addition & 1 deletion server/api/router.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ func createRouter(prefix string, svr *server.Server) *mux.Router {
router.HandleFunc("/api/v1/schedulers/{name}", schedulerHandler.Delete).Methods("DELETE")

router.Handle("/api/v1/cluster", newClusterHandler(svr, rd)).Methods("GET")
router.HandleFunc("/api/v1/cluster/raft/status", newClusterHandler(svr, rd).GetRaftClusterStatus).Methods("GET")
router.HandleFunc("/api/v1/cluster/status", newClusterHandler(svr, rd).GetClusterStatus).Methods("GET")

confHandler := newConfHandler(svr, rd)
router.HandleFunc("/api/v1/config", confHandler.Get).Methods("GET")
Expand Down
30 changes: 16 additions & 14 deletions server/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,13 @@ type RaftCluster struct {
wg sync.WaitGroup
quit chan struct{}

status *RaftClusterStatus
status *ClusterStatus
}

// RaftClusterStatus saves some state information
type RaftClusterStatus struct {
BootstrapTime time.Time `json:"bootstrap_time"`
// ClusterStatus saves some state information
type ClusterStatus struct {
// use pointer to omitempty
BootstrapTime *time.Time `json:"raft_bootstrap_time,omitempty"`
}

func newRaftCluster(s *Server, clusterID uint64) *RaftCluster {
Expand All @@ -80,15 +81,18 @@ func newRaftCluster(s *Server, clusterID uint64) *RaftCluster {
}

func (c *RaftCluster) loadClusterStatus() error {
status := &RaftClusterStatus{}
status := &ClusterStatus{}
t, err := c.s.kv.getClusterBootstrapTime()
if err != nil {
return errors.Trace(err)
}
status.BootstrapTime = t
if t != zeroTime {
status.BootstrapTime = &t
}
c.status = status
return nil
}

func (c *RaftCluster) start() error {
c.Lock()
defer c.Unlock()
Expand Down Expand Up @@ -204,17 +208,15 @@ func (s *Server) GetCluster() *metapb.Cluster {
}
}

// GetRaftClusterStatus gets cluster status
func (s *Server) GetRaftClusterStatus() (*RaftClusterStatus, error) {
// GetClusterStatus gets cluster status
func (s *Server) GetClusterStatus() (*ClusterStatus, error) {
s.cluster.Lock()
defer s.cluster.Unlock()
if s.cluster.status == nil {
err := s.cluster.loadClusterStatus()
if err != nil {
return nil, errors.Trace(err)
}
err := s.cluster.loadClusterStatus()
if err != nil {
return nil, errors.Trace(err)
}
clone := &RaftClusterStatus{}
clone := &ClusterStatus{}
*clone = *(s.cluster.status)
return clone, nil
}
Expand Down
2 changes: 1 addition & 1 deletion server/kv.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ func (kv *kv) getClusterBootstrapTime() (time.Time, error) {
return zeroTime, errors.Trace(err)
}
if len(data) == 0 {
return zeroTime, ErrNotBootstrapped
return zeroTime, nil
}
return parseTimestamp(data)
}
Expand Down

0 comments on commit 48be683

Please sign in to comment.