SetClientFactory in FederatedInformer

pull/6/head
Marcin Wielgus 2016-08-12 17:31:42 +02:00
parent 9fe15e7376
commit 8dbe762e6f
1 changed files with 14 additions and 0 deletions

View File

@ -96,6 +96,13 @@ type FederatedInformer interface {
Stop()
}
// FederatedInformer with extra method for setting fake clients.
type FederatedInformerForTestOnly interface {
FederatedInformer
SetClientFactory(func(*federation_api.Cluster) (federation_release_1_4.Interface, error))
}
// A function that should be used to create an informer on the target object. Store should use
// framework.DeletionHandlingMetaNamespaceKeyFunc as a keying function.
type TargetInformerFactory func(*federation_api.Cluster, federation_release_1_4.Interface) (cache.Store, framework.ControllerInterface)
@ -261,6 +268,13 @@ func (f *federatedInformerImpl) Start() {
go f.clusterInformer.controller.Run(f.clusterInformer.stopChan)
}
func (f *federatedInformerImpl) SetClientFactory(clientFactory func(*federation_api.Cluster) (federation_release_1_4.Interface, error)) {
f.Lock()
defer f.Unlock()
f.clientFactory = clientFactory
}
// GetClientsetForCluster returns a clientset for the cluster, if present.
func (f *federatedInformerImpl) GetClientsetForCluster(clusterName string) (federation_release_1_4.Interface, error) {
f.Lock()