in cmd/client/command/raft.go [99:129]
func listRaftPeers(cli *client) error {
rsp, err := cli.restyCli.R().Get("/raft/peers")
if err != nil {
return err
}
if rsp.IsError() {
return unmarshalError(rsp.Body())
}
var result struct {
Leader uint64 `json:"leader"`
Peers map[uint64]string `json:"peers"`
}
if err := unmarshalData(rsp.Body(), &result); err != nil {
return err
}
writer := tablewriter.NewWriter(os.Stdout)
printLine("")
writer.SetHeader([]string{"NODE_ID", "NODE_ADDRESS", "IS_LEADER"})
writer.SetCenterSeparator("|")
for id, addr := range result.Peers {
isLeader := "NO"
if id == result.Leader {
isLeader = "YES"
}
columns := []string{fmt.Sprintf("%d", id), addr, isLeader}
writer.Append(columns)
}
writer.Render()
return nil
}