Merge pull request #7742 from cjcullen/cbr0

Make changes suggested in #7675
pull/6/head
Quinton Hoole 2015-05-05 08:00:24 -07:00
commit 74c07f1094
4 changed files with 17 additions and 17 deletions

View File

@ -34,6 +34,7 @@ import (
kfields "github.com/GoogleCloudPlatform/kubernetes/pkg/fields" kfields "github.com/GoogleCloudPlatform/kubernetes/pkg/fields"
klabels "github.com/GoogleCloudPlatform/kubernetes/pkg/labels" klabels "github.com/GoogleCloudPlatform/kubernetes/pkg/labels"
tools "github.com/GoogleCloudPlatform/kubernetes/pkg/tools" tools "github.com/GoogleCloudPlatform/kubernetes/pkg/tools"
"github.com/GoogleCloudPlatform/kubernetes/pkg/util/wait"
kwatch "github.com/GoogleCloudPlatform/kubernetes/pkg/watch" kwatch "github.com/GoogleCloudPlatform/kubernetes/pkg/watch"
etcd "github.com/coreos/go-etcd/etcd" etcd "github.com/coreos/go-etcd/etcd"
skymsg "github.com/skynetservices/skydns/msg" skymsg "github.com/skynetservices/skydns/msg"
@ -121,25 +122,22 @@ func newEtcdClient() (client *etcd.Client) {
} }
} }
// loop until we have > 0 machines && machines[0] != "" // loop until we have > 0 machines && machines[0] != ""
timeout := false poll, timeout := 1*time.Second, 10*time.Second
go func() { if err := wait.Poll(poll, timeout, func() (bool, error) {
<-time.After(10 * time.Second) if client = etcd.NewClient([]string{*etcd_server}); client == nil {
timeout = true log.Fatal("etcd.NewClient returned nil")
}()
for !timeout {
client = etcd.NewClient([]string{*etcd_server})
if client == nil {
return nil
} }
client.SyncCluster() client.SyncCluster()
machines := client.GetCluster() machines := client.GetCluster()
if len(machines) > 0 && len(machines[0]) > 0 { if len(machines) == 0 || len(machines[0]) == 0 {
return false, nil
}
return true, nil
}); err != nil {
log.Fatalf("Timed out after %s waiting for at least 1 synchronized etcd server in the cluster", timeout)
}
return client return client
} }
}
log.Fatal("Timed out waiting for correct response from etcd server")
return nil
}
// TODO: evaluate using pkg/client/clientcmd // TODO: evaluate using pkg/client/clientcmd
func newKubeClient() (*kclient.Client, error) { func newKubeClient() (*kclient.Client, error) {

View File

@ -31,7 +31,7 @@ desiredState:
"-initial-cluster-token=skydns-etcd", "-initial-cluster-token=skydns-etcd",
] ]
- name: kube2sky - name: kube2sky
image: gcr.io/google_containers/kube2sky:1.3 image: gcr.io/google_containers/kube2sky:1.4
volumeMounts: volumeMounts:
- name: dns-token - name: dns-token
mountPath: /etc/dns_token mountPath: /etc/dns_token

View File

@ -517,7 +517,7 @@ func GetEtcdVersion(host string) (string, error) {
} }
defer response.Body.Close() defer response.Body.Close()
if response.StatusCode != http.StatusOK { if response.StatusCode != http.StatusOK {
return "", fmt.Errorf("Unsuccessful response from server: %v", err) return "", fmt.Errorf("unsuccessful response from etcd server %q: %v", host, err)
} }
versionBytes, err := ioutil.ReadAll(response.Body) versionBytes, err := ioutil.ReadAll(response.Body)
if err != nil { if err != nil {

View File

@ -35,6 +35,8 @@ import (
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
const validEtcdVersion = "etcd 2.0.9"
type TestResource struct { type TestResource struct {
api.TypeMeta `json:",inline"` api.TypeMeta `json:",inline"`
api.ObjectMeta `json:"metadata"` api.ObjectMeta `json:"metadata"`
@ -685,7 +687,7 @@ func TestGuaranteedUpdate_CreateCollision(t *testing.T) {
func TestGetEtcdVersion_ValidVersion(t *testing.T) { func TestGetEtcdVersion_ValidVersion(t *testing.T) {
testServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { testServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "etcd 2.0.9") fmt.Fprint(w, validEtcdVersion)
})) }))
defer testServer.Close() defer testServer.Close()
@ -694,7 +696,7 @@ func TestGetEtcdVersion_ValidVersion(t *testing.T) {
if version, err = GetEtcdVersion(testServer.URL); err != nil { if version, err = GetEtcdVersion(testServer.URL); err != nil {
t.Errorf("Unexpected error: %v", err) t.Errorf("Unexpected error: %v", err)
} }
assert.Equal(t, "etcd 2.0.9", version, "Unexpected version") assert.Equal(t, validEtcdVersion, version, "Unexpected version")
assert.Nil(t, err) assert.Nil(t, err)
} }