Merge pull request #2279 from brendandburns/integration

Added some etcd retries to try to work around some flakes we see in Travis
This commit is contained in:
Daniel Smith 2014-11-12 13:51:39 -08:00
commit 1be56fa91b

View File

@ -110,14 +110,28 @@ func startComponents(manifestURL string) (apiServerURL string) {
apiServer := httptest.NewServer(&handler)
etcdClient := etcd.NewClient(servers)
keys, err := etcdClient.Get("/", false, false)
if err != nil {
glog.Fatalf("Unable to list root etcd keys: %v", err)
}
for _, node := range keys.Node.Nodes {
if _, err := etcdClient.Delete(node.Key, true); err != nil {
glog.Fatalf("Unable delete key: %v", err)
sleep := 4 * time.Second
ok := false
for i := 0; i < 3; i++ {
keys, err := etcdClient.Get("/", false, false)
if err != nil {
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 {
if _, err := etcdClient.Delete(node.Key, true); err != nil {
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()})