Merge pull request #26953 from madhusudancs/fed-e2e-framework-clientset

Automatic merge from submit-queue

Add clientset support for federation e2e tests.

Only the last commit here needs review.

Depends on #26952.

cc @colhom @kubernetes/sig-cluster-federation

[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
pull/6/head
k8s-merge-robot 2016-06-13 04:53:41 -07:00 committed by GitHub
commit 6489abe8b4
2 changed files with 48 additions and 6 deletions

View File

@ -25,6 +25,7 @@ import (
"sync"
"time"
"k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset"
unversionedfederation "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned"
"k8s.io/kubernetes/pkg/api"
apierrs "k8s.io/kubernetes/pkg/api/errors"
@ -56,6 +57,8 @@ type Framework struct {
Clientset_1_2 *release_1_2.Clientset
Clientset_1_3 *release_1_3.Clientset
FederationClientset *federation_internalclientset.Clientset
// TODO: remove FederationClient, all the client access must be through FederationClientset
FederationClient *unversionedfederation.FederationClient
Namespace *api.Namespace // Every test has at least one namespace
@ -152,11 +155,19 @@ func (f *Framework) BeforeEach() {
Expect(err).NotTo(HaveOccurred())
}
if f.federated && f.FederationClient == nil {
By("Creating a federated kubernetes client")
var err error
f.FederationClient, err = LoadFederationClient()
Expect(err).NotTo(HaveOccurred())
if f.federated {
if f.FederationClient == nil {
By("Creating a federated kubernetes client")
var err error
f.FederationClient, err = LoadFederationClient()
Expect(err).NotTo(HaveOccurred())
}
if f.FederationClientset == nil {
By("Creating a federation Clientset")
var err error
f.FederationClientset, err = LoadFederationClientset()
Expect(err).NotTo(HaveOccurred())
}
}
By("Building a namespace api object")
@ -235,7 +246,11 @@ func (f *Framework) AfterEach() {
if f.federated {
defer func() {
if f.FederationClient == nil {
Logf("Warning: framework is marked federated, but has no FederationClient")
Logf("Warning: framework is marked federated, but has no federation client")
return
}
if f.FederationClientset == nil {
Logf("Warning: framework is marked federated, but has no federation clientset")
return
}
if err := f.FederationClient.Clusters().DeleteCollection(nil, api.ListOptions{}); err != nil {

View File

@ -37,6 +37,7 @@ import (
"sync"
"time"
"k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset"
unversionedfederation "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned"
"k8s.io/kubernetes/pkg/api"
apierrs "k8s.io/kubernetes/pkg/api/errors"
@ -1632,6 +1633,32 @@ func loadClientFromConfig(config *restclient.Config) (*client.Client, error) {
return c, nil
}
func loadFederationClientsetFromConfig(config *restclient.Config) (*federation_internalclientset.Clientset, error) {
c, err := federation_internalclientset.NewForConfig(config)
if err != nil {
return nil, fmt.Errorf("error creating federation clientset: %v", err.Error())
}
// Set timeout for each client in the set.
if c.DiscoveryClient.Client.Timeout == 0 {
c.DiscoveryClient.Client.Timeout = SingleCallTimeout
}
if c.FederationClient.Client.Timeout == 0 {
c.FederationClient.Client.Timeout = SingleCallTimeout
}
if c.CoreClient.Client.Timeout == 0 {
c.CoreClient.Client.Timeout = SingleCallTimeout
}
return c, nil
}
func LoadFederationClientset() (*federation_internalclientset.Clientset, error) {
config, err := LoadFederatedConfig()
if err != nil {
return nil, fmt.Errorf("error creating federated client config: %v", err.Error())
}
return loadFederationClientsetFromConfig(config)
}
func loadFederationClientFromConfig(config *restclient.Config) (*unversionedfederation.FederationClient, error) {
c, err := unversionedfederation.NewForConfig(config)
if err != nil {