Added some etcd retries to try to work around some flakes we see in Travis.

This commit is contained in:
Brendan Burns
2014-11-10 21:15:36 -08:00
parent 4a21dbbb0a
commit bcec212c37

View File

@@ -111,15 +111,29 @@ func startComponents(manifestURL string) (apiServerURL string) {
apiServer := httptest.NewServer(&handler) apiServer := httptest.NewServer(&handler)
etcdClient := etcd.NewClient(servers) etcdClient := etcd.NewClient(servers)
sleep := 4 * time.Second
ok := false
for i := 0; i < 3; i++ {
keys, err := etcdClient.Get("/", false, false) keys, err := etcdClient.Get("/", false, false)
if err != nil { if err != nil {
glog.Fatalf("Unable to list root etcd keys: %v", err) glog.Warningf("Unable to list root etcd keys: %v", err)
if i < 2 {
time.Sleep(sleep)
sleep = sleep * sleep
}
continue
} }
for _, node := range keys.Node.Nodes { for _, node := range keys.Node.Nodes {
if _, err := etcdClient.Delete(node.Key, true); err != nil { if _, err := etcdClient.Delete(node.Key, true); err != nil {
glog.Fatalf("Unable delete key: %v", err) glog.Fatalf("Unable delete key: %v", err)
} }
} }
ok = true
break
}
if !ok {
glog.Fatalf("Failed to connect to etcd")
}
cl := client.NewOrDie(&client.Config{Host: apiServer.URL, Version: testapi.Version()}) cl := client.NewOrDie(&client.Config{Host: apiServer.URL, Version: testapi.Version()})
cl.PollPeriod = time.Millisecond * 100 cl.PollPeriod = time.Millisecond * 100