etcdctl: add learner field in member list output

This commit is contained in:
Jingyi Hu 2019-03-20 17:02:00 -07:00
parent e4296bbad9
commit 1e38de5b9d
3 changed files with 8 additions and 2 deletions

View File

@ -90,7 +90,7 @@ func NewMemberListCommand() *cobra.Command {
Use: "list",
Short: "Lists all members in the cluster",
Long: `When --write-out is set to simple, this command prints out comma-separated member lists for each endpoint.
The items in the lists are ID, Status, Name, Peer Addrs, Client Addrs.
The items in the lists are ID, Status, Name, Peer Addrs, Client Addrs, Is Learner.
`,
Run: memberListCommandFunc,

View File

@ -158,18 +158,23 @@ func (p *printerUnsupported) DBStatus(snapshot.Status) { p.p(nil) }
func (p *printerUnsupported) MoveLeader(leader, target uint64, r v3.MoveLeaderResponse) { p.p(nil) }
func makeMemberListTable(r v3.MemberListResponse) (hdr []string, rows [][]string) {
hdr = []string{"ID", "Status", "Name", "Peer Addrs", "Client Addrs"}
hdr = []string{"ID", "Status", "Name", "Peer Addrs", "Client Addrs", "Is Learner"}
for _, m := range r.Members {
status := "started"
if len(m.Name) == 0 {
status = "unstarted"
}
isLearner := "false"
if m.IsLearner {
isLearner = "true"
}
rows = append(rows, []string{
fmt.Sprintf("%x", m.ID),
status,
m.Name,
strings.Join(m.PeerURLs, ","),
strings.Join(m.ClientURLs, ","),
isLearner,
})
}
return hdr, rows

View File

@ -137,6 +137,7 @@ func (p *fieldsPrinter) MemberList(r v3.MemberListResponse) {
for _, u := range m.ClientURLs {
fmt.Printf("\"ClientURL\" : %q\n", u)
}
fmt.Println(`"IsLearner" :`, m.IsLearner)
fmt.Println()
}
}