mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Merge pull request #11638 from jingyih/fix_etcdctl_member_list
etcdctl: fix member add (again...)
This commit is contained in:
commit
d774916f6d
@ -156,30 +156,8 @@ func memberAddCommandFunc(cmd *cobra.Command, args []string) {
|
|||||||
display.MemberAdd(*resp)
|
display.MemberAdd(*resp)
|
||||||
|
|
||||||
if _, ok := (display).(*simplePrinter); ok {
|
if _, ok := (display).(*simplePrinter); ok {
|
||||||
ctx, cancel = commandCtx(cmd)
|
|
||||||
listResp, err := cli.MemberList(ctx)
|
|
||||||
// make sure the member who served member list request has the latest member list.
|
|
||||||
syncedMemberSet := make(map[uint64]struct{})
|
|
||||||
syncedMemberSet[resp.Header.MemberId] = struct{}{} // the member who served member add is guaranteed to have the latest member list.
|
|
||||||
for {
|
|
||||||
if err != nil {
|
|
||||||
ExitWithError(ExitError, err)
|
|
||||||
}
|
|
||||||
if _, ok := syncedMemberSet[listResp.Header.MemberId]; ok {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
// quorum get to sync cluster list
|
|
||||||
gresp, gerr := cli.Get(ctx, "_")
|
|
||||||
if gerr != nil {
|
|
||||||
ExitWithError(ExitError, err)
|
|
||||||
}
|
|
||||||
syncedMemberSet[gresp.Header.MemberId] = struct{}{}
|
|
||||||
listResp, err = cli.MemberList(ctx)
|
|
||||||
}
|
|
||||||
cancel()
|
|
||||||
|
|
||||||
conf := []string{}
|
conf := []string{}
|
||||||
for _, memb := range listResp.Members {
|
for _, memb := range resp.Members {
|
||||||
for _, u := range memb.PeerURLs {
|
for _, u := range memb.PeerURLs {
|
||||||
n := memb.Name
|
n := memb.Name
|
||||||
if memb.ID == newID {
|
if memb.ID == newID {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user