func listRaftPeers()

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
}