diff --git a/tests/e2e/etcd_release_upgrade_test.go b/tests/e2e/etcd_release_upgrade_test.go index 9ae96abc1308..53f58d30aba2 100644 --- a/tests/e2e/etcd_release_upgrade_test.go +++ b/tests/e2e/etcd_release_upgrade_test.go @@ -17,7 +17,6 @@ package e2e import ( "fmt" "os" - "strings" "sync" "testing" "time" @@ -105,12 +104,17 @@ func TestReleaseUpgrade(t *testing.T) { // TODO: update after release candidate // expect upgraded cluster version - ver := version.Version - if strings.HasSuffix(ver, "-pre") { - ver = strings.Replace(ver, "-pre", "", 1) + ver := version.Cluster(version.Version) + for i := 0; i < 7; i++ { + if err = cURLGet(epc, cURLReq{endpoint: "/version", expected: `"etcdcluster":"` + ver}); err != nil { + t.Logf("#%d: %v is not ready yet (%v)", i, ver, err) + time.Sleep(time.Second) + continue + } + break } - if err := cURLGet(cx.epc, cURLReq{endpoint: "/metrics", expected: fmt.Sprintf(`etcd_cluster_version{cluster_version="%s"} 1`, ver), metricsURLScheme: cx.cfg.metricsURLScheme}); err != nil { - cx.t.Fatalf("failed get with curl (%v)", err) + if err != nil { + t.Fatalf("cluster version is not upgraded (%v)", err) } }