diff --git a/clientv3/integration/cluster_test.go b/clientv3/integration/cluster_test.go index a0fea37ea..f2d0a22c7 100644 --- a/clientv3/integration/cluster_test.go +++ b/clientv3/integration/cluster_test.go @@ -22,6 +22,7 @@ import ( "github.com/coreos/etcd/clientv3" "github.com/coreos/etcd/integration" "github.com/coreos/etcd/pkg/testutil" + "github.com/coreos/etcd/pkg/types" ) func TestMemberList(t *testing.T) { @@ -73,7 +74,18 @@ func TestMemberRemove(t *testing.T) { t.Fatalf("failed to list member %v", err) } - _, err = capi.MemberRemove(context.Background(), resp.Members[0].ID) + rmvID := resp.Members[0].ID + // indexes in capi member list don't necessarily match cluster member list; + // find member that is not the client to remove + for _, m := range resp.Members { + mURLs, _ := types.NewURLs(m.PeerURLs) + if !reflect.DeepEqual(mURLs, clus.Members[1].ServerConfig.PeerURLs) { + rmvID = m.ID + break + } + } + + _, err = capi.MemberRemove(context.Background(), rmvID) if err != nil { t.Fatalf("failed to remove member %v", err) }