diff --git a/pkg/cloudprovider/vsphereparavirtual/instances_test.go b/pkg/cloudprovider/vsphereparavirtual/instances_test.go index f0333b53f..b32af288a 100644 --- a/pkg/cloudprovider/vsphereparavirtual/instances_test.go +++ b/pkg/cloudprovider/vsphereparavirtual/instances_test.go @@ -27,10 +27,10 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" + "k8s.io/client-go/rest" clientgotesting "k8s.io/client-go/testing" cloudprovider "k8s.io/cloud-provider" fakevmclient "k8s.io/cloud-provider-vsphere/pkg/cloudprovider/vsphereparavirtual/vmop/clientset/versioned/fake" - "sigs.k8s.io/controller-runtime/pkg/envtest" ) var ( @@ -68,29 +68,21 @@ func createTestVMWithVMIPAndHost(name, namespace, biosUUID string) *vmopv1alpha1 func TestNewInstances(t *testing.T) { testCases := []struct { name string - testEnv *envtest.Environment + config *rest.Config expectedErr error }{ { - name: "NewInstance: when everything is ok", - // The above code is declaring a test environment variable of type `envtest.Environment` and - // initializing it with an empty instance of `envtest.Environment`. - testEnv: &envtest.Environment{}, + name: "NewInstance: when everything is ok", + config: &rest.Config{}, expectedErr: nil, }, } for _, testCase := range testCases { t.Run(testCase.name, func(t *testing.T) { - cfg, err := testCase.testEnv.Start() - assert.NoError(t, err) - - _, err = NewInstances(testClusterNameSpace, cfg) + _, err := NewInstances(testClusterNameSpace, testCase.config) assert.NoError(t, err) assert.Equal(t, testCase.expectedErr, err) - - err = testCase.testEnv.Stop() - assert.NoError(t, err) }) } } diff --git a/pkg/cloudprovider/vsphereparavirtual/loadbalancer_test.go b/pkg/cloudprovider/vsphereparavirtual/loadbalancer_test.go index 4608cfb95..32fa77c04 100644 --- a/pkg/cloudprovider/vsphereparavirtual/loadbalancer_test.go +++ b/pkg/cloudprovider/vsphereparavirtual/loadbalancer_test.go @@ -27,10 +27,10 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/client-go/rest" clientgotesting "k8s.io/client-go/testing" cloudprovider "k8s.io/cloud-provider" fakevmclient "k8s.io/cloud-provider-vsphere/pkg/cloudprovider/vsphereparavirtual/vmop/clientset/versioned/fake" - "sigs.k8s.io/controller-runtime/pkg/envtest" "k8s.io/cloud-provider-vsphere/pkg/cloudprovider/vsphereparavirtual/vmservice" @@ -61,27 +61,21 @@ func newTestLoadBalancer() (cloudprovider.LoadBalancer, *fakevmclient.Clientset) func TestNewLoadBalancer(t *testing.T) { testCases := []struct { - name string - testEnv *envtest.Environment - err error + name string + config *rest.Config + err error }{ { - name: "NewLoadBalancer: when everything is ok", - testEnv: &envtest.Environment{}, - err: nil, + name: "NewLoadBalancer: when everything is ok", + config: &rest.Config{}, + err: nil, }, } for _, testCase := range testCases { t.Run(testCase.name, func(t *testing.T) { - cfg, err := testCase.testEnv.Start() - assert.NoError(t, err) - - _, err = NewLoadBalancer(testClusterNameSpace, cfg, &testOwnerReference) + _, err := NewLoadBalancer(testClusterNameSpace, testCase.config, &testOwnerReference) assert.Equal(t, testCase.err, err) - - err = testCase.testEnv.Stop() - assert.NoError(t, err) }) } } diff --git a/pkg/cloudprovider/vsphereparavirtual/vmservice/vmservice_test.go b/pkg/cloudprovider/vsphereparavirtual/vmservice/vmservice_test.go index 80556f146..335c3d4b6 100644 --- a/pkg/cloudprovider/vsphereparavirtual/vmservice/vmservice_test.go +++ b/pkg/cloudprovider/vsphereparavirtual/vmservice/vmservice_test.go @@ -30,11 +30,11 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" + rest "k8s.io/client-go/rest" clientgotesting "k8s.io/client-go/testing" "k8s.io/apimachinery/pkg/util/intstr" fakevmclient "k8s.io/cloud-provider-vsphere/pkg/cloudprovider/vsphereparavirtual/vmop/clientset/versioned/fake" - "sigs.k8s.io/controller-runtime/pkg/envtest" ) var ( @@ -50,9 +50,6 @@ var ( } vms VMService fakeLBIP = "1.1.1.1" - - // FakeClientWrapper allows functions to be replaced for fault injection - fc *fakevmclient.Clientset ) func initTest() (*v1.Service, VMService, *fakevmclient.Clientset) { @@ -84,31 +81,25 @@ func initTest() (*v1.Service, VMService, *fakevmclient.Clientset) { func TestNewVMService(t *testing.T) { testCases := []struct { - name string - testEnv *envtest.Environment - err error + name string + config *rest.Config + err error }{ { - name: "NewVMService: when everything is ok", - testEnv: &envtest.Environment{}, - err: nil, + name: "NewVMService: when everything is ok", + config: &rest.Config{}, + err: nil, }, } for _, testCase := range testCases { t.Run(testCase.name, func(t *testing.T) { - cfg, err := testCase.testEnv.Start() - assert.NoError(t, err) - - client, err := GetVmopClient(cfg) + client, err := GetVmopClient(testCase.config) assert.NoError(t, err) assert.NotEqual(t, client, nil) realVms := NewVMService(client, testClusterNameSpace, &testOwnerReference) assert.NotEqual(t, realVms, nil) - - err = testCase.testEnv.Stop() - assert.NoError(t, err) }) } } diff --git a/pkg/cloudprovider/vsphereparavirtual/zone_test.go b/pkg/cloudprovider/vsphereparavirtual/zone_test.go index b58f0afff..610f629d6 100644 --- a/pkg/cloudprovider/vsphereparavirtual/zone_test.go +++ b/pkg/cloudprovider/vsphereparavirtual/zone_test.go @@ -8,9 +8,9 @@ import ( vmopv1alpha1 "github.com/vmware-tanzu/vm-operator-api/api/v1alpha1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" + "k8s.io/client-go/rest" cloudprovider "k8s.io/cloud-provider" fakevmclient "k8s.io/cloud-provider-vsphere/pkg/cloudprovider/vsphereparavirtual/vmop/clientset/versioned/fake" - "sigs.k8s.io/controller-runtime/pkg/envtest" ) var ( @@ -23,13 +23,13 @@ var ( func TestNewZones(t *testing.T) { testCases := []struct { name string - testEnv *envtest.Environment + config *rest.Config expectedErr error testVM *vmopv1alpha1.VirtualMachine }{ { name: "NewZone: when everything is ok", - testEnv: &envtest.Environment{}, + config: &rest.Config{}, testVM: createTestVMWithZone(string(vmName), testClusterNameSpace), expectedErr: nil, }, @@ -37,15 +37,10 @@ func TestNewZones(t *testing.T) { for _, testCase := range testCases { t.Run(testCase.name, func(t *testing.T) { - cfg, err := testCase.testEnv.Start() - assert.NoError(t, err) //initVMopClient(testCase.testVM) - _, err = NewZones(testClusterNameSpace, cfg) + _, err := NewZones(testClusterNameSpace, testCase.config) assert.NoError(t, err) assert.Equal(t, testCase.expectedErr, err) - - err = testCase.testEnv.Stop() - assert.NoError(t, err) }) } } @@ -53,7 +48,6 @@ func TestNewZones(t *testing.T) { func TestZonesByProviderID(t *testing.T) { testCases := []struct { name string - testEnv *envtest.Environment expectedResult string expectedErr error testVM *vmopv1alpha1.VirtualMachine @@ -94,7 +88,6 @@ func TestZonesByProviderID(t *testing.T) { func TestZonesByNodeName(t *testing.T) { testCases := []struct { name string - testEnv *envtest.Environment expectedResult string expectedErr error testVM *vmopv1alpha1.VirtualMachine diff --git a/pkg/util/fake_vm_client_wrapper.go b/pkg/util/fake_vm_client_wrapper.go deleted file mode 100644 index 9140994b2..000000000 --- a/pkg/util/fake_vm_client_wrapper.go +++ /dev/null @@ -1,97 +0,0 @@ -/* -Copyright 2021 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package util - -import ( - "context" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/discovery" - - vmopv1alpha1 "github.com/vmware-tanzu/vm-operator-api/api/v1alpha1" - vmopclient "k8s.io/cloud-provider-vsphere/pkg/cloudprovider/vsphereparavirtual/vmop/clientset/versioned" - fake "k8s.io/cloud-provider-vsphere/pkg/cloudprovider/vsphereparavirtual/vmop/clientset/versioned/fake" - vmoperatorv1alpha1 "k8s.io/cloud-provider-vsphere/pkg/cloudprovider/vsphereparavirtual/vmop/clientset/versioned/typed/vmop/v1alpha1" -) - -// FakeClientWrapper allows functions to be replaced for fault injection -type FakeVMClientWrapper struct { - fakeClient vmopclient.Interface - // Set these functions if you want to override the default fakeClient behavior - GetFunc func(ctx context.Context, namespace, name string, opts metav1.GetOptions) (result *vmopv1alpha1.VirtualMachine, err error) - ListFunc func(ctx context.Context, namespace string, opts metav1.ListOptions) (result *vmopv1alpha1.VirtualMachineList, err error) - CreateFunc func(ctx context.Context, vm *vmopv1alpha1.VirtualMachine, opts metav1.CreateOptions) (result *vmopv1alpha1.VirtualMachine, err error) - UpdateFunc func(ctx context.Context, vm *vmopv1alpha1.VirtualMachine, opts metav1.UpdateOptions) (result *vmopv1alpha1.VirtualMachine, err error) - DeleteFunc func(ctx context.Context, namespace, name string, opts metav1.DeleteOptions) error -} - -// NewFakeVMClientWrapper creates a FakeClientWrapper -func NewFakeVMClientWrapper(fakeClient *fake.Clientset) *FakeVMClientWrapper { - fcw := FakeVMClientWrapper{} - fcw.fakeClient = fakeClient - return &fcw -} - -// Get retrieves an obj for the given object key from the Kubernetes Cluster. -func (w *FakeVMClientWrapper) Get(ctx context.Context, namespace, name string, opts metav1.GetOptions) (result *vmopv1alpha1.VirtualMachine, err error) { - if w.GetFunc != nil { - return w.GetFunc(ctx, namespace, name, opts) - } - return w.fakeClient.VmoperatorV1alpha1().VirtualMachines(namespace).Get(ctx, name, opts) -} - -// List retrieves list of objects for a given namespace and list options. -func (w *FakeVMClientWrapper) List(ctx context.Context, namespace string, opts metav1.ListOptions) (result *vmopv1alpha1.VirtualMachineList, err error) { - if w.ListFunc != nil { - return w.ListFunc(ctx, namespace, opts) - } - return w.fakeClient.VmoperatorV1alpha1().VirtualMachines(namespace).List(ctx, opts) -} - -// Create saves the object obj in the Kubernetes cluster. -func (w *FakeVMClientWrapper) Create(ctx context.Context, vm *vmopv1alpha1.VirtualMachine, opts metav1.CreateOptions) (result *vmopv1alpha1.VirtualMachine, err error) { - if w.CreateFunc != nil { - return w.CreateFunc(ctx, vm, opts) - } - return w.fakeClient.VmoperatorV1alpha1().VirtualMachines(vm.Namespace).Create(ctx, vm, opts) -} - -// Update updates the given obj in the Kubernetes cluster. -func (w *FakeVMClientWrapper) Update(ctx context.Context, vm *vmopv1alpha1.VirtualMachine, opts metav1.UpdateOptions) (result *vmopv1alpha1.VirtualMachine, err error) { - if w.UpdateFunc != nil { - return w.UpdateFunc(ctx, vm, opts) - } - return w.fakeClient.VmoperatorV1alpha1().VirtualMachines(vm.Namespace).Update(ctx, vm, opts) -} - -// Delete deletes the given obj from Kubernetes cluster. -func (w *FakeVMClientWrapper) Delete(ctx context.Context, namespace, name string, opts metav1.DeleteOptions) error { - if w.DeleteFunc != nil { - return w.DeleteFunc(ctx, namespace, name, opts) - } - return w.fakeClient.VmoperatorV1alpha1().VirtualMachines(namespace).Delete(ctx, name, opts) -} - -// Discovery retrieves the DiscoveryClient -func (w *FakeVMClientWrapper) Discovery() discovery.DiscoveryInterface { - return w.fakeClient.Discovery() -} - -// VmoperatorV1alpha1 retrieves the VmoperatorV1alpha1Client -func (w *FakeVMClientWrapper) VmoperatorV1alpha1() vmoperatorv1alpha1.VmoperatorV1alpha1Interface { - return w.fakeClient.VmoperatorV1alpha1() -} diff --git a/pkg/util/fake_vm_service_client_wrapper.go b/pkg/util/fake_vm_service_client_wrapper.go deleted file mode 100644 index f505904dd..000000000 --- a/pkg/util/fake_vm_service_client_wrapper.go +++ /dev/null @@ -1,97 +0,0 @@ -/* -Copyright 2021 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package util - -import ( - "context" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/discovery" - - vmopv1alpha1 "github.com/vmware-tanzu/vm-operator-api/api/v1alpha1" - vmopclient "k8s.io/cloud-provider-vsphere/pkg/cloudprovider/vsphereparavirtual/vmop/clientset/versioned" - fake "k8s.io/cloud-provider-vsphere/pkg/cloudprovider/vsphereparavirtual/vmop/clientset/versioned/fake" - vmoperatorv1alpha1 "k8s.io/cloud-provider-vsphere/pkg/cloudprovider/vsphereparavirtual/vmop/clientset/versioned/typed/vmop/v1alpha1" -) - -// FakeVMServiceClientWrapper allows functions to be replaced for fault injection -type FakeVMServiceClientWrapper struct { - fakeClient vmopclient.Interface - // Set these functions if you want to override the default fakeClient behavior - GetFunc func(ctx context.Context, namespace, name string, opts metav1.GetOptions) (result *vmopv1alpha1.VirtualMachineService, err error) - ListFunc func(ctx context.Context, namespace string, opts metav1.ListOptions) (result *vmopv1alpha1.VirtualMachineServiceList, err error) - CreateFunc func(ctx context.Context, vm *vmopv1alpha1.VirtualMachineService, opts metav1.CreateOptions) (result *vmopv1alpha1.VirtualMachineService, err error) - UpdateFunc func(ctx context.Context, vm *vmopv1alpha1.VirtualMachineService, opts metav1.UpdateOptions) (result *vmopv1alpha1.VirtualMachineService, err error) - DeleteFunc func(ctx context.Context, namespace, name string, opts metav1.DeleteOptions) error -} - -// NewFakeVMClientWrapper creates a FakeClientWrapper -func NewFakeVMServiceClientWrapper(fakeClient *fake.Clientset) *FakeVMServiceClientWrapper { - fcw := FakeVMServiceClientWrapper{} - fcw.fakeClient = fakeClient - return &fcw -} - -// Get retrieves an obj for the given object key from the Kubernetes Cluster. -func (w *FakeVMServiceClientWrapper) Get(ctx context.Context, namespace, name string, opts metav1.GetOptions) (result *vmopv1alpha1.VirtualMachineService, err error) { - if w.GetFunc != nil { - return w.GetFunc(ctx, namespace, name, opts) - } - return w.fakeClient.VmoperatorV1alpha1().VirtualMachineServices(namespace).Get(ctx, name, opts) -} - -// List retrieves list of objects for a given namespace and list options. -func (w *FakeVMServiceClientWrapper) List(ctx context.Context, namespace string, opts metav1.ListOptions) (result *vmopv1alpha1.VirtualMachineServiceList, err error) { - if w.ListFunc != nil { - return w.ListFunc(ctx, namespace, opts) - } - return w.fakeClient.VmoperatorV1alpha1().VirtualMachineServices(namespace).List(ctx, opts) -} - -// Create saves the object obj in the Kubernetes cluster. -func (w *FakeVMServiceClientWrapper) Create(ctx context.Context, vmservice *vmopv1alpha1.VirtualMachineService, opts metav1.CreateOptions) (result *vmopv1alpha1.VirtualMachineService, err error) { - if w.CreateFunc != nil { - return w.CreateFunc(ctx, vmservice, opts) - } - return w.fakeClient.VmoperatorV1alpha1().VirtualMachineServices(vmservice.Namespace).Create(ctx, vmservice, opts) -} - -// Update updates the given obj in the Kubernetes cluster. -func (w *FakeVMServiceClientWrapper) Update(ctx context.Context, vmservice *vmopv1alpha1.VirtualMachineService, opts metav1.UpdateOptions) (result *vmopv1alpha1.VirtualMachineService, err error) { - if w.UpdateFunc != nil { - return w.UpdateFunc(ctx, vmservice, opts) - } - return w.fakeClient.VmoperatorV1alpha1().VirtualMachineServices(vmservice.Namespace).Update(ctx, vmservice, opts) -} - -// Delete deletes the given obj from Kubernetes cluster. -func (w *FakeVMServiceClientWrapper) Delete(ctx context.Context, namespace, name string, opts metav1.DeleteOptions) error { - if w.DeleteFunc != nil { - return w.DeleteFunc(ctx, namespace, name, opts) - } - return w.fakeClient.VmoperatorV1alpha1().VirtualMachineServices(namespace).Delete(ctx, name, opts) -} - -// Discovery retrieves the DiscoveryClient -func (w *FakeVMServiceClientWrapper) Discovery() discovery.DiscoveryInterface { - return w.fakeClient.Discovery() -} - -// VmoperatorV1alpha1 retrieves the VmoperatorV1alpha1Client -func (w *FakeVMServiceClientWrapper) VmoperatorV1alpha1() vmoperatorv1alpha1.VmoperatorV1alpha1Interface { - return w.fakeClient.VmoperatorV1alpha1() -}