mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-04 09:49:50 +00:00
Fix master_test flake
This commit is contained in:
parent
1b429320cf
commit
9ada897057
@ -130,10 +130,7 @@ func (h *etcdHelper) Backends(ctx context.Context) []string {
|
|||||||
glog.Errorf("Error obtaining etcd members list: %q", err)
|
glog.Errorf("Error obtaining etcd members list: %q", err)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if 0 == len(members) {
|
mlist := []string{}
|
||||||
return nil
|
|
||||||
}
|
|
||||||
mlist := []string{""}
|
|
||||||
for _, member := range members {
|
for _, member := range members {
|
||||||
mlist = append(mlist, member.ClientURLs...)
|
mlist = append(mlist, member.ClientURLs...)
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,8 @@ import (
|
|||||||
"github.com/coreos/etcd/pkg/transport"
|
"github.com/coreos/etcd/pkg/transport"
|
||||||
"github.com/coreos/etcd/pkg/types"
|
"github.com/coreos/etcd/pkg/types"
|
||||||
"github.com/coreos/etcd/rafthttp"
|
"github.com/coreos/etcd/rafthttp"
|
||||||
|
"github.com/golang/glog"
|
||||||
|
"golang.org/x/net/context"
|
||||||
)
|
)
|
||||||
|
|
||||||
// EtcdTestServer encapsulates the datastructures needed to start local instance for testing
|
// EtcdTestServer encapsulates the datastructures needed to start local instance for testing
|
||||||
@ -124,6 +126,22 @@ func (m *EtcdTestServer) launch(t *testing.T) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// waitForEtcd wait until etcd is propagated correctly
|
||||||
|
func (m *EtcdTestServer) waitUntilUp() error {
|
||||||
|
membersAPI := etcd.NewMembersAPI(m.Client)
|
||||||
|
for start := time.Now(); time.Since(start) < 5*time.Second; time.Sleep(10 * time.Millisecond) {
|
||||||
|
members, err := membersAPI.List(context.TODO())
|
||||||
|
if err != nil {
|
||||||
|
glog.Errorf("Error when getting etcd cluster members")
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if len(members) == 1 && len(members[0].ClientURLs) > 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return fmt.Errorf("timeout on waiting for etcd cluster")
|
||||||
|
}
|
||||||
|
|
||||||
// Terminate will shutdown the running etcd server
|
// Terminate will shutdown the running etcd server
|
||||||
func (m *EtcdTestServer) Terminate(t *testing.T) {
|
func (m *EtcdTestServer) Terminate(t *testing.T) {
|
||||||
m.Client = nil
|
m.Client = nil
|
||||||
@ -150,8 +168,13 @@ func NewEtcdTestClientServer(t *testing.T) *EtcdTestServer {
|
|||||||
}
|
}
|
||||||
server.Client, err = etcd.New(cfg)
|
server.Client, err = etcd.New(cfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("Unexpected Error in NewEtcdTestClientServer (%v)", err)
|
t.Errorf("Unexpected error in NewEtcdTestClientServer (%v)", err)
|
||||||
defer server.Terminate(t)
|
server.Terminate(t)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if err := server.waitUntilUp(); err != nil {
|
||||||
|
t.Errorf("Unexpected error in waitUntilUp (%v)", err)
|
||||||
|
server.Terminate(t)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
return server
|
return server
|
||||||
|
Loading…
Reference in New Issue
Block a user