From 5a20112ec4a19107e2f74809be8198afc0417129 Mon Sep 17 00:00:00 2001 From: nikhiljindal Date: Mon, 13 Jun 2016 15:19:57 -0700 Subject: [PATCH] Adding test for cluster controller --- test/e2e/federation-apiserver.go | 25 +++++++++++++++++++++++-- test/e2e/framework/framework.go | 2 +- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/test/e2e/federation-apiserver.go b/test/e2e/federation-apiserver.go index 656a127fb9e..90bb5422316 100644 --- a/test/e2e/federation-apiserver.go +++ b/test/e2e/federation-apiserver.go @@ -18,10 +18,13 @@ package e2e import ( "fmt" + "time" . "github.com/onsi/ginkgo" federationapi "k8s.io/kubernetes/federation/apis/federation" + "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset" "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/util/wait" "k8s.io/kubernetes/test/e2e/framework" ) @@ -54,16 +57,34 @@ var _ = framework.KubeDescribe("Federation apiserver [Feature:Federation]", func }, }, } - _, err := f.FederationClient.Clusters().Create(&cluster) + _, err := f.FederationClientset.Federation().Clusters().Create(&cluster) framework.ExpectNoError(err, fmt.Sprintf("creating cluster: %+v", err)) } for _, context := range contexts { - c, err := f.FederationClient.Clusters().Get(context.Name) + c, err := f.FederationClientset.Federation().Clusters().Get(context.Name) framework.ExpectNoError(err, fmt.Sprintf("get cluster: %+v", err)) if c.ObjectMeta.Name != context.Name { framework.Failf("cluster name does not match input context: actual=%+v, expected=%+v", c, context) } + err = isReady(context.Name, f.FederationClientset) + framework.ExpectNoError(err, fmt.Sprintf("unexpected error in verifying if cluster %s is ready: %+v", context.Name, err)) } }) }) + +// Verify that the cluster is marked ready. +func isReady(clusterName string, clientset *federation_internalclientset.Clientset) error { + return wait.PollImmediate(time.Second, wait.ForeverTestTimeout, func() (bool, error) { + c, err := clientset.Federation().Clusters().Get(clusterName) + if err != nil { + return false, err + } + for _, condition := range c.Status.Conditions { + if condition.Type == federationapi.ClusterReady && condition.Status == api.ConditionTrue { + return true, nil + } + } + return false, nil + }) +} diff --git a/test/e2e/framework/framework.go b/test/e2e/framework/framework.go index 19bf34ed3ff..55168c2dfc1 100644 --- a/test/e2e/framework/framework.go +++ b/test/e2e/framework/framework.go @@ -586,7 +586,7 @@ func (f *Framework) GetUnderlyingFederatedContexts() []E2EContext { e2eContexts := []E2EContext{} for _, context := range kubeconfig.Contexts { - if strings.HasPrefix(context.Name, "federation") { + if strings.HasPrefix(context.Name, "federation") && context.Name != "federation-cluster" { user := kubeconfig.findUser(context.Context.User) if user == nil {