From 00f9aef0ab1b4672a4e18e96091dbbfca6c1d9f4 Mon Sep 17 00:00:00 2001 From: Andrew Sy Kim Date: Thu, 3 Dec 2020 14:01:44 -0500 Subject: [PATCH] cloud-provider: allow disable interfaces from fake cloud provider Signed-off-by: Andrew Sy Kim --- staging/src/k8s.io/cloud-provider/fake/fake.go | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/staging/src/k8s.io/cloud-provider/fake/fake.go b/staging/src/k8s.io/cloud-provider/fake/fake.go index fa085ea5ec1..7748dbfd7e5 100644 --- a/staging/src/k8s.io/cloud-provider/fake/fake.go +++ b/staging/src/k8s.io/cloud-provider/fake/fake.go @@ -56,6 +56,12 @@ var _ cloudprovider.Clusters = (*Cloud)(nil) // Cloud is a test-double implementation of Interface, LoadBalancer, Instances, and Routes. It is useful for testing. type Cloud struct { + DisableInstances bool + DisableRoutes bool + DisableLoadBalancers bool + DisableZones bool + DisableClusters bool + Exists bool Err error @@ -126,7 +132,7 @@ func (f *Cloud) Master(ctx context.Context, name string) (string, error) { // Clusters returns a clusters interface. Also returns true if the interface is supported, false otherwise. func (f *Cloud) Clusters() (cloudprovider.Clusters, bool) { - return f, true + return f, !f.DisableClusters } // ProviderName returns the cloud provider ID. @@ -145,14 +151,14 @@ func (f *Cloud) HasClusterID() bool { // LoadBalancer returns a fake implementation of LoadBalancer. // Actually it just returns f itself. func (f *Cloud) LoadBalancer() (cloudprovider.LoadBalancer, bool) { - return f, true + return f, !f.DisableLoadBalancers } // Instances returns a fake implementation of Instances. // // Actually it just returns f itself. func (f *Cloud) Instances() (cloudprovider.Instances, bool) { - return f, true + return f, !f.DisableInstances } // InstancesV2 returns a fake implementation of InstancesV2. @@ -167,12 +173,12 @@ func (f *Cloud) InstancesV2() (cloudprovider.InstancesV2, bool) { // Zones returns a zones interface. Also returns true if the interface is supported, false otherwise. func (f *Cloud) Zones() (cloudprovider.Zones, bool) { - return f, true + return f, !f.DisableZones } // Routes returns a routes interface along with whether the interface is supported. func (f *Cloud) Routes() (cloudprovider.Routes, bool) { - return f, true + return f, !f.DisableRoutes } // GetLoadBalancer is a stub implementation of LoadBalancer.GetLoadBalancer.