From fab947f91d6b7c39ceaf001e0c594e1e85d00dcf Mon Sep 17 00:00:00 2001 From: fossedihelm Date: Mon, 18 Mar 2024 09:29:28 +0100 Subject: [PATCH 1/8] feat: use common params for vmim.Get vmim.Get method does not allow to pass the context and uses the pointer to GetOptions. In order to align the custom method signature with the generated one switch using the GetOptions instead of the pointer one and introduce the context. This effort, once all the common methods' signatures are aligned with the generated ones, will converge in the deletion of the custom methods' implementations, embedding the generated interface. Signed-off-by: fossedihelm --- .../kubecli/generated_mock_kubevirt.go | 8 ++++---- .../kubevirt.io/client-go/kubecli/kubevirt.go | 2 +- .../client-go/kubecli/migration.go | 8 ++------ .../client-go/kubecli/migration_test.go | 5 +++-- tests/dryrun_test.go | 10 +++++----- tests/framework/matcher/getter.go | 2 +- tests/libmigration/migration.go | 10 +++++----- tests/libwait/wait.go | 2 +- tests/migration/eviction_strategy.go | 2 +- tests/migration/migration.go | 20 +++++++++---------- tests/vm_test.go | 2 +- 11 files changed, 34 insertions(+), 37 deletions(-) diff --git a/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go b/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go index 49041835c749..e439fb4be945 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go +++ b/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go @@ -1844,15 +1844,15 @@ func (_m *MockVirtualMachineInstanceMigrationInterface) EXPECT() *_MockVirtualMa return _m.recorder } -func (_m *MockVirtualMachineInstanceMigrationInterface) Get(name string, options *v12.GetOptions) (*v120.VirtualMachineInstanceMigration, error) { - ret := _m.ctrl.Call(_m, "Get", name, options) +func (_m *MockVirtualMachineInstanceMigrationInterface) Get(ctx context.Context, name string, opts v12.GetOptions) (*v120.VirtualMachineInstanceMigration, error) { + ret := _m.ctrl.Call(_m, "Get", ctx, name, opts) ret0, _ := ret[0].(*v120.VirtualMachineInstanceMigration) ret1, _ := ret[1].(error) return ret0, ret1 } -func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Get(arg0, arg1 interface{}) *gomock.Call { - return _mr.mock.ctrl.RecordCall(_mr.mock, "Get", arg0, arg1) +func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Get(arg0, arg1, arg2 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCall(_mr.mock, "Get", arg0, arg1, arg2) } func (_m *MockVirtualMachineInstanceMigrationInterface) List(opts *v12.ListOptions) (*v120.VirtualMachineInstanceMigrationList, error) { diff --git a/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go b/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go index 6d6395ba466a..364be6a5919f 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go +++ b/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go @@ -309,7 +309,7 @@ type VirtualMachineInterface interface { } type VirtualMachineInstanceMigrationInterface interface { - Get(name string, options *metav1.GetOptions) (*v1.VirtualMachineInstanceMigration, error) + Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.VirtualMachineInstanceMigration, error) List(opts *metav1.ListOptions) (*v1.VirtualMachineInstanceMigrationList, error) Create(migration *v1.VirtualMachineInstanceMigration, options *metav1.CreateOptions) (*v1.VirtualMachineInstanceMigration, error) Update(*v1.VirtualMachineInstanceMigration) (*v1.VirtualMachineInstanceMigration, error) diff --git a/staging/src/kubevirt.io/client-go/kubecli/migration.go b/staging/src/kubevirt.io/client-go/kubecli/migration.go index 04676ba7e530..3a75a09d638a 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/migration.go +++ b/staging/src/kubevirt.io/client-go/kubecli/migration.go @@ -59,12 +59,8 @@ func (o *migration) Create(newMigration *v1.VirtualMachineInstanceMigration, opt } // Get the VirtualMachineInstanceMigration from the cluster by its name and namespace -func (o *migration) Get(name string, options *k8smetav1.GetOptions) (*v1.VirtualMachineInstanceMigration, error) { - opts := k8smetav1.GetOptions{} - if options != nil { - opts = *options - } - newVm, err := o.VirtualMachineInstanceMigrationInterface.Get(context.Background(), name, opts) +func (o *migration) Get(ctx context.Context, name string, options k8smetav1.GetOptions) (*v1.VirtualMachineInstanceMigration, error) { + newVm, err := o.VirtualMachineInstanceMigrationInterface.Get(ctx, name, options) newVm.SetGroupVersionKind(v1.VirtualMachineInstanceMigrationGroupVersionKind) return newVm, err diff --git a/staging/src/kubevirt.io/client-go/kubecli/migration_test.go b/staging/src/kubevirt.io/client-go/kubecli/migration_test.go index 5097d8337136..beb644920c2e 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/migration_test.go +++ b/staging/src/kubevirt.io/client-go/kubecli/migration_test.go @@ -20,6 +20,7 @@ package kubecli import ( + "context" "net/http" "path" @@ -53,7 +54,7 @@ var _ = Describe("Kubevirt Migration Client", func() { ghttp.VerifyRequest("GET", path.Join(proxyPath, migrationPath)), ghttp.RespondWithJSONEncoded(http.StatusOK, migration), )) - fetchedMigration, err := client.VirtualMachineInstanceMigration(k8sv1.NamespaceDefault).Get("testmigration", &k8smetav1.GetOptions{}) + fetchedMigration, err := client.VirtualMachineInstanceMigration(k8sv1.NamespaceDefault).Get(context.Background(), "testmigration", k8smetav1.GetOptions{}) Expect(server.ReceivedRequests()).To(HaveLen(1)) Expect(err).ToNot(HaveOccurred()) @@ -71,7 +72,7 @@ var _ = Describe("Kubevirt Migration Client", func() { ghttp.VerifyRequest("GET", path.Join(proxyPath, migrationPath)), ghttp.RespondWithJSONEncoded(http.StatusNotFound, errors.NewNotFound(schema.GroupResource{}, "testmigration")), )) - _, err = client.VirtualMachineInstanceMigration(k8sv1.NamespaceDefault).Get("testmigration", &k8smetav1.GetOptions{}) + _, err = client.VirtualMachineInstanceMigration(k8sv1.NamespaceDefault).Get(context.Background(), "testmigration", k8smetav1.GetOptions{}) Expect(server.ReceivedRequests()).To(HaveLen(1)) Expect(err).To(HaveOccurred()) diff --git a/tests/dryrun_test.go b/tests/dryrun_test.go index 36d2ad5ae0f9..966e58996bf4 100644 --- a/tests/dryrun_test.go +++ b/tests/dryrun_test.go @@ -254,7 +254,7 @@ var _ = Describe("[sig-compute]Dry-Run requests", decorators.SigCompute, func() Expect(err).ToNot(HaveOccurred()) By("Check that no migration was actually created") - _, err = virtClient.VirtualMachineInstanceMigration(vmim.Namespace).Get(vmim.Name, &metav1.GetOptions{}) + _, err = virtClient.VirtualMachineInstanceMigration(vmim.Namespace).Get(context.Background(), vmim.Name, metav1.GetOptions{}) Expect(err).To(MatchError(errors.IsNotFound, "k8serrors.IsNotFound")) }) @@ -273,7 +273,7 @@ var _ = Describe("[sig-compute]Dry-Run requests", decorators.SigCompute, func() Expect(err).ToNot(HaveOccurred()) By("Check that no migration was actually deleted") - _, err = virtClient.VirtualMachineInstanceMigration(vmim.Namespace).Get(vmim.Name, &metav1.GetOptions{}) + _, err = virtClient.VirtualMachineInstanceMigration(vmim.Namespace).Get(context.Background(), vmim.Name, metav1.GetOptions{}) Expect(err).ToNot(HaveOccurred()) }) @@ -284,7 +284,7 @@ var _ = Describe("[sig-compute]Dry-Run requests", decorators.SigCompute, func() By("Make a Dry-Run request to update the migration") err = retry.RetryOnConflict(retry.DefaultRetry, func() error { - vmim, err = virtClient.VirtualMachineInstanceMigration(vmim.Namespace).Get(vmim.Name, &metav1.GetOptions{}) + vmim, err = virtClient.VirtualMachineInstanceMigration(vmim.Namespace).Get(context.Background(), vmim.Name, metav1.GetOptions{}) if err != nil { return err } @@ -298,7 +298,7 @@ var _ = Describe("[sig-compute]Dry-Run requests", decorators.SigCompute, func() Expect(err).ToNot(HaveOccurred()) By("Check that no update actually took place") - vmim, err = virtClient.VirtualMachineInstanceMigration(vmim.Namespace).Get(vmim.Name, &metav1.GetOptions{}) + vmim, err = virtClient.VirtualMachineInstanceMigration(vmim.Namespace).Get(context.Background(), vmim.Name, metav1.GetOptions{}) Expect(err).ToNot(HaveOccurred()) Expect(vmim.Annotations["key"]).ToNot(Equal("42")) }) @@ -314,7 +314,7 @@ var _ = Describe("[sig-compute]Dry-Run requests", decorators.SigCompute, func() Expect(err).ToNot(HaveOccurred()) By("Check that no update actually took place") - vmim, err = virtClient.VirtualMachineInstanceMigration(vmim.Namespace).Get(vmim.Name, &metav1.GetOptions{}) + vmim, err = virtClient.VirtualMachineInstanceMigration(vmim.Namespace).Get(context.Background(), vmim.Name, metav1.GetOptions{}) Expect(err).ToNot(HaveOccurred()) Expect(vmim.Labels["key"]).ToNot(Equal("42")) }) diff --git a/tests/framework/matcher/getter.go b/tests/framework/matcher/getter.go index 0259d810d417..5b19a30a27c8 100644 --- a/tests/framework/matcher/getter.go +++ b/tests/framework/matcher/getter.go @@ -133,7 +133,7 @@ func ThisMigration(migration *virtv1.VirtualMachineInstanceMigration) func() (*v func ThisMigrationWith(namespace string, name string) func() (*virtv1.VirtualMachineInstanceMigration, error) { return func() (p *virtv1.VirtualMachineInstanceMigration, err error) { virtClient := kubevirt.Client() - p, err = virtClient.VirtualMachineInstanceMigration(namespace).Get(name, &k8smetav1.GetOptions{}) + p, err = virtClient.VirtualMachineInstanceMigration(namespace).Get(context.Background(), name, k8smetav1.GetOptions{}) if errors.IsNotFound(err) { return nil, nil } diff --git a/tests/libmigration/migration.go b/tests/libmigration/migration.go index f92a2911a300..51525cce79b4 100644 --- a/tests/libmigration/migration.go +++ b/tests/libmigration/migration.go @@ -66,7 +66,7 @@ func ExpectMigrationToSucceedWithDefaultTimeout(virtClient kubecli.KubevirtClien func ExpectMigrationToSucceedWithOffset(offset int, virtClient kubecli.KubevirtClient, migration *v1.VirtualMachineInstanceMigration, timeout int) *v1.VirtualMachineInstanceMigration { By("Waiting until the Migration Completes") EventuallyWithOffset(offset, func() error { - migration, err := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(migration.Name, &metav1.GetOptions{}) + migration, err := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(context.Background(), migration.Name, metav1.GetOptions{}) if err != nil { return err } @@ -105,7 +105,7 @@ func ConfirmMigrationDataIsStored(virtClient kubecli.KubevirtClient, migration * By("Retrieving the VMI and the migration object") vmi, err := virtClient.VirtualMachineInstance(vmi.Namespace).Get(context.Background(), vmi.Name, metav1.GetOptions{}) Expect(err).ToNot(HaveOccurred(), "should have been able to retrive the VMI instance") - migration, migerr := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(migration.Name, &metav1.GetOptions{}) + migration, migerr := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(context.Background(), migration.Name, metav1.GetOptions{}) Expect(migerr).ToNot(HaveOccurred(), "should have been able to retrive the migration") By("Verifying the stored migration state") @@ -443,7 +443,7 @@ func RunAndCancelMigration(migration *v1.VirtualMachineInstanceMigration, vmi *v By("Waiting until the Migration is Running") Eventually(func() bool { - migration, err := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(migration.Name, &metav1.GetOptions{}) + migration, err := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(context.Background(), migration.Name, metav1.GetOptions{}) Expect(err).ToNot(HaveOccurred()) Expect(migration.Status.Phase).ToNot(Equal(v1.MigrationFailed)) @@ -474,7 +474,7 @@ func RunAndImmediatelyCancelMigration(migration *v1.VirtualMachineInstanceMigrat By("Waiting until the Migration is Running") Eventually(func() bool { - migration, err := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(migration.Name, &metav1.GetOptions{}) + migration, err := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(context.Background(), migration.Name, metav1.GetOptions{}) Expect(err).ToNot(HaveOccurred()) return migration.Status.Phase == v1.MigrationRunning }, timeout, 1*time.Second).Should(BeTrue()) @@ -496,7 +496,7 @@ func RunMigrationAndExpectFailure(migration *v1.VirtualMachineInstanceMigration, uid := "" Eventually(func() v1.VirtualMachineInstanceMigrationPhase { - migration, err := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(migration.Name, &metav1.GetOptions{}) + migration, err := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(context.Background(), migration.Name, metav1.GetOptions{}) Expect(err).ToNot(HaveOccurred()) phase := migration.Status.Phase diff --git a/tests/libwait/wait.go b/tests/libwait/wait.go index 85f4f3a49dd8..fec04383221e 100644 --- a/tests/libwait/wait.go +++ b/tests/libwait/wait.go @@ -212,7 +212,7 @@ func WaitForMigrationToDisappearWithTimeout(migration *v1.VirtualMachineInstance virtClient, err := kubecli.GetKubevirtClient() gomega.ExpectWithOffset(1, err).ToNot(gomega.HaveOccurred()) gomega.EventuallyWithOffset(1, func() error { - _, err := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(migration.Name, &metav1.GetOptions{}) + _, err := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(context.Background(), migration.Name, metav1.GetOptions{}) return err }, seconds, 1*time.Second).Should(gomega.MatchError(errors.IsNotFound, "k8serrors.IsNotFound"), fmt.Sprintf("migration %s was expected to disappear after %d seconds, but it did not", migration.Name, seconds)) } diff --git a/tests/migration/eviction_strategy.go b/tests/migration/eviction_strategy.go index 3b21283e2acf..6e50c4117ea4 100644 --- a/tests/migration/eviction_strategy.go +++ b/tests/migration/eviction_strategy.go @@ -226,7 +226,7 @@ var _ = SIGMigrationDescribe("Live Migration", func() { By("Verifying that both pods are protected by the PodDisruptionBudget for the whole migration") getOptions := metav1.GetOptions{} Eventually(func() v1.VirtualMachineInstanceMigrationPhase { - currentMigration, err := virtClient.VirtualMachineInstanceMigration(vmi.Namespace).Get(migration.Name, &getOptions) + currentMigration, err := virtClient.VirtualMachineInstanceMigration(vmi.Namespace).Get(context.Background(), migration.Name, getOptions) Expect(err).ToNot(HaveOccurred()) Expect(currentMigration.Status.Phase).NotTo(Equal(v1.MigrationFailed)) for _, p := range pods.Items { diff --git a/tests/migration/migration.go b/tests/migration/migration.go index 30136207e985..5921b09a62f4 100644 --- a/tests/migration/migration.go +++ b/tests/migration/migration.go @@ -804,7 +804,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { By("Migration should observe a timeout period before canceling unschedulable target pod") Consistently(func() error { - migration, err := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(migration.Name, &metav1.GetOptions{}) + migration, err := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(context.Background(), migration.Name, metav1.GetOptions{}) if err != nil { return err } @@ -818,7 +818,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { By("Migration should fail eventually due to pending target pod timeout") Eventually(func() error { - migration, err := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(migration.Name, &metav1.GetOptions{}) + migration, err := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(context.Background(), migration.Name, metav1.GetOptions{}) if err != nil { return err } @@ -858,7 +858,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { By("Migration should observe a timeout period before canceling pending target pod") Consistently(func() error { - migration, err := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(migration.Name, &metav1.GetOptions{}) + migration, err := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(context.Background(), migration.Name, metav1.GetOptions{}) if err != nil { return err } @@ -872,7 +872,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { By("Migration should fail eventually due to pending target pod timeout") Eventually(func() error { - migration, err := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(migration.Name, &metav1.GetOptions{}) + migration, err := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(context.Background(), migration.Name, metav1.GetOptions{}) if err != nil { return err } @@ -1833,7 +1833,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { By("Waiting for Migration to reach Preparing Target Phase") Eventually(func() v1.VirtualMachineInstanceMigrationPhase { - migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(migration.Name, &metav1.GetOptions{}) + migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(context.Background(), migration.Name, metav1.GetOptions{}) Expect(err).ToNot(HaveOccurred()) phase := migration.Status.Phase @@ -1913,7 +1913,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { By("Waiting for Migration to reach Preparing Target Phase") Eventually(func() v1.VirtualMachineInstanceMigrationPhase { - migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(migration.Name, &metav1.GetOptions{}) + migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(context.Background(), migration.Name, metav1.GetOptions{}) Expect(err).ToNot(HaveOccurred()) phase := migration.Status.Phase @@ -2134,7 +2134,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { By("Waiting until the Migration has UID") Eventually(func() bool { - migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(migration.Name, &metav1.GetOptions{}) + migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(context.Background(), migration.Name, metav1.GetOptions{}) Expect(err).ToNot(HaveOccurred()) return migration.UID != "" }, timeout, 1*time.Second).Should(BeTrue()) @@ -2195,7 +2195,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { migration := libmigration.New(vmi.Name, vmi.Namespace) migration = libmigration.RunMigration(virtClient, migration) expectMigrationSchedulingPhase := func() v1.VirtualMachineInstanceMigrationPhase { - migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(migration.Name, &metav1.GetOptions{}) + migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(context.Background(), migration.Name, metav1.GetOptions{}) Expect(err).ShouldNot(HaveOccurred()) return migration.Status.Phase @@ -2228,7 +2228,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { By("Expecting migration to be deleted") Eventually(func() error { - _, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(migration.Name, &metav1.GetOptions{}) + _, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(context.Background(), migration.Name, metav1.GetOptions{}) return err }, 60*time.Second, 5*time.Second).Should(MatchError(errors.IsNotFound, "k8serrors.IsNotFound")) @@ -3301,7 +3301,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { migration := libmigration.New(vmi.Name, testsuite.GetTestNamespace(vmi)) migration = libmigration.RunMigration(virtClient, migration) Eventually(func() *v1.VirtualMachineInstanceMigration { - migration, err := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(migration.Name, &metav1.GetOptions{}) + migration, err := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Get(context.Background(), migration.Name, metav1.GetOptions{}) if err != nil { return nil } diff --git a/tests/vm_test.go b/tests/vm_test.go index 72952085fc68..eff750889372 100644 --- a/tests/vm_test.go +++ b/tests/vm_test.go @@ -927,7 +927,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com By("Check that no migration was actually created") Consistently(func() error { - _, err = virtClient.VirtualMachineInstanceMigration(vm.Namespace).Get(vm.Name, &metav1.GetOptions{}) + _, err = virtClient.VirtualMachineInstanceMigration(vm.Namespace).Get(context.Background(), vm.Name, metav1.GetOptions{}) return err }, 60*time.Second, 5*time.Second).Should(MatchError(errors.IsNotFound, "k8serrors.IsNotFound"), "migration should not be created in a dry run mode") }) From 25b553c23e8f40af970a7936461467d0f7e5e4a2 Mon Sep 17 00:00:00 2001 From: fossedihelm Date: Mon, 18 Mar 2024 10:10:42 +0100 Subject: [PATCH 2/8] feat: use common params for vmim.List vmim.List method does not allow to pass the context and uses the pointer to ListOptions. In order to align the custom method signature with the generated one switch using the ListOptions instead of the pointer one and introduce the context. This effort, once all the common methods' signatures are aligned with the generated ones, will converge in the deletion of the custom methods' implementations, embedding the generated interface. Signed-off-by: fossedihelm --- .../admitters/migration-create-admitter.go | 2 +- .../admitters/migration-create-admitter_test.go | 4 ++-- pkg/virtctl/vm/migrate_cancel.go | 3 ++- pkg/virtctl/vm/migrate_cancel_test.go | 5 +++-- .../client-go/kubecli/generated_mock_kubevirt.go | 8 ++++---- staging/src/kubevirt.io/client-go/kubecli/kubevirt.go | 2 +- staging/src/kubevirt.io/client-go/kubecli/migration.go | 8 ++------ .../src/kubevirt.io/client-go/kubecli/migration_test.go | 2 +- tests/hotplug/cpu.go | 2 +- tests/hotplug/memory.go | 2 +- tests/migration/eviction_strategy.go | 6 +++--- tests/migration/migration.go | 6 +++--- tests/operator/operator.go | 2 +- tests/reporter/kubernetes.go | 2 +- tests/testsuite/namespace.go | 2 +- 15 files changed, 27 insertions(+), 29 deletions(-) diff --git a/pkg/virt-api/webhooks/validating-webhook/admitters/migration-create-admitter.go b/pkg/virt-api/webhooks/validating-webhook/admitters/migration-create-admitter.go index eef899209acf..2d76d4c96524 100644 --- a/pkg/virt-api/webhooks/validating-webhook/admitters/migration-create-admitter.go +++ b/pkg/virt-api/webhooks/validating-webhook/admitters/migration-create-admitter.go @@ -59,7 +59,7 @@ func EnsureNoMigrationConflict(virtClient kubecli.KubevirtClient, vmiName string if err != nil { return err } - list, err := virtClient.VirtualMachineInstanceMigration(namespace).List(&metav1.ListOptions{ + list, err := virtClient.VirtualMachineInstanceMigration(namespace).List(context.Background(), metav1.ListOptions{ LabelSelector: labelSelector.String(), }) if err != nil { diff --git a/pkg/virt-api/webhooks/validating-webhook/admitters/migration-create-admitter_test.go b/pkg/virt-api/webhooks/validating-webhook/admitters/migration-create-admitter_test.go index 8af7375b3c2c..30f95306432a 100644 --- a/pkg/virt-api/webhooks/validating-webhook/admitters/migration-create-admitter_test.go +++ b/pkg/virt-api/webhooks/validating-webhook/admitters/migration-create-admitter_test.go @@ -95,7 +95,7 @@ var _ = Describe("Validating MigrationCreate Admitter", func() { }, } mockVMIClient.EXPECT().Get(context.Background(), inFlightMigration.Spec.VMIName, gomock.Any()).Return(vmi, nil) - migrationInterface.EXPECT().List(gomock.Any()).Return(kubecli.NewMigrationList(inFlightMigration), nil).AnyTimes() + migrationInterface.EXPECT().List(context.Background(), gomock.Any()).Return(kubecli.NewMigrationList(inFlightMigration), nil).AnyTimes() migration := v1.VirtualMachineInstanceMigration{ ObjectMeta: metav1.ObjectMeta{ @@ -125,7 +125,7 @@ var _ = Describe("Validating MigrationCreate Admitter", func() { Context("with no conflicting migration", func() { BeforeEach(func() { - migrationInterface.EXPECT().List(gomock.Any()).Return(&v1.VirtualMachineInstanceMigrationList{}, nil).MaxTimes(1) + migrationInterface.EXPECT().List(context.Background(), gomock.Any()).Return(&v1.VirtualMachineInstanceMigrationList{}, nil).MaxTimes(1) }) diff --git a/pkg/virtctl/vm/migrate_cancel.go b/pkg/virtctl/vm/migrate_cancel.go index 842f74a1b6d7..5a50bc923332 100644 --- a/pkg/virtctl/vm/migrate_cancel.go +++ b/pkg/virtctl/vm/migrate_cancel.go @@ -20,6 +20,7 @@ package vm import ( + "context" "fmt" "github.com/spf13/cobra" @@ -57,7 +58,7 @@ func (o *Command) migrateCancelRun(args []string) error { // get a list of migrations for vmiName (use LabelSelector filter) labelselector := fmt.Sprintf("%s==%s", v1.MigrationSelectorLabel, vmiName) - migrations, err := virtClient.VirtualMachineInstanceMigration(namespace).List(&metav1.ListOptions{ + migrations, err := virtClient.VirtualMachineInstanceMigration(namespace).List(context.Background(), metav1.ListOptions{ LabelSelector: labelselector}) if err != nil { return fmt.Errorf("Error fetching virtual machine instance migration list %v", err) diff --git a/pkg/virtctl/vm/migrate_cancel_test.go b/pkg/virtctl/vm/migrate_cancel_test.go index 0131bbd988d1..49e4fa236364 100644 --- a/pkg/virtctl/vm/migrate_cancel_test.go +++ b/pkg/virtctl/vm/migrate_cancel_test.go @@ -20,6 +20,7 @@ package vm_test import ( + "context" "fmt" "github.com/golang/mock/gomock" @@ -74,7 +75,7 @@ var _ = Describe("Migrate cancel command", func() { VirtualMachineInstanceMigration(k8smetav1.NamespaceDefault). Return(migrationInterface).Times(2) - migrationInterface.EXPECT().List(&listoptions).Return(&migList, nil).Times(1) + migrationInterface.EXPECT().List(context.Background(), listoptions).Return(&migList, nil).Times(1) migrationInterface.EXPECT().Delete(vmiMigration.Name, &k8smetav1.DeleteOptions{}).Return(nil).Times(1) Expect(cmd()).To(Succeed()) @@ -94,7 +95,7 @@ var _ = Describe("Migrate cancel command", func() { VirtualMachineInstanceMigration(k8smetav1.NamespaceDefault). Return(migrationInterface).Times(1) - migrationInterface.EXPECT().List(&listoptions).Return(&migList, nil).Times(1) + migrationInterface.EXPECT().List(context.Background(), listoptions).Return(&migList, nil).Times(1) err := cmd() Expect(err).To(HaveOccurred()) diff --git a/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go b/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go index e439fb4be945..2743772cc73c 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go +++ b/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go @@ -1855,15 +1855,15 @@ func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Get(arg0, arg1 return _mr.mock.ctrl.RecordCall(_mr.mock, "Get", arg0, arg1, arg2) } -func (_m *MockVirtualMachineInstanceMigrationInterface) List(opts *v12.ListOptions) (*v120.VirtualMachineInstanceMigrationList, error) { - ret := _m.ctrl.Call(_m, "List", opts) +func (_m *MockVirtualMachineInstanceMigrationInterface) List(ctx context.Context, opts v12.ListOptions) (*v120.VirtualMachineInstanceMigrationList, error) { + ret := _m.ctrl.Call(_m, "List", ctx, opts) ret0, _ := ret[0].(*v120.VirtualMachineInstanceMigrationList) ret1, _ := ret[1].(error) return ret0, ret1 } -func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) List(arg0 interface{}) *gomock.Call { - return _mr.mock.ctrl.RecordCall(_mr.mock, "List", arg0) +func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) List(arg0, arg1 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCall(_mr.mock, "List", arg0, arg1) } func (_m *MockVirtualMachineInstanceMigrationInterface) Create(migration *v120.VirtualMachineInstanceMigration, options *v12.CreateOptions) (*v120.VirtualMachineInstanceMigration, error) { diff --git a/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go b/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go index 364be6a5919f..84c06c794c16 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go +++ b/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go @@ -310,7 +310,7 @@ type VirtualMachineInterface interface { type VirtualMachineInstanceMigrationInterface interface { Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.VirtualMachineInstanceMigration, error) - List(opts *metav1.ListOptions) (*v1.VirtualMachineInstanceMigrationList, error) + List(ctx context.Context, opts metav1.ListOptions) (*v1.VirtualMachineInstanceMigrationList, error) Create(migration *v1.VirtualMachineInstanceMigration, options *metav1.CreateOptions) (*v1.VirtualMachineInstanceMigration, error) Update(*v1.VirtualMachineInstanceMigration) (*v1.VirtualMachineInstanceMigration, error) Delete(name string, options *metav1.DeleteOptions) error diff --git a/staging/src/kubevirt.io/client-go/kubecli/migration.go b/staging/src/kubevirt.io/client-go/kubecli/migration.go index 3a75a09d638a..1005c345e55b 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/migration.go +++ b/staging/src/kubevirt.io/client-go/kubecli/migration.go @@ -84,12 +84,8 @@ func (o *migration) Delete(name string, options *k8smetav1.DeleteOptions) error } // List all VirtualMachineInstanceMigrations in given namespace -func (o *migration) List(options *k8smetav1.ListOptions) (*v1.VirtualMachineInstanceMigrationList, error) { - opts := k8smetav1.ListOptions{} - if options != nil { - opts = *options - } - newVmiMigrationList, err := o.VirtualMachineInstanceMigrationInterface.List(context.Background(), opts) +func (o *migration) List(ctx context.Context, options k8smetav1.ListOptions) (*v1.VirtualMachineInstanceMigrationList, error) { + newVmiMigrationList, err := o.VirtualMachineInstanceMigrationInterface.List(ctx, options) for i := range newVmiMigrationList.Items { newVmiMigrationList.Items[i].SetGroupVersionKind(v1.VirtualMachineInstanceMigrationGroupVersionKind) } diff --git a/staging/src/kubevirt.io/client-go/kubecli/migration_test.go b/staging/src/kubevirt.io/client-go/kubecli/migration_test.go index beb644920c2e..4a56e5855868 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/migration_test.go +++ b/staging/src/kubevirt.io/client-go/kubecli/migration_test.go @@ -91,7 +91,7 @@ var _ = Describe("Kubevirt Migration Client", func() { ghttp.VerifyRequest("GET", path.Join(proxyPath, basePath)), ghttp.RespondWithJSONEncoded(http.StatusOK, NewMigrationList(*migration)), )) - fetchedMigrationList, err := client.VirtualMachineInstanceMigration(k8sv1.NamespaceDefault).List(&k8smetav1.ListOptions{}) + fetchedMigrationList, err := client.VirtualMachineInstanceMigration(k8sv1.NamespaceDefault).List(context.Background(), k8smetav1.ListOptions{}) apiVersion, kind := v1.VirtualMachineInstanceMigrationGroupVersionKind.ToAPIVersionAndKind() Expect(server.ReceivedRequests()).To(HaveLen(1)) diff --git a/tests/hotplug/cpu.go b/tests/hotplug/cpu.go index d8f75661b6c4..d0de2af56b3d 100644 --- a/tests/hotplug/cpu.go +++ b/tests/hotplug/cpu.go @@ -132,7 +132,7 @@ var _ = Describe("[sig-compute][Serial]CPU Hotplug", decorators.SigCompute, deco By("Ensuring live-migration started") var migration *v1.VirtualMachineInstanceMigration Eventually(func() bool { - migrations, err := virtClient.VirtualMachineInstanceMigration(vm.Namespace).List(&k8smetav1.ListOptions{}) + migrations, err := virtClient.VirtualMachineInstanceMigration(vm.Namespace).List(context.Background(), k8smetav1.ListOptions{}) Expect(err).ToNot(HaveOccurred()) for _, mig := range migrations.Items { if mig.Spec.VMIName == vmi.Name { diff --git a/tests/hotplug/memory.go b/tests/hotplug/memory.go index 5cd64201d618..a8110234ea55 100644 --- a/tests/hotplug/memory.go +++ b/tests/hotplug/memory.go @@ -125,7 +125,7 @@ var _ = Describe("[sig-compute][Serial]Memory Hotplug", decorators.SigCompute, d By("Ensuring live-migration started") var migration *v1.VirtualMachineInstanceMigration Eventually(func() bool { - migrations, err := virtClient.VirtualMachineInstanceMigration(vm.Namespace).List(&k8smetav1.ListOptions{}) + migrations, err := virtClient.VirtualMachineInstanceMigration(vm.Namespace).List(context.Background(), k8smetav1.ListOptions{}) Expect(err).ToNot(HaveOccurred()) for _, mig := range migrations.Items { if mig.Spec.VMIName == vmi.Name { diff --git a/tests/migration/eviction_strategy.go b/tests/migration/eviction_strategy.go index 6e50c4117ea4..546d51bb26a1 100644 --- a/tests/migration/eviction_strategy.go +++ b/tests/migration/eviction_strategy.go @@ -340,7 +340,7 @@ var _ = SIGMigrationDescribe("Live Migration", func() { expectVMIMigratedToAnotherNode(vmi.Name, node) Consistently(func() error { - migrations, err := virtClient.VirtualMachineInstanceMigration(vmi.Namespace).List(&metav1.ListOptions{}) + migrations, err := virtClient.VirtualMachineInstanceMigration(vmi.Namespace).List(context.Background(), metav1.ListOptions{}) if err != nil { return err } @@ -532,7 +532,7 @@ var _ = SIGMigrationDescribe("Live Migration", func() { By("waiting until migration kicks in") Eventually(func() int { - migrationList, err := virtClient.VirtualMachineInstanceMigration(k8sv1.NamespaceAll).List(&metav1.ListOptions{}) + migrationList, err := virtClient.VirtualMachineInstanceMigration(k8sv1.NamespaceAll).List(context.Background(), metav1.ListOptions{}) Expect(err).ToNot(HaveOccurred()) runningMigrations := filterRunningMigrations(migrationList.Items) @@ -548,7 +548,7 @@ var _ = SIGMigrationDescribe("Live Migration", func() { nodes = append(nodes, vmi.Status.NodeName) } - migrationList, err := virtClient.VirtualMachineInstanceMigration(k8sv1.NamespaceAll).List(&metav1.ListOptions{}) + migrationList, err := virtClient.VirtualMachineInstanceMigration(k8sv1.NamespaceAll).List(context.Background(), metav1.ListOptions{}) Expect(err).ToNot(HaveOccurred()) runningMigrations := filterRunningMigrations(migrationList.Items) diff --git a/tests/migration/migration.go b/tests/migration/migration.go index 5921b09a62f4..1902c0193b1d 100644 --- a/tests/migration/migration.go +++ b/tests/migration/migration.go @@ -1776,7 +1776,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { }, 10*time.Second, time.Second).Should(Succeed(), "Target pod should exit quickly after migration fails.") } - migrations, err := virtClient.VirtualMachineInstanceMigration(vmi.Namespace).List(&metav1.ListOptions{}) + migrations, err := virtClient.VirtualMachineInstanceMigration(vmi.Namespace).List(context.Background(), metav1.ListOptions{}) Expect(err).ToNot(HaveOccurred()) Expect(migrations.Items).To(HaveLen(5)) }) @@ -3145,10 +3145,10 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { labelSelector, err := labels.Parse(fmt.Sprintf("%s in (%s)", v1.MigrationSelectorLabel, vmi.Name)) Expect(err).ToNot(HaveOccurred()) - listOptions := &metav1.ListOptions{ + listOptions := metav1.ListOptions{ LabelSelector: labelSelector.String(), } - migrations, err := virtClient.VirtualMachineInstanceMigration(vmim.Namespace).List(listOptions) + migrations, err := virtClient.VirtualMachineInstanceMigration(vmim.Namespace).List(context.Background(), listOptions) Expect(err).ToNot(HaveOccurred()) activeMigrations := 0 diff --git a/tests/operator/operator.go b/tests/operator/operator.go index 6296b4e2f6c9..57fef26d6478 100644 --- a/tests/operator/operator.go +++ b/tests/operator/operator.go @@ -858,7 +858,7 @@ var _ = Describe("[Serial][sig-operator]Operator", Serial, decorators.SigOperato // the results Eventually(func() error { By("Verifying only a single successful migration took place for each vmi") - migrationList, err := virtClient.VirtualMachineInstanceMigration(testsuite.GetTestNamespace(nil)).List(&metav1.ListOptions{}) + migrationList, err := virtClient.VirtualMachineInstanceMigration(testsuite.GetTestNamespace(nil)).List(context.Background(), metav1.ListOptions{}) Expect(err).ToNot(HaveOccurred(), "retrieving migrations") for _, vmi := range vmis { count := 0 diff --git a/tests/reporter/kubernetes.go b/tests/reporter/kubernetes.go index 575cd182728e..574f3e31c0e9 100644 --- a/tests/reporter/kubernetes.go +++ b/tests/reporter/kubernetes.go @@ -937,7 +937,7 @@ func getVMIList(virtCli kubecli.KubevirtClient) *v12.VirtualMachineInstanceList func getVMIMList(virtCli kubecli.KubevirtClient) *v12.VirtualMachineInstanceMigrationList { - vmims, err := virtCli.VirtualMachineInstanceMigration(v1.NamespaceAll).List(&metav1.ListOptions{}) + vmims, err := virtCli.VirtualMachineInstanceMigration(v1.NamespaceAll).List(context.Background(), metav1.ListOptions{}) if err != nil { fmt.Fprintf(os.Stderr, "failed to fetch vmims: %v\n", err) return nil diff --git a/tests/testsuite/namespace.go b/tests/testsuite/namespace.go index 5081469474c4..22474efe66c3 100644 --- a/tests/testsuite/namespace.go +++ b/tests/testsuite/namespace.go @@ -212,7 +212,7 @@ func CleanNamespaces() { // Remove all Migration Objects util.PanicOnError(virtCli.RestClient().Delete().Namespace(namespace).Resource("virtualmachineinstancemigrations").Do(context.Background()).Error()) - migrations, err := virtCli.VirtualMachineInstanceMigration(namespace).List(&metav1.ListOptions{}) + migrations, err := virtCli.VirtualMachineInstanceMigration(namespace).List(context.Background(), metav1.ListOptions{}) util.PanicOnError(err) for _, migration := range migrations.Items { if controller.HasFinalizer(&migration, v1.VirtualMachineInstanceMigrationFinalizer) { From c6b79cbea4be4a4a31070c85c1294abec5234c75 Mon Sep 17 00:00:00 2001 From: fossedihelm Date: Mon, 18 Mar 2024 10:41:36 +0100 Subject: [PATCH 3/8] feat: use common params for vmim.Create vmim.Create method does not allow to pass the context and uses the pointer to CreateOptions. In order to align the custom method signature with the generated one switch using the CreateOptions instead of the pointer one and introduce the context. This effort, once all the common methods' signatures are aligned with the generated ones, will converge in the deletion of the custom methods' implementations, embedding the generated interface. Signed-off-by: fossedihelm --- pkg/virt-api/rest/subresource.go | 4 +-- pkg/virt-api/rest/subresource_test.go | 6 ++--- .../watch/drain/evacuation/evacuation.go | 3 ++- .../watch/drain/evacuation/evacuation_test.go | 15 ++++++----- .../workload-updater/workload-updater.go | 4 +-- .../workload-updater/workload-updater_test.go | 11 ++++---- .../kubecli/generated_mock_kubevirt.go | 8 +++--- .../kubevirt.io/client-go/kubecli/kubevirt.go | 2 +- .../client-go/kubecli/migration.go | 8 ++---- .../client-go/kubecli/migration_test.go | 2 +- tests/dryrun_test.go | 6 ++--- tests/hotplug/cpu.go | 2 +- tests/kubectl_test.go | 2 +- tests/libmigration/migration.go | 8 +++--- tests/migration/eviction_strategy.go | 2 +- tests/migration/migration.go | 26 +++++++++---------- tests/operator/operator.go | 2 +- 17 files changed, 55 insertions(+), 56 deletions(-) diff --git a/pkg/virt-api/rest/subresource.go b/pkg/virt-api/rest/subresource.go index 2de78da56620..742394cdcd7b 100644 --- a/pkg/virt-api/rest/subresource.go +++ b/pkg/virt-api/rest/subresource.go @@ -328,14 +328,14 @@ func (app *SubresourceAPIApp) MigrateVMRequestHandler(request *restful.Request, } createMigrationJob := func() *errors.StatusError { - _, err := app.virtCli.VirtualMachineInstanceMigration(namespace).Create(&v1.VirtualMachineInstanceMigration{ + _, err := app.virtCli.VirtualMachineInstanceMigration(namespace).Create(context.Background(), &v1.VirtualMachineInstanceMigration{ ObjectMeta: k8smetav1.ObjectMeta{ GenerateName: "kubevirt-migrate-vm-", }, Spec: v1.VirtualMachineInstanceMigrationSpec{ VMIName: name, }, - }, &k8smetav1.CreateOptions{DryRun: bodyStruct.DryRun}) + }, k8smetav1.CreateOptions{DryRun: bodyStruct.DryRun}) if err != nil { return errors.NewInternalError(err) } diff --git a/pkg/virt-api/rest/subresource_test.go b/pkg/virt-api/rest/subresource_test.go index 1330d52e3efa..a7022535798c 100644 --- a/pkg/virt-api/rest/subresource_test.go +++ b/pkg/virt-api/rest/subresource_test.go @@ -1725,7 +1725,7 @@ var _ = Describe("VirtualMachineInstance Subresources", func() { vmClient.EXPECT().Get(context.Background(), testVMName, k8smetav1.GetOptions{}).Return(&vm, nil) vmiClient.EXPECT().Get(context.Background(), testVMName, k8smetav1.GetOptions{}).Return(&vmi, nil) - migrateClient.EXPECT().Create(gomock.Any(), gomock.Any()).Return(nil, errors.NewInternalError(fmt.Errorf("error creating object"))) + migrateClient.EXPECT().Create(context.Background(), gomock.Any(), gomock.Any()).Return(nil, errors.NewInternalError(fmt.Errorf("error creating object"))) app.MigrateVMRequestHandler(request, response) ExpectStatusErrorWithCode(recorder, http.StatusInternalServerError) @@ -1753,8 +1753,8 @@ var _ = Describe("VirtualMachineInstance Subresources", func() { vmClient.EXPECT().Get(context.Background(), testVMName, k8smetav1.GetOptions{}).Return(&vm, nil) vmiClient.EXPECT().Get(context.Background(), testVMName, k8smetav1.GetOptions{}).Return(&vmi, nil) - migrateClient.EXPECT().Create(gomock.Any(), gomock.Any()).Do( - func(obj interface{}, opts *k8smetav1.CreateOptions) { + migrateClient.EXPECT().Create(context.Background(), gomock.Any(), gomock.Any()).Do( + func(ctx context.Context, obj interface{}, opts k8smetav1.CreateOptions) { Expect(opts.DryRun).To(BeEquivalentTo(migrateOptions.DryRun)) }).Return(&migration, nil) app.MigrateVMRequestHandler(request, response) diff --git a/pkg/virt-controller/watch/drain/evacuation/evacuation.go b/pkg/virt-controller/watch/drain/evacuation/evacuation.go index 065de04fb1ed..35e4b022932c 100644 --- a/pkg/virt-controller/watch/drain/evacuation/evacuation.go +++ b/pkg/virt-controller/watch/drain/evacuation/evacuation.go @@ -1,6 +1,7 @@ package evacuation import ( + "context" "fmt" "math" "sync" @@ -446,7 +447,7 @@ func (c *EvacuationController) sync(node *k8sv1.Node, vmisOnNode []*virtv1.Virtu for _, vmi := range selectedCandidates { go func(vmi *virtv1.VirtualMachineInstance) { defer wg.Done() - createdMigration, err := c.clientset.VirtualMachineInstanceMigration(vmi.Namespace).Create(GenerateNewMigration(vmi.Name, node.Name), &v1.CreateOptions{}) + createdMigration, err := c.clientset.VirtualMachineInstanceMigration(vmi.Namespace).Create(context.Background(), GenerateNewMigration(vmi.Name, node.Name), v1.CreateOptions{}) if err != nil { c.migrationExpectations.CreationObserved(node.Name) c.recorder.Eventf(vmi, k8sv1.EventTypeWarning, FailedCreateVirtualMachineInstanceMigrationReason, "Error creating a Migration: %v", err) diff --git a/pkg/virt-controller/watch/drain/evacuation/evacuation_test.go b/pkg/virt-controller/watch/drain/evacuation/evacuation_test.go index 5012b2adb53f..e91d25e344cd 100644 --- a/pkg/virt-controller/watch/drain/evacuation/evacuation_test.go +++ b/pkg/virt-controller/watch/drain/evacuation/evacuation_test.go @@ -1,6 +1,7 @@ package evacuation_test import ( + "context" "fmt" "time" @@ -157,7 +158,7 @@ var _ = Describe("Evacuation", func() { vmi.Spec.EvictionStrategy = newEvictionStrategyLiveMigrate() vmiFeeder.Add(vmi) - migrationInterface.EXPECT().Create(gomock.Any(), &metav1.CreateOptions{}).Return(&v1.VirtualMachineInstanceMigration{ObjectMeta: metav1.ObjectMeta{Name: "something"}}, nil) + migrationInterface.EXPECT().Create(context.Background(), gomock.Any(), metav1.CreateOptions{}).Return(&v1.VirtualMachineInstanceMigration{ObjectMeta: metav1.ObjectMeta{Name: "something"}}, nil) controller.Execute() testutils.ExpectEvent(recorder, evacuation.SuccessfulCreateVirtualMachineInstanceMigrationReason) @@ -234,7 +235,7 @@ var _ = Describe("Evacuation", func() { migrationInterface. EXPECT(). - Create(gomock.Any(), &metav1.CreateOptions{}). + Create(context.Background(), gomock.Any(), metav1.CreateOptions{}). Return(&v1.VirtualMachineInstanceMigration{ObjectMeta: metav1.ObjectMeta{Name: "something"}}, nil) controller.Execute() @@ -251,7 +252,7 @@ var _ = Describe("Evacuation", func() { vmi.Spec.EvictionStrategy = newEvictionStrategyLiveMigrate() vmi.Status.EvacuationNodeName = node.Name vmiFeeder.Add(vmi) - migrationInterface.EXPECT().Create(gomock.Any(), &metav1.CreateOptions{}).Return(&v1.VirtualMachineInstanceMigration{ObjectMeta: metav1.ObjectMeta{Name: "something"}}, nil) + migrationInterface.EXPECT().Create(context.Background(), gomock.Any(), metav1.CreateOptions{}).Return(&v1.VirtualMachineInstanceMigration{ObjectMeta: metav1.ObjectMeta{Name: "something"}}, nil) controller.Execute() testutils.ExpectEvent(recorder, evacuation.SuccessfulCreateVirtualMachineInstanceMigrationReason) }) @@ -376,7 +377,7 @@ var _ = Describe("Evacuation", func() { vmiFeeder.Add(vmi) - migrationInterface.EXPECT().Create(gomock.Any(), &metav1.CreateOptions{}).Return(&v1.VirtualMachineInstanceMigration{ObjectMeta: metav1.ObjectMeta{Name: "something"}}, nil) + migrationInterface.EXPECT().Create(context.Background(), gomock.Any(), metav1.CreateOptions{}).Return(&v1.VirtualMachineInstanceMigration{ObjectMeta: metav1.ObjectMeta{Name: "something"}}, nil) controller.Execute() testutils.ExpectEvent(recorder, evacuation.SuccessfulCreateVirtualMachineInstanceMigrationReason) @@ -419,7 +420,7 @@ var _ = Describe("Evacuation", func() { vmi := newVirtualMachine("testvm", node.Name) vmiFeeder.Add(vmi) - migrationInterface.EXPECT().Create(gomock.Any(), &metav1.CreateOptions{}).Return(&v1.VirtualMachineInstanceMigration{ObjectMeta: metav1.ObjectMeta{Name: "something"}}, nil) + migrationInterface.EXPECT().Create(context.Background(), gomock.Any(), metav1.CreateOptions{}).Return(&v1.VirtualMachineInstanceMigration{ObjectMeta: metav1.ObjectMeta{Name: "something"}}, nil) controller.Execute() testutils.ExpectEvent(recorder, evacuation.SuccessfulCreateVirtualMachineInstanceMigrationReason) @@ -485,7 +486,7 @@ var _ = Describe("Evacuation", func() { By(fmt.Sprintf("Expect only one new migration from node %s although cluster capacity allows more candidates", nodeName)) migrationInterface. EXPECT(). - Create(gomock.Any(), &metav1.CreateOptions{}). + Create(context.Background(), gomock.Any(), metav1.CreateOptions{}). Return(&v1.VirtualMachineInstanceMigration{ObjectMeta: metav1.ObjectMeta{Name: "something"}}, nil). Times(1) @@ -533,7 +534,7 @@ var _ = Describe("Evacuation", func() { By("migration should be created for the candidate") migrationInterface. EXPECT(). - Create(gomock.Any(), &metav1.CreateOptions{}). + Create(context.Background(), gomock.Any(), metav1.CreateOptions{}). Return(&v1.VirtualMachineInstanceMigration{ObjectMeta: metav1.ObjectMeta{Name: "something"}}, nil). Times(1) diff --git a/pkg/virt-controller/watch/workload-updater/workload-updater.go b/pkg/virt-controller/watch/workload-updater/workload-updater.go index bcb08a336022..f3ebe301a47f 100644 --- a/pkg/virt-controller/watch/workload-updater/workload-updater.go +++ b/pkg/virt-controller/watch/workload-updater/workload-updater.go @@ -529,7 +529,7 @@ func (c *WorkloadUpdateController) sync(kv *virtv1.KubeVirt) error { for _, vmi := range migrationCandidates { go func(vmi *virtv1.VirtualMachineInstance) { defer wg.Done() - createdMigration, err := c.clientset.VirtualMachineInstanceMigration(vmi.Namespace).Create(&virtv1.VirtualMachineInstanceMigration{ + createdMigration, err := c.clientset.VirtualMachineInstanceMigration(vmi.Namespace).Create(context.Background(), &virtv1.VirtualMachineInstanceMigration{ ObjectMeta: metav1.ObjectMeta{ Annotations: map[string]string{ virtv1.WorkloadUpdateMigrationAnnotation: "", @@ -539,7 +539,7 @@ func (c *WorkloadUpdateController) sync(kv *virtv1.KubeVirt) error { Spec: virtv1.VirtualMachineInstanceMigrationSpec{ VMIName: vmi.Name, }, - }, &metav1.CreateOptions{}) + }, metav1.CreateOptions{}) if err != nil { log.Log.Object(vmi).Reason(err).Errorf("Failed to migrate vmi as part of workload update") c.migrationExpectations.CreationObserved(key) diff --git a/pkg/virt-controller/watch/workload-updater/workload-updater_test.go b/pkg/virt-controller/watch/workload-updater/workload-updater_test.go index eb5ed94dd60b..ff09c53e5514 100644 --- a/pkg/virt-controller/watch/workload-updater/workload-updater_test.go +++ b/pkg/virt-controller/watch/workload-updater/workload-updater_test.go @@ -1,6 +1,7 @@ package workloadupdater import ( + "context" "fmt" "time" @@ -140,7 +141,7 @@ var _ = Describe("Workload Updater", func() { kv.Spec.WorkloadUpdateStrategy.WorkloadUpdateMethods = []v1.WorkloadUpdateMethod{v1.WorkloadUpdateMethodLiveMigrate, v1.WorkloadUpdateMethodEvict} addKubeVirt(kv) - migrationInterface.EXPECT().Create(gomock.Any(), &metav1.CreateOptions{}).Return(&v1.VirtualMachineInstanceMigration{ObjectMeta: metav1.ObjectMeta{Name: "something"}}, nil) + migrationInterface.EXPECT().Create(context.Background(), gomock.Any(), metav1.CreateOptions{}).Return(&v1.VirtualMachineInstanceMigration{ObjectMeta: metav1.ObjectMeta{Name: "something"}}, nil) controller.Execute() testutils.ExpectEvent(recorder, SuccessfulCreateVirtualMachineInstanceMigrationReason) @@ -200,7 +201,7 @@ var _ = Describe("Workload Updater", func() { }).Return(nil, nil).Times(1) - migrationInterface.EXPECT().Create(gomock.Any(), &metav1.CreateOptions{}).Return(&v1.VirtualMachineInstanceMigration{ObjectMeta: metav1.ObjectMeta{Name: "something"}}, nil).Times(int(virtconfig.ParallelMigrationsPerClusterDefault)) + migrationInterface.EXPECT().Create(context.Background(), gomock.Any(), metav1.CreateOptions{}).Return(&v1.VirtualMachineInstanceMigration{ObjectMeta: metav1.ObjectMeta{Name: "something"}}, nil).Times(int(virtconfig.ParallelMigrationsPerClusterDefault)) evictionCount := 0 shouldExpectMultiplePodEvictions(&evictionCount) @@ -242,7 +243,7 @@ var _ = Describe("Workload Updater", func() { kv.Spec.WorkloadUpdateStrategy.WorkloadUpdateMethods = []v1.WorkloadUpdateMethod{v1.WorkloadUpdateMethodLiveMigrate, v1.WorkloadUpdateMethodEvict} addKubeVirt(kv) - migrationInterface.EXPECT().Create(gomock.Any(), &metav1.CreateOptions{}).Return(&v1.VirtualMachineInstanceMigration{ObjectMeta: metav1.ObjectMeta{Name: "something"}}, nil).Times(int(virtconfig.ParallelMigrationsPerClusterDefault)) + migrationInterface.EXPECT().Create(context.Background(), gomock.Any(), metav1.CreateOptions{}).Return(&v1.VirtualMachineInstanceMigration{ObjectMeta: metav1.ObjectMeta{Name: "something"}}, nil).Times(int(virtconfig.ParallelMigrationsPerClusterDefault)) evictionCount := 0 shouldExpectMultiplePodEvictions(&evictionCount) @@ -280,7 +281,7 @@ var _ = Describe("Workload Updater", func() { waitForNumberOfInstancesOnVMIInformerCache(controller, desiredNumberOfVMs) - migrationInterface.EXPECT().Create(gomock.Any(), &metav1.CreateOptions{}).Return(&v1.VirtualMachineInstanceMigration{ObjectMeta: metav1.ObjectMeta{Name: "something"}}, nil).Times(1) + migrationInterface.EXPECT().Create(context.Background(), gomock.Any(), metav1.CreateOptions{}).Return(&v1.VirtualMachineInstanceMigration{ObjectMeta: metav1.ObjectMeta{Name: "something"}}, nil).Times(1) controller.Execute() testutils.ExpectEvents(recorder, reasons...) @@ -306,7 +307,7 @@ var _ = Describe("Workload Updater", func() { kv.Spec.WorkloadUpdateStrategy.WorkloadUpdateMethods = []v1.WorkloadUpdateMethod{v1.WorkloadUpdateMethodLiveMigrate, v1.WorkloadUpdateMethodEvict} addKubeVirt(kv) - migrationInterface.EXPECT().Create(gomock.Any(), &metav1.CreateOptions{}).Return(&v1.VirtualMachineInstanceMigration{ObjectMeta: metav1.ObjectMeta{Name: "something"}}, nil).Times(1) + migrationInterface.EXPECT().Create(context.Background(), gomock.Any(), metav1.CreateOptions{}).Return(&v1.VirtualMachineInstanceMigration{ObjectMeta: metav1.ObjectMeta{Name: "something"}}, nil).Times(1) evictionCount := 0 shouldExpectMultiplePodEvictions(&evictionCount) diff --git a/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go b/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go index 2743772cc73c..30217f52c3bc 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go +++ b/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go @@ -1866,15 +1866,15 @@ func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) List(arg0, arg return _mr.mock.ctrl.RecordCall(_mr.mock, "List", arg0, arg1) } -func (_m *MockVirtualMachineInstanceMigrationInterface) Create(migration *v120.VirtualMachineInstanceMigration, options *v12.CreateOptions) (*v120.VirtualMachineInstanceMigration, error) { - ret := _m.ctrl.Call(_m, "Create", migration, options) +func (_m *MockVirtualMachineInstanceMigrationInterface) Create(ctx context.Context, migration *v120.VirtualMachineInstanceMigration, options v12.CreateOptions) (*v120.VirtualMachineInstanceMigration, error) { + ret := _m.ctrl.Call(_m, "Create", ctx, migration, options) ret0, _ := ret[0].(*v120.VirtualMachineInstanceMigration) ret1, _ := ret[1].(error) return ret0, ret1 } -func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Create(arg0, arg1 interface{}) *gomock.Call { - return _mr.mock.ctrl.RecordCall(_mr.mock, "Create", arg0, arg1) +func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Create(arg0, arg1, arg2 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCall(_mr.mock, "Create", arg0, arg1, arg2) } func (_m *MockVirtualMachineInstanceMigrationInterface) Update(_param0 *v120.VirtualMachineInstanceMigration) (*v120.VirtualMachineInstanceMigration, error) { diff --git a/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go b/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go index 84c06c794c16..32a7c09b1dad 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go +++ b/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go @@ -311,7 +311,7 @@ type VirtualMachineInterface interface { type VirtualMachineInstanceMigrationInterface interface { Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.VirtualMachineInstanceMigration, error) List(ctx context.Context, opts metav1.ListOptions) (*v1.VirtualMachineInstanceMigrationList, error) - Create(migration *v1.VirtualMachineInstanceMigration, options *metav1.CreateOptions) (*v1.VirtualMachineInstanceMigration, error) + Create(ctx context.Context, migration *v1.VirtualMachineInstanceMigration, options metav1.CreateOptions) (*v1.VirtualMachineInstanceMigration, error) Update(*v1.VirtualMachineInstanceMigration) (*v1.VirtualMachineInstanceMigration, error) Delete(name string, options *metav1.DeleteOptions) error Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.VirtualMachineInstanceMigration, err error) diff --git a/staging/src/kubevirt.io/client-go/kubecli/migration.go b/staging/src/kubevirt.io/client-go/kubecli/migration.go index 1005c345e55b..e1bb35bd0989 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/migration.go +++ b/staging/src/kubevirt.io/client-go/kubecli/migration.go @@ -47,12 +47,8 @@ type migration struct { } // Create new VirtualMachineInstanceMigration in the cluster to specified namespace -func (o *migration) Create(newMigration *v1.VirtualMachineInstanceMigration, options *k8smetav1.CreateOptions) (*v1.VirtualMachineInstanceMigration, error) { - opts := k8smetav1.CreateOptions{} - if options != nil { - opts = *options - } - newMigrationResult, err := o.VirtualMachineInstanceMigrationInterface.Create(context.Background(), newMigration, opts) +func (o *migration) Create(ctx context.Context, newMigration *v1.VirtualMachineInstanceMigration, options k8smetav1.CreateOptions) (*v1.VirtualMachineInstanceMigration, error) { + newMigrationResult, err := o.VirtualMachineInstanceMigrationInterface.Create(ctx, newMigration, options) newMigrationResult.SetGroupVersionKind(v1.VirtualMachineInstanceMigrationGroupVersionKind) return newMigrationResult, err diff --git a/staging/src/kubevirt.io/client-go/kubecli/migration_test.go b/staging/src/kubevirt.io/client-go/kubecli/migration_test.go index 4a56e5855868..f03224735506 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/migration_test.go +++ b/staging/src/kubevirt.io/client-go/kubecli/migration_test.go @@ -114,7 +114,7 @@ var _ = Describe("Kubevirt Migration Client", func() { ghttp.VerifyRequest("POST", path.Join(proxyPath, basePath)), ghttp.RespondWithJSONEncoded(http.StatusCreated, migration), )) - createdMigration, err := client.VirtualMachineInstanceMigration(k8sv1.NamespaceDefault).Create(migration, &k8smetav1.CreateOptions{}) + createdMigration, err := client.VirtualMachineInstanceMigration(k8sv1.NamespaceDefault).Create(context.Background(), migration, k8smetav1.CreateOptions{}) Expect(server.ReceivedRequests()).To(HaveLen(1)) Expect(err).ToNot(HaveOccurred()) diff --git a/tests/dryrun_test.go b/tests/dryrun_test.go index 966e58996bf4..41e1a9132d40 100644 --- a/tests/dryrun_test.go +++ b/tests/dryrun_test.go @@ -260,7 +260,7 @@ var _ = Describe("[sig-compute]Dry-Run requests", decorators.SigCompute, func() It("[test_id:7636]delete a migration", func() { By("Create a migration") - vmim, err = virtClient.VirtualMachineInstanceMigration(vmim.Namespace).Create(vmim, &metav1.CreateOptions{}) + vmim, err = virtClient.VirtualMachineInstanceMigration(vmim.Namespace).Create(context.Background(), vmim, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) By("Make a Dry-Run request to delete a Migration") @@ -279,7 +279,7 @@ var _ = Describe("[sig-compute]Dry-Run requests", decorators.SigCompute, func() It("[test_id:7637]update a migration", func() { By("Create a migration") - vmim, err := virtClient.VirtualMachineInstanceMigration(vmim.Namespace).Create(vmim, &metav1.CreateOptions{}) + vmim, err := virtClient.VirtualMachineInstanceMigration(vmim.Namespace).Create(context.Background(), vmim, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) By("Make a Dry-Run request to update the migration") @@ -305,7 +305,7 @@ var _ = Describe("[sig-compute]Dry-Run requests", decorators.SigCompute, func() It("[test_id:7638]patch a migration", func() { By("Create a migration") - vmim, err = virtClient.VirtualMachineInstanceMigration(vmim.Namespace).Create(vmim, &metav1.CreateOptions{}) + vmim, err = virtClient.VirtualMachineInstanceMigration(vmim.Namespace).Create(context.Background(), vmim, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) By("Make a Dry-Run request to patch the migration") diff --git a/tests/hotplug/cpu.go b/tests/hotplug/cpu.go index d0de2af56b3d..15ee072ad5de 100644 --- a/tests/hotplug/cpu.go +++ b/tests/hotplug/cpu.go @@ -220,7 +220,7 @@ var _ = Describe("[sig-compute][Serial]CPU Hotplug", decorators.SigCompute, deco By("starting the migration") migration := libmigration.New(vm.Name, vm.Namespace) - migration, err = virtClient.VirtualMachineInstanceMigration(vm.Namespace).Create(migration, &metav1.CreateOptions{}) + migration, err = virtClient.VirtualMachineInstanceMigration(vm.Namespace).Create(context.Background(), migration, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) libmigration.ExpectMigrationToSucceedWithDefaultTimeout(virtClient, migration) diff --git a/tests/kubectl_test.go b/tests/kubectl_test.go index 9451cb926507..ec1645fac396 100644 --- a/tests/kubectl_test.go +++ b/tests/kubectl_test.go @@ -193,7 +193,7 @@ var _ = Describe("[sig-compute]oc/kubectl integration", decorators.SigCompute, f var migrationCreated *v1.VirtualMachineInstanceMigration By("starting migration") Eventually(func() error { - migrationCreated, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(migration, &metav1.CreateOptions{}) + migrationCreated, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(context.Background(), migration, metav1.CreateOptions{}) return err }, libmigration.MigrationWaitTime, 1*time.Second).Should(Succeed(), "migration creation should succeed") migration = migrationCreated diff --git a/tests/libmigration/migration.go b/tests/libmigration/migration.go index 51525cce79b4..48290becd44b 100644 --- a/tests/libmigration/migration.go +++ b/tests/libmigration/migration.go @@ -95,7 +95,7 @@ func RunMigrationAndExpectToCompleteWithDefaultTimeout(virtClient kubecli.Kubevi func RunMigration(virtClient kubecli.KubevirtClient, migration *v1.VirtualMachineInstanceMigration) *v1.VirtualMachineInstanceMigration { By("Starting a Migration") - migrationCreated, err := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(migration, &metav1.CreateOptions{}) + migrationCreated, err := virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(context.Background(), migration, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) return migrationCreated @@ -436,7 +436,7 @@ func RunAndCancelMigration(migration *v1.VirtualMachineInstanceMigration, vmi *v virtClient := kubevirt.Client() By("Starting a Migration") Eventually(func() error { - migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(migration, &metav1.CreateOptions{}) + migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(context.Background(), migration, metav1.CreateOptions{}) return err }, timeout, 1*time.Second).ShouldNot(HaveOccurred()) @@ -468,7 +468,7 @@ func RunAndImmediatelyCancelMigration(migration *v1.VirtualMachineInstanceMigrat virtClient := kubevirt.Client() By("Starting a Migration") Eventually(func() error { - migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(migration, &metav1.CreateOptions{}) + migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(context.Background(), migration, metav1.CreateOptions{}) return err }, timeout, 1*time.Second).ShouldNot(HaveOccurred()) @@ -489,7 +489,7 @@ func RunMigrationAndExpectFailure(migration *v1.VirtualMachineInstanceMigration, virtClient := kubevirt.Client() By("Starting a Migration") Eventually(func() error { - migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(migration, &metav1.CreateOptions{}) + migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(context.Background(), migration, metav1.CreateOptions{}) return err }, timeout, 1*time.Second).ShouldNot(HaveOccurred()) By("Waiting until the Migration Completes") diff --git a/tests/migration/eviction_strategy.go b/tests/migration/eviction_strategy.go index 546d51bb26a1..c6fb09557463 100644 --- a/tests/migration/eviction_strategy.go +++ b/tests/migration/eviction_strategy.go @@ -205,7 +205,7 @@ var _ = SIGMigrationDescribe("Live Migration", func() { // execute a migration, wait for finalized state By("Starting the Migration") migration := libmigration.New(vmi.Name, vmi.Namespace) - migration, err := virtClient.VirtualMachineInstanceMigration(vmi.Namespace).Create(migration, &metav1.CreateOptions{}) + migration, err := virtClient.VirtualMachineInstanceMigration(vmi.Namespace).Create(context.Background(), migration, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) By("Waiting until we have two available pods") diff --git a/tests/migration/migration.go b/tests/migration/migration.go index 1902c0193b1d..87c4e10debf6 100644 --- a/tests/migration/migration.go +++ b/tests/migration/migration.go @@ -272,7 +272,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { migration := libmigration.New(vmi.Name, vmi.Namespace) By("Starting a Migration") - migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(migration, &metav1.CreateOptions{}) + migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(context.Background(), migration, metav1.CreateOptions{}) Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("InterfaceNotLiveMigratable")) }) @@ -789,7 +789,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { var err error Eventually(func() error { - migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(migration, &metav1.CreateOptions{}) + migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(context.Background(), migration, metav1.CreateOptions{}) return err }, 5, 1*time.Second).Should(Succeed(), "migration creation should succeed") @@ -851,7 +851,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { By("Starting a Migration") var err error Eventually(func() error { - migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(migration, &metav1.CreateOptions{}) + migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(context.Background(), migration, metav1.CreateOptions{}) return err }, 5, 1*time.Second).Should(Succeed(), "migration creation should succeed") @@ -1012,7 +1012,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { migration := libmigration.New(vmi.Name, vmi.Namespace) By("Starting a Migration") - migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(migration, &metav1.CreateOptions{}) + migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(context.Background(), migration, metav1.CreateOptions{}) Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("DisksNotLiveMigratable")) }) @@ -1051,7 +1051,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { By("Starting a first migration") migration1 := libmigration.New(vmi.Name, vmi.Namespace) - migration1, err = virtClient.VirtualMachineInstanceMigration(migration1.Namespace).Create(migration1, &metav1.CreateOptions{}) + migration1, err = virtClient.VirtualMachineInstanceMigration(migration1.Namespace).Create(context.Background(), migration1, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) // Successfully tested with 40, but requests start getting throttled above 10, which is better to avoid to prevent flakyness @@ -1063,7 +1063,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { defer GinkgoRecover() defer wg.Done() migration := libmigration.New(vmi.Name, vmi.Namespace) - _, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(migration, &metav1.CreateOptions{}) + _, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(context.Background(), migration, metav1.CreateOptions{}) Expect(err).To(HaveOccurred(), fmt.Sprintf("Extra migration %d should have failed to create", n)) Expect(err.Error()).To(ContainSubstring(`admission webhook "migration-create-validator.kubevirt.io" denied the request: in-flight migration detected.`)) }(n) @@ -1455,7 +1455,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { // execute a migration, wait for finalized state By("Starting the Migration") migration := libmigration.New(vmi.Name, vmi.Namespace) - migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(migration, &metav1.CreateOptions{}) + migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(context.Background(), migration, metav1.CreateOptions{}) By("Waiting for the proxy connection details to appear") Eventually(func() bool { @@ -1534,7 +1534,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { // execute a migration, wait for finalized state By("Starting the Migration") migration := libmigration.New(vmi.Name, vmi.Namespace) - migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(migration, &metav1.CreateOptions{}) + migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(context.Background(), migration, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) By("Waiting for the proxy connection details to appear") @@ -1828,7 +1828,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { // execute a migration By("Starting the Migration") migration := libmigration.New(vmi.Name, vmi.Namespace) - migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(migration, &metav1.CreateOptions{}) + migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(context.Background(), migration, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) By("Waiting for Migration to reach Preparing Target Phase") @@ -1908,7 +1908,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { // execute a migration By("Starting the Migration") migration := libmigration.New(vmi.Name, vmi.Namespace) - migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(migration, &metav1.CreateOptions{}) + migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(context.Background(), migration, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) By("Waiting for Migration to reach Preparing Target Phase") @@ -1979,7 +1979,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { migration := libmigration.New(vmi.Name, vmi.Namespace) By("Starting a Migration") - _, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(migration, &metav1.CreateOptions{}) + _, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(context.Background(), migration, metav1.CreateOptions{}) Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("DisksNotLiveMigratable")) }) @@ -2128,7 +2128,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { By("Starting a Migration") const timeout = 180 Eventually(func() error { - migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(migration, &metav1.CreateOptions{}) + migration, err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Create(context.Background(), migration, metav1.CreateOptions{}) return err }, timeout, 1*time.Second).ShouldNot(HaveOccurred()) @@ -3141,7 +3141,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { vmim := libmigration.New(vmi.Name, vmi.Namespace) // not checking err as the migration creation will be blocked immediately by virt-api's validating webhook // if another one is currently running - vmim, err = virtClient.VirtualMachineInstanceMigration(vmi.Namespace).Create(vmim, &metav1.CreateOptions{}) + vmim, err = virtClient.VirtualMachineInstanceMigration(vmi.Namespace).Create(context.Background(), vmim, metav1.CreateOptions{}) labelSelector, err := labels.Parse(fmt.Sprintf("%s in (%s)", v1.MigrationSelectorLabel, vmi.Name)) Expect(err).ToNot(HaveOccurred()) diff --git a/tests/operator/operator.go b/tests/operator/operator.go index 57fef26d6478..a89235328817 100644 --- a/tests/operator/operator.go +++ b/tests/operator/operator.go @@ -1906,7 +1906,7 @@ spec: if len(migratableVMIs) > 0 { By("Verifying that a once migrated VMI after an update can be migrated again") vmi := migratableVMIs[0] - migration, err := virtClient.VirtualMachineInstanceMigration(testsuite.GetTestNamespace(vmi)).Create(libmigration.New(vmi.Name, vmi.Namespace), &metav1.CreateOptions{}) + migration, err := virtClient.VirtualMachineInstanceMigration(testsuite.GetTestNamespace(vmi)).Create(context.Background(), libmigration.New(vmi.Name, vmi.Namespace), metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) Eventually(ThisMigration(migration), 180).Should(HaveSucceeded()) } From 1696db440964a798f25647da0b7f36cd0b96cf37 Mon Sep 17 00:00:00 2001 From: fossedihelm Date: Mon, 18 Mar 2024 11:06:03 +0100 Subject: [PATCH 4/8] feat: use common params for vmim.Update vmim.Update method does not allow to pass the context and UpdateOptions. In order to align the custom method signature with the generated one introduce the context and the UpdateOptions. This effort, once all the common methods' signatures are aligned with the generated ones, will converge in the deletion of the custom methods' implementations, embedding the generated interface. Signed-off-by: fossedihelm --- pkg/util/status/status.go | 2 +- pkg/util/status/status_test.go | 2 +- pkg/virt-controller/watch/migration.go | 4 ++-- pkg/virt-controller/watch/migration_test.go | 2 +- .../client-go/kubecli/generated_mock_kubevirt.go | 8 ++++---- staging/src/kubevirt.io/client-go/kubecli/kubevirt.go | 2 +- staging/src/kubevirt.io/client-go/kubecli/migration.go | 4 ++-- .../src/kubevirt.io/client-go/kubecli/migration_test.go | 2 +- 8 files changed, 13 insertions(+), 13 deletions(-) diff --git a/pkg/util/status/status.go b/pkg/util/status/status.go index c52e7f3ed55e..8041c055a2c6 100644 --- a/pkg/util/status/status.go +++ b/pkg/util/status/status.go @@ -184,7 +184,7 @@ func (u *updater) updateUnstructured(obj runtime.Object) (oldStatus interface{}, return oldObj.Status, newObj.Status, nil case *v1.VirtualMachineInstanceMigration: oldObj := obj.(*v1.VirtualMachineInstanceMigration) - newObj, err := u.cli.VirtualMachineInstanceMigration(a.GetNamespace()).Update(oldObj) + newObj, err := u.cli.VirtualMachineInstanceMigration(a.GetNamespace()).Update(context.Background(), oldObj, metav1.UpdateOptions{}) if err != nil { return nil, nil, err } diff --git a/pkg/util/status/status_test.go b/pkg/util/status/status_test.go index e83182f29593..fac5162a7c80 100644 --- a/pkg/util/status/status_test.go +++ b/pkg/util/status/status_test.go @@ -298,7 +298,7 @@ var _ = Describe("Status", func() { migrationUpdater := NewMigrationStatusUpdater(virtClient) migrationUpdater.updater.subresource = false migration := &v1.VirtualMachineInstanceMigration{Status: v1.VirtualMachineInstanceMigrationStatus{Phase: v1.MigrationPhaseUnset}} - migrationInterface.EXPECT().Update(migration).Return(migration, nil).Times(1) + migrationInterface.EXPECT().Update(context.Background(), migration, v12.UpdateOptions{}).Return(migration, nil).Times(1) Expect(migrationUpdater.UpdateStatus(migration)).To(Succeed()) }) }) diff --git a/pkg/virt-controller/watch/migration.go b/pkg/virt-controller/watch/migration.go index a64cf75e6b07..d92b5402af51 100644 --- a/pkg/virt-controller/watch/migration.go +++ b/pkg/virt-controller/watch/migration.go @@ -315,7 +315,7 @@ func (c *MigrationController) execute(key string) error { controller.SetLatestApiVersionAnnotation(migration) // Ensure the migration contains our selector label ensureSelectorLabelPresent(migration) - _, err = c.clientset.VirtualMachineInstanceMigration(migration.Namespace).Update(migration) + _, err = c.clientset.VirtualMachineInstanceMigration(migration.Namespace).Update(context.Background(), migration, metav1.UpdateOptions{}) return err } @@ -513,7 +513,7 @@ func (c *MigrationController) updateStatus(migration *virtv1.VirtualMachineInsta return err } } else if !equality.Semantic.DeepEqual(migration.Finalizers, migrationCopy.Finalizers) { - _, err := c.clientset.VirtualMachineInstanceMigration(migrationCopy.Namespace).Update(migrationCopy) + _, err := c.clientset.VirtualMachineInstanceMigration(migrationCopy.Namespace).Update(context.Background(), migrationCopy, metav1.UpdateOptions{}) if err != nil { return err } diff --git a/pkg/virt-controller/watch/migration_test.go b/pkg/virt-controller/watch/migration_test.go index 928dcf618b53..e82c98b9e322 100644 --- a/pkg/virt-controller/watch/migration_test.go +++ b/pkg/virt-controller/watch/migration_test.go @@ -97,7 +97,7 @@ var _ = Describe("Migration watcher", func() { var namespace k8sv1.Namespace shouldExpectMigrationFinalizerRemoval := func(migration *virtv1.VirtualMachineInstanceMigration) { - migrationInterface.EXPECT().Update(gomock.Any()).Do(func(arg interface{}) (interface{}, interface{}) { + migrationInterface.EXPECT().Update(context.Background(), gomock.Any(), metav1.UpdateOptions{}).Do(func(ctx context.Context, arg interface{}, opts metav1.UpdateOptions) (interface{}, interface{}) { Expect(arg.(*virtv1.VirtualMachineInstanceMigration).Finalizers).To(BeEmpty()) return arg, nil }) diff --git a/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go b/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go index 30217f52c3bc..3d33d110aaaf 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go +++ b/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go @@ -1877,15 +1877,15 @@ func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Create(arg0, a return _mr.mock.ctrl.RecordCall(_mr.mock, "Create", arg0, arg1, arg2) } -func (_m *MockVirtualMachineInstanceMigrationInterface) Update(_param0 *v120.VirtualMachineInstanceMigration) (*v120.VirtualMachineInstanceMigration, error) { - ret := _m.ctrl.Call(_m, "Update", _param0) +func (_m *MockVirtualMachineInstanceMigrationInterface) Update(ctx context.Context, virtualMachineInstanceMigration *v120.VirtualMachineInstanceMigration, opts v12.UpdateOptions) (*v120.VirtualMachineInstanceMigration, error) { + ret := _m.ctrl.Call(_m, "Update", ctx, virtualMachineInstanceMigration, opts) ret0, _ := ret[0].(*v120.VirtualMachineInstanceMigration) ret1, _ := ret[1].(error) return ret0, ret1 } -func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Update(arg0 interface{}) *gomock.Call { - return _mr.mock.ctrl.RecordCall(_mr.mock, "Update", arg0) +func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Update(arg0, arg1, arg2 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCall(_mr.mock, "Update", arg0, arg1, arg2) } func (_m *MockVirtualMachineInstanceMigrationInterface) Delete(name string, options *v12.DeleteOptions) error { diff --git a/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go b/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go index 32a7c09b1dad..c4ebec7b138f 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go +++ b/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go @@ -312,7 +312,7 @@ type VirtualMachineInstanceMigrationInterface interface { Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.VirtualMachineInstanceMigration, error) List(ctx context.Context, opts metav1.ListOptions) (*v1.VirtualMachineInstanceMigrationList, error) Create(ctx context.Context, migration *v1.VirtualMachineInstanceMigration, options metav1.CreateOptions) (*v1.VirtualMachineInstanceMigration, error) - Update(*v1.VirtualMachineInstanceMigration) (*v1.VirtualMachineInstanceMigration, error) + Update(ctx context.Context, virtualMachineInstanceMigration *v1.VirtualMachineInstanceMigration, opts metav1.UpdateOptions) (*v1.VirtualMachineInstanceMigration, error) Delete(name string, options *metav1.DeleteOptions) error Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.VirtualMachineInstanceMigration, err error) UpdateStatus(*v1.VirtualMachineInstanceMigration) (*v1.VirtualMachineInstanceMigration, error) diff --git a/staging/src/kubevirt.io/client-go/kubecli/migration.go b/staging/src/kubevirt.io/client-go/kubecli/migration.go index e1bb35bd0989..8e619590cd09 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/migration.go +++ b/staging/src/kubevirt.io/client-go/kubecli/migration.go @@ -63,8 +63,8 @@ func (o *migration) Get(ctx context.Context, name string, options k8smetav1.GetO } // Update the VirtualMachineInstanceMigration instance in the cluster in given namespace -func (o *migration) Update(migration *v1.VirtualMachineInstanceMigration) (*v1.VirtualMachineInstanceMigration, error) { - updatedVm, err := o.VirtualMachineInstanceMigrationInterface.Update(context.Background(), migration, k8smetav1.UpdateOptions{}) +func (o *migration) Update(ctx context.Context, migration *v1.VirtualMachineInstanceMigration, opts k8smetav1.UpdateOptions) (*v1.VirtualMachineInstanceMigration, error) { + updatedVm, err := o.VirtualMachineInstanceMigrationInterface.Update(ctx, migration, opts) updatedVm.SetGroupVersionKind(v1.VirtualMachineInstanceMigrationGroupVersionKind) return updatedVm, err diff --git a/staging/src/kubevirt.io/client-go/kubecli/migration_test.go b/staging/src/kubevirt.io/client-go/kubecli/migration_test.go index f03224735506..66c988787917 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/migration_test.go +++ b/staging/src/kubevirt.io/client-go/kubecli/migration_test.go @@ -133,7 +133,7 @@ var _ = Describe("Kubevirt Migration Client", func() { ghttp.VerifyRequest("PUT", path.Join(proxyPath, migrationPath)), ghttp.RespondWithJSONEncoded(http.StatusOK, migration), )) - updatedMigration, err := client.VirtualMachineInstanceMigration(k8sv1.NamespaceDefault).Update(migration) + updatedMigration, err := client.VirtualMachineInstanceMigration(k8sv1.NamespaceDefault).Update(context.Background(), migration, k8smetav1.UpdateOptions{}) Expect(server.ReceivedRequests()).To(HaveLen(1)) Expect(err).ToNot(HaveOccurred()) From b1770cd858a9545f0a5377a1086cbc2db254808a Mon Sep 17 00:00:00 2001 From: fossedihelm Date: Mon, 18 Mar 2024 11:33:38 +0100 Subject: [PATCH 5/8] feat: use common params for vmim.Delete vmim.Delete method does not allow to pass the context and uses the pointer to DeleteOptions. In order to align the custom method signature with the generated one switch using the DeleteOptions instead of the pointer one and introduce the context. This effort, once all the common methods' signatures are aligned with the generated ones, will converge in the deletion of the custom methods' implementations, embedding the generated interface. Signed-off-by: fossedihelm --- pkg/virt-controller/watch/migration.go | 4 ++-- pkg/virt-controller/watch/migration_test.go | 4 ++-- pkg/virtctl/vm/migrate_cancel.go | 2 +- pkg/virtctl/vm/migrate_cancel_test.go | 2 +- .../client-go/kubecli/generated_mock_kubevirt.go | 8 ++++---- staging/src/kubevirt.io/client-go/kubecli/kubevirt.go | 2 +- staging/src/kubevirt.io/client-go/kubecli/migration.go | 8 ++------ .../src/kubevirt.io/client-go/kubecli/migration_test.go | 2 +- tests/dryrun_test.go | 2 +- tests/libmigration/migration.go | 4 ++-- tests/migration/migration.go | 2 +- 11 files changed, 18 insertions(+), 22 deletions(-) diff --git a/pkg/virt-controller/watch/migration.go b/pkg/virt-controller/watch/migration.go index d92b5402af51..d7b9b7b03b3e 100644 --- a/pkg/virt-controller/watch/migration.go +++ b/pkg/virt-controller/watch/migration.go @@ -329,7 +329,7 @@ func (c *MigrationController) execute(key string) error { if migration.DeletionTimestamp == nil { logger.V(3).Infof("Deleting migration for deleted vmi %s/%s", migration.Namespace, migration.Spec.VMIName) - err = c.clientset.VirtualMachineInstanceMigration(migration.Namespace).Delete(migration.Name, &v1.DeleteOptions{}) + err = c.clientset.VirtualMachineInstanceMigration(migration.Namespace).Delete(context.Background(), migration.Name, v1.DeleteOptions{}) } // nothing to process for a migration that's being deleted return err @@ -1675,7 +1675,7 @@ func (c *MigrationController) garbageCollectFinalizedMigrations(vmi *virtv1.Virt } for i := 0; i < garbageCollectionCount; i++ { - err = c.clientset.VirtualMachineInstanceMigration(vmi.Namespace).Delete(finalizedMigrations[i], &v1.DeleteOptions{}) + err = c.clientset.VirtualMachineInstanceMigration(vmi.Namespace).Delete(context.Background(), finalizedMigrations[i], v1.DeleteOptions{}) if err != nil && k8serrors.IsNotFound(err) { // This is safe to ignore. It's possible in some // scenarios that the migration we're trying to garbage diff --git a/pkg/virt-controller/watch/migration_test.go b/pkg/virt-controller/watch/migration_test.go index e82c98b9e322..a6018483777f 100644 --- a/pkg/virt-controller/watch/migration_test.go +++ b/pkg/virt-controller/watch/migration_test.go @@ -241,7 +241,7 @@ var _ = Describe("Migration watcher", func() { shouldExpectMigrationDeletion := func(namePrefix string, times int) { - migrationInterface.EXPECT().Delete(gomock.Any(), gomock.Any()).Times(times).Do(func(arg1 interface{}, arg2 interface{}) interface{} { + migrationInterface.EXPECT().Delete(context.Background(), gomock.Any(), gomock.Any()).Times(times).Do(func(ctx context.Context, arg1 interface{}, arg2 interface{}) interface{} { Expect(arg1.(string)).To(ContainSubstring(namePrefix)) return nil }) @@ -1431,7 +1431,7 @@ var _ = Describe("Migration watcher", func() { migration := newMigration("testmigration", "somevmi", virtv1.MigrationRunning) addMigration(migration) - migrationInterface.EXPECT().Delete(gomock.Any(), gomock.Any()).Times(1).Return(nil) + migrationInterface.EXPECT().Delete(context.Background(), gomock.Any(), gomock.Any()).Times(1).Return(nil) controller.Execute() }) diff --git a/pkg/virtctl/vm/migrate_cancel.go b/pkg/virtctl/vm/migrate_cancel.go index 5a50bc923332..2de07ea696b7 100644 --- a/pkg/virtctl/vm/migrate_cancel.go +++ b/pkg/virtctl/vm/migrate_cancel.go @@ -72,7 +72,7 @@ func (o *Command) migrateCancelRun(args []string) error { if !mig.IsFinal() { // Cancel the active migration by calling Delete - err = virtClient.VirtualMachineInstanceMigration(namespace).Delete(migname, &metav1.DeleteOptions{}) + err = virtClient.VirtualMachineInstanceMigration(namespace).Delete(context.Background(), migname, metav1.DeleteOptions{}) if err != nil { return fmt.Errorf("Error canceling migration %s of a VirtualMachine %s: %v", migname, vmiName, err) } diff --git a/pkg/virtctl/vm/migrate_cancel_test.go b/pkg/virtctl/vm/migrate_cancel_test.go index 49e4fa236364..87701236ba09 100644 --- a/pkg/virtctl/vm/migrate_cancel_test.go +++ b/pkg/virtctl/vm/migrate_cancel_test.go @@ -76,7 +76,7 @@ var _ = Describe("Migrate cancel command", func() { Return(migrationInterface).Times(2) migrationInterface.EXPECT().List(context.Background(), listoptions).Return(&migList, nil).Times(1) - migrationInterface.EXPECT().Delete(vmiMigration.Name, &k8smetav1.DeleteOptions{}).Return(nil).Times(1) + migrationInterface.EXPECT().Delete(context.Background(), vmiMigration.Name, k8smetav1.DeleteOptions{}).Return(nil).Times(1) Expect(cmd()).To(Succeed()) }) diff --git a/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go b/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go index 3d33d110aaaf..a85a93506cfd 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go +++ b/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go @@ -1888,14 +1888,14 @@ func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Update(arg0, a return _mr.mock.ctrl.RecordCall(_mr.mock, "Update", arg0, arg1, arg2) } -func (_m *MockVirtualMachineInstanceMigrationInterface) Delete(name string, options *v12.DeleteOptions) error { - ret := _m.ctrl.Call(_m, "Delete", name, options) +func (_m *MockVirtualMachineInstanceMigrationInterface) Delete(ctx context.Context, name string, options v12.DeleteOptions) error { + ret := _m.ctrl.Call(_m, "Delete", ctx, name, options) ret0, _ := ret[0].(error) return ret0 } -func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Delete(arg0, arg1 interface{}) *gomock.Call { - return _mr.mock.ctrl.RecordCall(_mr.mock, "Delete", arg0, arg1) +func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Delete(arg0, arg1, arg2 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCall(_mr.mock, "Delete", arg0, arg1, arg2) } func (_m *MockVirtualMachineInstanceMigrationInterface) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (*v120.VirtualMachineInstanceMigration, error) { diff --git a/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go b/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go index c4ebec7b138f..0e108a8815c2 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go +++ b/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go @@ -313,7 +313,7 @@ type VirtualMachineInstanceMigrationInterface interface { List(ctx context.Context, opts metav1.ListOptions) (*v1.VirtualMachineInstanceMigrationList, error) Create(ctx context.Context, migration *v1.VirtualMachineInstanceMigration, options metav1.CreateOptions) (*v1.VirtualMachineInstanceMigration, error) Update(ctx context.Context, virtualMachineInstanceMigration *v1.VirtualMachineInstanceMigration, opts metav1.UpdateOptions) (*v1.VirtualMachineInstanceMigration, error) - Delete(name string, options *metav1.DeleteOptions) error + Delete(ctx context.Context, name string, options metav1.DeleteOptions) error Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.VirtualMachineInstanceMigration, err error) UpdateStatus(*v1.VirtualMachineInstanceMigration) (*v1.VirtualMachineInstanceMigration, error) PatchStatus(name string, pt types.PatchType, data []byte) (result *v1.VirtualMachineInstanceMigration, err error) diff --git a/staging/src/kubevirt.io/client-go/kubecli/migration.go b/staging/src/kubevirt.io/client-go/kubecli/migration.go index 8e619590cd09..c6fe4b844e65 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/migration.go +++ b/staging/src/kubevirt.io/client-go/kubecli/migration.go @@ -71,12 +71,8 @@ func (o *migration) Update(ctx context.Context, migration *v1.VirtualMachineInst } // Delete the defined VirtualMachineInstanceMigration in the cluster in defined namespace -func (o *migration) Delete(name string, options *k8smetav1.DeleteOptions) error { - opts := k8smetav1.DeleteOptions{} - if options != nil { - opts = *options - } - return o.VirtualMachineInstanceMigrationInterface.Delete(context.Background(), name, opts) +func (o *migration) Delete(ctx context.Context, name string, options k8smetav1.DeleteOptions) error { + return o.VirtualMachineInstanceMigrationInterface.Delete(ctx, name, options) } // List all VirtualMachineInstanceMigrations in given namespace diff --git a/staging/src/kubevirt.io/client-go/kubecli/migration_test.go b/staging/src/kubevirt.io/client-go/kubecli/migration_test.go index 66c988787917..b1138bd887fa 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/migration_test.go +++ b/staging/src/kubevirt.io/client-go/kubecli/migration_test.go @@ -174,7 +174,7 @@ var _ = Describe("Kubevirt Migration Client", func() { ghttp.VerifyRequest("DELETE", path.Join(proxyPath, migrationPath)), ghttp.RespondWithJSONEncoded(http.StatusOK, nil), )) - err = client.VirtualMachineInstanceMigration(k8sv1.NamespaceDefault).Delete("testmigration", &k8smetav1.DeleteOptions{}) + err = client.VirtualMachineInstanceMigration(k8sv1.NamespaceDefault).Delete(context.Background(), "testmigration", k8smetav1.DeleteOptions{}) Expect(server.ReceivedRequests()).To(HaveLen(1)) Expect(err).ToNot(HaveOccurred()) diff --git a/tests/dryrun_test.go b/tests/dryrun_test.go index 41e1a9132d40..5946b33ccf48 100644 --- a/tests/dryrun_test.go +++ b/tests/dryrun_test.go @@ -269,7 +269,7 @@ var _ = Describe("[sig-compute]Dry-Run requests", decorators.SigCompute, func() DryRun: []string{metav1.DryRunAll}, PropagationPolicy: &deletePolicy, } - err = virtClient.VirtualMachineInstanceMigration(vmim.Namespace).Delete(vmim.Name, &opts) + err = virtClient.VirtualMachineInstanceMigration(vmim.Namespace).Delete(context.Background(), vmim.Name, opts) Expect(err).ToNot(HaveOccurred()) By("Check that no migration was actually deleted") diff --git a/tests/libmigration/migration.go b/tests/libmigration/migration.go index 48290becd44b..915b89237ea6 100644 --- a/tests/libmigration/migration.go +++ b/tests/libmigration/migration.go @@ -11,7 +11,6 @@ import ( "github.com/onsi/gomega/gstruct" - "kubevirt.io/kubevirt/tests/clientcmd" "kubevirt.io/kubevirt/tests/libinfra" "kubevirt.io/kubevirt/tests" @@ -21,6 +20,7 @@ import ( k8sv1 "k8s.io/api/core/v1" + "kubevirt.io/kubevirt/tests/clientcmd" "kubevirt.io/kubevirt/tests/flags" "kubevirt.io/kubevirt/tests/framework/matcher" "kubevirt.io/kubevirt/tests/libmonitoring" @@ -423,7 +423,7 @@ func CancelMigration(migration *v1.VirtualMachineInstanceMigration, vminame stri virtClient := kubevirt.Client() if !with_virtctl { By("Cancelling a Migration") - Expect(virtClient.VirtualMachineInstanceMigration(migration.Namespace).Delete(migration.Name, &metav1.DeleteOptions{})).To(Succeed(), "Migration should be deleted successfully") + Expect(virtClient.VirtualMachineInstanceMigration(migration.Namespace).Delete(context.Background(), migration.Name, metav1.DeleteOptions{})).To(Succeed(), "Migration should be deleted successfully") } else { By("Cancelling a Migration with virtctl") command := clientcmd.NewRepeatableVirtctlCommand("migrate-cancel", "--namespace", migration.Namespace, vminame) diff --git a/tests/migration/migration.go b/tests/migration/migration.go index 87c4e10debf6..3786a9739d04 100644 --- a/tests/migration/migration.go +++ b/tests/migration/migration.go @@ -2223,7 +2223,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { } By("Aborting the migration") - err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Delete(migration.Name, &metav1.DeleteOptions{}) + err = virtClient.VirtualMachineInstanceMigration(migration.Namespace).Delete(context.Background(), migration.Name, metav1.DeleteOptions{}) Expect(err).ShouldNot(HaveOccurred()) By("Expecting migration to be deleted") From 781fdf73c2412c9444e3965a6246c58ce98db3d0 Mon Sep 17 00:00:00 2001 From: fossedihelm Date: Mon, 18 Mar 2024 11:50:09 +0100 Subject: [PATCH 6/8] feat: use common params for vmim.Patch vmim.Patch and vmim.PatchStatus methods do not allow to pass the context and PatchOptions. In order to align the custom methods signature with the generated ones introduce the context and the PatchOptions. This effort, once all the common methods' signatures are aligned with the generated ones, will converge in the deletion of the custom methods' implementations, embedding the generated interface. Signed-off-by: fossedihelm --- .../client-go/kubecli/generated_mock_kubevirt.go | 16 ++++++++-------- .../kubevirt.io/client-go/kubecli/kubevirt.go | 4 ++-- .../kubevirt.io/client-go/kubecli/migration.go | 8 ++++---- .../client-go/kubecli/migration_test.go | 4 ++-- tests/testsuite/namespace.go | 2 +- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go b/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go index a85a93506cfd..e20c6103d3ef 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go +++ b/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go @@ -1898,8 +1898,8 @@ func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Delete(arg0, a return _mr.mock.ctrl.RecordCall(_mr.mock, "Delete", arg0, arg1, arg2) } -func (_m *MockVirtualMachineInstanceMigrationInterface) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (*v120.VirtualMachineInstanceMigration, error) { - _s := []interface{}{name, pt, data} +func (_m *MockVirtualMachineInstanceMigrationInterface) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v12.PatchOptions, subresources ...string) (*v120.VirtualMachineInstanceMigration, error) { + _s := []interface{}{ctx, name, pt, data, opts} for _, _x := range subresources { _s = append(_s, _x) } @@ -1909,8 +1909,8 @@ func (_m *MockVirtualMachineInstanceMigrationInterface) Patch(name string, pt ty return ret0, ret1 } -func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Patch(arg0, arg1, arg2 interface{}, arg3 ...interface{}) *gomock.Call { - _s := append([]interface{}{arg0, arg1, arg2}, arg3...) +func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Patch(arg0, arg1, arg2, arg3, arg4 interface{}, arg5 ...interface{}) *gomock.Call { + _s := append([]interface{}{arg0, arg1, arg2, arg3, arg4}, arg5...) return _mr.mock.ctrl.RecordCall(_mr.mock, "Patch", _s...) } @@ -1925,15 +1925,15 @@ func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) UpdateStatus(a return _mr.mock.ctrl.RecordCall(_mr.mock, "UpdateStatus", arg0) } -func (_m *MockVirtualMachineInstanceMigrationInterface) PatchStatus(name string, pt types.PatchType, data []byte) (*v120.VirtualMachineInstanceMigration, error) { - ret := _m.ctrl.Call(_m, "PatchStatus", name, pt, data) +func (_m *MockVirtualMachineInstanceMigrationInterface) PatchStatus(ctx context.Context, name string, pt types.PatchType, data []byte, opts v12.PatchOptions) (*v120.VirtualMachineInstanceMigration, error) { + ret := _m.ctrl.Call(_m, "PatchStatus", ctx, name, pt, data, opts) ret0, _ := ret[0].(*v120.VirtualMachineInstanceMigration) ret1, _ := ret[1].(error) return ret0, ret1 } -func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) PatchStatus(arg0, arg1, arg2 interface{}) *gomock.Call { - return _mr.mock.ctrl.RecordCall(_mr.mock, "PatchStatus", arg0, arg1, arg2) +func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) PatchStatus(arg0, arg1, arg2, arg3, arg4 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCall(_mr.mock, "PatchStatus", arg0, arg1, arg2, arg3, arg4) } // Mock of KubeVirtInterface interface diff --git a/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go b/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go index 0e108a8815c2..f775ac45a546 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go +++ b/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go @@ -314,9 +314,9 @@ type VirtualMachineInstanceMigrationInterface interface { Create(ctx context.Context, migration *v1.VirtualMachineInstanceMigration, options metav1.CreateOptions) (*v1.VirtualMachineInstanceMigration, error) Update(ctx context.Context, virtualMachineInstanceMigration *v1.VirtualMachineInstanceMigration, opts metav1.UpdateOptions) (*v1.VirtualMachineInstanceMigration, error) Delete(ctx context.Context, name string, options metav1.DeleteOptions) error - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.VirtualMachineInstanceMigration, err error) + Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.VirtualMachineInstanceMigration, err error) UpdateStatus(*v1.VirtualMachineInstanceMigration) (*v1.VirtualMachineInstanceMigration, error) - PatchStatus(name string, pt types.PatchType, data []byte) (result *v1.VirtualMachineInstanceMigration, err error) + PatchStatus(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions) (result *v1.VirtualMachineInstanceMigration, err error) } type KubeVirtInterface interface { diff --git a/staging/src/kubevirt.io/client-go/kubecli/migration.go b/staging/src/kubevirt.io/client-go/kubecli/migration.go index c6fe4b844e65..ecad9686391f 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/migration.go +++ b/staging/src/kubevirt.io/client-go/kubecli/migration.go @@ -85,12 +85,12 @@ func (o *migration) List(ctx context.Context, options k8smetav1.ListOptions) (*v return newVmiMigrationList, err } -func (o *migration) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.VirtualMachineInstanceMigration, err error) { - return o.VirtualMachineInstanceMigrationInterface.Patch(context.Background(), name, pt, data, k8smetav1.PatchOptions{}, subresources...) +func (o *migration) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts k8smetav1.PatchOptions, subresources ...string) (result *v1.VirtualMachineInstanceMigration, err error) { + return o.VirtualMachineInstanceMigrationInterface.Patch(ctx, name, pt, data, opts, subresources...) } -func (o *migration) PatchStatus(name string, pt types.PatchType, data []byte) (result *v1.VirtualMachineInstanceMigration, err error) { - return o.Patch(name, pt, data, "status") +func (o *migration) PatchStatus(ctx context.Context, name string, pt types.PatchType, data []byte, opts k8smetav1.PatchOptions) (result *v1.VirtualMachineInstanceMigration, err error) { + return o.Patch(ctx, name, pt, data, opts, "status") } func (o *migration) UpdateStatus(vmim *v1.VirtualMachineInstanceMigration) (result *v1.VirtualMachineInstanceMigration, err error) { diff --git a/staging/src/kubevirt.io/client-go/kubecli/migration_test.go b/staging/src/kubevirt.io/client-go/kubecli/migration_test.go index b1138bd887fa..9fd1bad5a7ce 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/migration_test.go +++ b/staging/src/kubevirt.io/client-go/kubecli/migration_test.go @@ -156,8 +156,8 @@ var _ = Describe("Kubevirt Migration Client", func() { ghttp.RespondWithJSONEncoded(http.StatusOK, migration), )) - _, err = client.VirtualMachineInstanceMigration(k8sv1.NamespaceDefault).Patch(migration.Name, types.MergePatchType, - []byte("{\"spec\":{\"vmiName\":something}}")) + _, err = client.VirtualMachineInstanceMigration(k8sv1.NamespaceDefault).Patch(context.Background(), migration.Name, types.MergePatchType, + []byte("{\"spec\":{\"vmiName\":something}}"), k8smetav1.PatchOptions{}) Expect(server.ReceivedRequests()).To(HaveLen(1)) Expect(err).ToNot(HaveOccurred()) diff --git a/tests/testsuite/namespace.go b/tests/testsuite/namespace.go index 22474efe66c3..ffaa74252477 100644 --- a/tests/testsuite/namespace.go +++ b/tests/testsuite/namespace.go @@ -216,7 +216,7 @@ func CleanNamespaces() { util.PanicOnError(err) for _, migration := range migrations.Items { if controller.HasFinalizer(&migration, v1.VirtualMachineInstanceMigrationFinalizer) { - _, err := virtCli.VirtualMachineInstanceMigration(namespace).Patch(migration.Name, types.JSONPatchType, []byte("[{ \"op\": \"remove\", \"path\": \"/metadata/finalizers\" }]")) + _, err := virtCli.VirtualMachineInstanceMigration(namespace).Patch(context.Background(), migration.Name, types.JSONPatchType, []byte("[{ \"op\": \"remove\", \"path\": \"/metadata/finalizers\" }]"), metav1.PatchOptions{}) if !errors.IsNotFound(err) { util.PanicOnError(err) } From c8c04eedee3242460ae796aef480852e0e741cfd Mon Sep 17 00:00:00 2001 From: fossedihelm Date: Mon, 18 Mar 2024 12:21:49 +0100 Subject: [PATCH 7/8] feat: use common params for vmim.UpdateStatus vmim.UpdateStatus method does not allow to pass the context and UpdateOptions. In order to align the custom method signature with the generated one introduce the context and the UpdateOptions. This effort, once all the common methods' signatures are aligned with the generated ones, will converge in the deletion of the custom methods' implementations, embedding the generated interface. Also, removed duplicate metav1 import with different names. Signed-off-by: fossedihelm --- pkg/util/status/status.go | 2 +- pkg/util/status/status_test.go | 43 +++++++++---------- pkg/virt-controller/watch/migration_test.go | 20 ++++----- .../kubecli/generated_mock_kubevirt.go | 8 ++-- .../kubevirt.io/client-go/kubecli/kubevirt.go | 2 +- .../client-go/kubecli/migration.go | 4 +- 6 files changed, 39 insertions(+), 40 deletions(-) diff --git a/pkg/util/status/status.go b/pkg/util/status/status.go index 8041c055a2c6..67fe92a69e24 100644 --- a/pkg/util/status/status.go +++ b/pkg/util/status/status.go @@ -222,7 +222,7 @@ func (u *updater) updateStatusUnstructured(obj runtime.Object) (err error) { _, err = u.cli.ReplicaSet(a.GetNamespace()).UpdateStatus(oldObj) case *v1.VirtualMachineInstanceMigration: oldObj := obj.(*v1.VirtualMachineInstanceMigration) - _, err = u.cli.VirtualMachineInstanceMigration(a.GetNamespace()).UpdateStatus(oldObj) + _, err = u.cli.VirtualMachineInstanceMigration(a.GetNamespace()).UpdateStatus(context.Background(), oldObj, metav1.UpdateOptions{}) case *v1.KubeVirt: oldObj := obj.(*v1.KubeVirt) _, err = u.cli.KubeVirt(a.GetNamespace()).UpdateStatus(oldObj) diff --git a/pkg/util/status/status_test.go b/pkg/util/status/status_test.go index fac5162a7c80..88ea6977958e 100644 --- a/pkg/util/status/status_test.go +++ b/pkg/util/status/status_test.go @@ -9,7 +9,6 @@ import ( . "github.com/onsi/gomega" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - v12 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/types" @@ -92,8 +91,8 @@ var _ = Describe("Status", func() { Context("for PATCH operations", func() { It("should continuously use the /status subresource if no errors occur", func() { updater := NewVMStatusUpdater(virtClient) - patchOptions := v12.PatchOptions{} - vm := &v1.VirtualMachine{ObjectMeta: v12.ObjectMeta{Name: "test", ResourceVersion: "1"}, Status: v1.VirtualMachineStatus{Ready: true}} + patchOptions := metav1.PatchOptions{} + vm := &v1.VirtualMachine{ObjectMeta: metav1.ObjectMeta{Name: "test", ResourceVersion: "1"}, Status: v1.VirtualMachineStatus{Ready: true}} vmInterface.EXPECT().PatchStatus(context.Background(), vm.Name, types.JSONPatchType, []byte("test"), patchOptions).Return(vm, nil).Times(2) Expect(updater.PatchStatus(vm, types.JSONPatchType, []byte("test"), &patchOptions)).To(Succeed()) Expect(updater.PatchStatus(vm, types.JSONPatchType, []byte("test"), &patchOptions)).To(Succeed()) @@ -101,10 +100,10 @@ var _ = Describe("Status", func() { It("should fall back on a 404 error on the /status subresource to an ordinary update", func() { updater := NewVMStatusUpdater(virtClient) - vm := &v1.VirtualMachine{ObjectMeta: v12.ObjectMeta{Name: "test", ResourceVersion: "1"}, Status: v1.VirtualMachineStatus{Ready: true}} + vm := &v1.VirtualMachine{ObjectMeta: metav1.ObjectMeta{Name: "test", ResourceVersion: "1"}, Status: v1.VirtualMachineStatus{Ready: true}} newVM := vm.DeepCopy() newVM.SetResourceVersion("2") - patchOptions := v12.PatchOptions{} + patchOptions := metav1.PatchOptions{} vmInterface.EXPECT().PatchStatus(context.Background(), vm.Name, types.JSONPatchType, []byte("test"), patchOptions).Return(vm, errors.NewNotFound(schema.GroupResource{}, "something")).Times(1) vmInterface.EXPECT().Patch(context.Background(), vm.Name, types.JSONPatchType, []byte("test"), patchOptions).Return(newVM, nil).Times(2) Expect(updater.PatchStatus(vm, types.JSONPatchType, []byte("test"), &patchOptions)).To(Succeed()) @@ -113,8 +112,8 @@ var _ = Describe("Status", func() { It("should fall back on a 404 error on the /status subresource to an ordinary update but keep in mind that objects may have disappeared", func() { updater := NewVMStatusUpdater(virtClient) - patchOptions := v12.PatchOptions{} - vm := &v1.VirtualMachine{ObjectMeta: v12.ObjectMeta{Name: "test", ResourceVersion: "1"}, Status: v1.VirtualMachineStatus{Ready: true}} + patchOptions := metav1.PatchOptions{} + vm := &v1.VirtualMachine{ObjectMeta: metav1.ObjectMeta{Name: "test", ResourceVersion: "1"}, Status: v1.VirtualMachineStatus{Ready: true}} vmInterface.EXPECT().PatchStatus(context.Background(), vm.Name, types.JSONPatchType, []byte("test"), patchOptions).Return(nil, errors.NewNotFound(schema.GroupResource{}, "something")).Times(1) vmInterface.EXPECT().Patch(context.Background(), vm.Name, types.JSONPatchType, []byte("test"), patchOptions).Return(nil, errors.NewNotFound(schema.GroupResource{}, "something")).Times(1) Expect(updater.PatchStatus(vm, types.JSONPatchType, []byte("test"), &patchOptions)).ToNot(Succeed()) @@ -124,8 +123,8 @@ var _ = Describe("Status", func() { It("should fall back on a 404 error on the /status subresource to an ordinary update but keep in mind that the subresource may get enabled directly afterwards", func() { updater := NewVMStatusUpdater(virtClient) - patchOptions := v12.PatchOptions{} - vm := &v1.VirtualMachine{ObjectMeta: v12.ObjectMeta{Name: "test", ResourceVersion: "1"}, Status: v1.VirtualMachineStatus{Ready: true}} + patchOptions := metav1.PatchOptions{} + vm := &v1.VirtualMachine{ObjectMeta: metav1.ObjectMeta{Name: "test", ResourceVersion: "1"}, Status: v1.VirtualMachineStatus{Ready: true}} vmInterface.EXPECT().PatchStatus(context.Background(), vm.Name, types.JSONPatchType, []byte("test"), patchOptions).Return(nil, errors.NewNotFound(schema.GroupResource{}, "something")).Times(1) vmInterface.EXPECT().Patch(context.Background(), vm.Name, types.JSONPatchType, []byte("test"), patchOptions).Return(vm, nil).Times(1) Expect(updater.PatchStatus(vm, types.JSONPatchType, []byte("test"), &patchOptions)).ToNot(Succeed()) @@ -135,8 +134,8 @@ var _ = Describe("Status", func() { It("should stick with /status if an arbitrary error occurs", func() { updater := NewVMStatusUpdater(virtClient) - patchOptions := v12.PatchOptions{} - vm := &v1.VirtualMachine{ObjectMeta: v12.ObjectMeta{Name: "test", ResourceVersion: "1"}, Status: v1.VirtualMachineStatus{Ready: true}} + patchOptions := metav1.PatchOptions{} + vm := &v1.VirtualMachine{ObjectMeta: metav1.ObjectMeta{Name: "test", ResourceVersion: "1"}, Status: v1.VirtualMachineStatus{Ready: true}} vmInterface.EXPECT().PatchStatus(context.Background(), vm.Name, types.JSONPatchType, []byte("test"), patchOptions).Return(vm, fmt.Errorf("I am not a 404 error")).Times(1) Expect(updater.PatchStatus(vm, types.JSONPatchType, []byte("test"), &patchOptions)).ToNot(Succeed()) vmInterface.EXPECT().PatchStatus(context.Background(), vm.Name, types.JSONPatchType, []byte("test"), patchOptions).Return(vm, nil).Times(1) @@ -193,10 +192,10 @@ var _ = Describe("Status", func() { It("should stick with a normal update if the resource version did change", func() { updater := NewVMStatusUpdater(virtClient) updater.updater.subresource = false - vm := &v1.VirtualMachine{ObjectMeta: v12.ObjectMeta{Name: "test", ResourceVersion: "1"}, Status: v1.VirtualMachineStatus{Ready: true}} + vm := &v1.VirtualMachine{ObjectMeta: metav1.ObjectMeta{Name: "test", ResourceVersion: "1"}, Status: v1.VirtualMachineStatus{Ready: true}} newVM := vm.DeepCopy() newVM.SetResourceVersion("2") - patchOptions := v12.PatchOptions{} + patchOptions := metav1.PatchOptions{} vmInterface.EXPECT().Patch(context.Background(), vm.Name, types.JSONPatchType, []byte("test"), patchOptions).Return(newVM, nil).Times(2) Expect(updater.PatchStatus(vm, types.JSONPatchType, []byte("test"), &patchOptions)).To(Succeed()) Expect(updater.PatchStatus(vm, types.JSONPatchType, []byte("test"), &patchOptions)).To(Succeed()) @@ -205,10 +204,10 @@ var _ = Describe("Status", func() { It("should stick with a normal update if we get a 404 error", func() { updater := NewVMStatusUpdater(virtClient) updater.updater.subresource = false - vm := &v1.VirtualMachine{ObjectMeta: v12.ObjectMeta{Name: "test", ResourceVersion: "1"}, Status: v1.VirtualMachineStatus{Ready: true}} + vm := &v1.VirtualMachine{ObjectMeta: metav1.ObjectMeta{Name: "test", ResourceVersion: "1"}, Status: v1.VirtualMachineStatus{Ready: true}} newVM := vm.DeepCopy() newVM.SetResourceVersion("2") - patchOptions := v12.PatchOptions{} + patchOptions := metav1.PatchOptions{} vmInterface.EXPECT().Patch(context.Background(), vm.Name, types.JSONPatchType, []byte("test"), patchOptions).Return(nil, errors.NewNotFound(schema.GroupResource{}, "something")).Times(2) Expect(updater.PatchStatus(vm, types.JSONPatchType, []byte("test"), &patchOptions)).ToNot(Succeed()) Expect(updater.PatchStatus(vm, types.JSONPatchType, []byte("test"), &patchOptions)).ToNot(Succeed()) @@ -217,10 +216,10 @@ var _ = Describe("Status", func() { It("should stick with a normal update if we get an arbitrary error", func() { updater := NewVMStatusUpdater(virtClient) updater.updater.subresource = false - vm := &v1.VirtualMachine{ObjectMeta: v12.ObjectMeta{Name: "test", ResourceVersion: "1"}, Status: v1.VirtualMachineStatus{Ready: true}} + vm := &v1.VirtualMachine{ObjectMeta: metav1.ObjectMeta{Name: "test", ResourceVersion: "1"}, Status: v1.VirtualMachineStatus{Ready: true}} newVM := vm.DeepCopy() newVM.SetResourceVersion("2") - patchOptions := v12.PatchOptions{} + patchOptions := metav1.PatchOptions{} vmInterface.EXPECT().Patch(context.Background(), vm.Name, types.JSONPatchType, []byte("test"), patchOptions).Return(nil, fmt.Errorf("I am an arbitrary error")).Times(2) Expect(updater.PatchStatus(vm, types.JSONPatchType, []byte("test"), &patchOptions)).ToNot(Succeed()) Expect(updater.PatchStatus(vm, types.JSONPatchType, []byte("test"), &patchOptions)).ToNot(Succeed()) @@ -229,9 +228,9 @@ var _ = Describe("Status", func() { It("should fall back to /status if the status did not change and stick to it", func() { updater := NewVMStatusUpdater(virtClient) updater.updater.subresource = false - vm := &v1.VirtualMachine{ObjectMeta: v12.ObjectMeta{Name: "test", ResourceVersion: "1"}, Status: v1.VirtualMachineStatus{Ready: true}} + vm := &v1.VirtualMachine{ObjectMeta: metav1.ObjectMeta{Name: "test", ResourceVersion: "1"}, Status: v1.VirtualMachineStatus{Ready: true}} newVM := vm.DeepCopy() - patchOptions := v12.PatchOptions{} + patchOptions := metav1.PatchOptions{} vmInterface.EXPECT().Patch(context.Background(), vm.Name, types.JSONPatchType, []byte("test"), patchOptions).Return(newVM, nil).Times(1) vmInterface.EXPECT().PatchStatus(context.Background(), vm.Name, types.JSONPatchType, []byte("test"), patchOptions).Return(newVM, nil).Times(1) Expect(updater.PatchStatus(vm, types.JSONPatchType, []byte("test"), &patchOptions)).To(Succeed()) @@ -266,7 +265,7 @@ var _ = Describe("Status", func() { By("checking the VirtualMachineInstanceMigration resource") migrationUpdater := NewMigrationStatusUpdater(virtClient) migration := &v1.VirtualMachineInstanceMigration{Status: v1.VirtualMachineInstanceMigrationStatus{Phase: v1.MigrationPhaseUnset}} - migrationInterface.EXPECT().UpdateStatus(migration).Return(migration, nil).Times(1) + migrationInterface.EXPECT().UpdateStatus(context.Background(), migration, metav1.UpdateOptions{}).Return(migration, nil).Times(1) Expect(migrationUpdater.UpdateStatus(migration)).To(Succeed()) }) @@ -284,7 +283,7 @@ var _ = Describe("Status", func() { vmUpdater := NewVMStatusUpdater(virtClient) vmUpdater.updater.subresource = false vm := &v1.VirtualMachine{Status: v1.VirtualMachineStatus{Ready: true}} - vmInterface.EXPECT().Update(context.Background(), vm, v12.UpdateOptions{}).Return(vm, nil).Times(1) + vmInterface.EXPECT().Update(context.Background(), vm, metav1.UpdateOptions{}).Return(vm, nil).Times(1) Expect(vmUpdater.UpdateStatus(vm)).To(Succeed()) By("checking the VirtualMachineInstanceReplicaSet resource") @@ -298,7 +297,7 @@ var _ = Describe("Status", func() { migrationUpdater := NewMigrationStatusUpdater(virtClient) migrationUpdater.updater.subresource = false migration := &v1.VirtualMachineInstanceMigration{Status: v1.VirtualMachineInstanceMigrationStatus{Phase: v1.MigrationPhaseUnset}} - migrationInterface.EXPECT().Update(context.Background(), migration, v12.UpdateOptions{}).Return(migration, nil).Times(1) + migrationInterface.EXPECT().Update(context.Background(), migration, metav1.UpdateOptions{}).Return(migration, nil).Times(1) Expect(migrationUpdater.UpdateStatus(migration)).To(Succeed()) }) }) diff --git a/pkg/virt-controller/watch/migration_test.go b/pkg/virt-controller/watch/migration_test.go index a6018483777f..b4a7d8795907 100644 --- a/pkg/virt-controller/watch/migration_test.go +++ b/pkg/virt-controller/watch/migration_test.go @@ -184,48 +184,48 @@ var _ = Describe("Migration watcher", func() { } shouldExpectGenericMigrationUpdate := func() { - migrationInterface.EXPECT().UpdateStatus(gomock.Any()).DoAndReturn(func(arg interface{}) (interface{}, interface{}) { + migrationInterface.EXPECT().UpdateStatus(context.Background(), gomock.Any(), metav1.UpdateOptions{}).DoAndReturn(func(ctx context.Context, arg interface{}, opts metav1.UpdateOptions) (interface{}, interface{}) { return arg, nil }) } shouldExpectMigrationSchedulingState := func(migration *virtv1.VirtualMachineInstanceMigration) { - migrationInterface.EXPECT().UpdateStatus(gomock.Any()).DoAndReturn(func(arg interface{}) (interface{}, interface{}) { + migrationInterface.EXPECT().UpdateStatus(context.Background(), gomock.Any(), metav1.UpdateOptions{}).DoAndReturn(func(ctx context.Context, arg interface{}, opts metav1.UpdateOptions) (interface{}, interface{}) { Expect(arg.(*virtv1.VirtualMachineInstanceMigration).Status.Phase).To(Equal(virtv1.MigrationScheduling)) return arg, nil }) } shouldExpectMigrationPreparingTargetState := func(migration *virtv1.VirtualMachineInstanceMigration) { - migrationInterface.EXPECT().UpdateStatus(gomock.Any()).DoAndReturn(func(arg interface{}) (interface{}, interface{}) { + migrationInterface.EXPECT().UpdateStatus(context.Background(), gomock.Any(), metav1.UpdateOptions{}).DoAndReturn(func(ctx context.Context, arg interface{}, opts metav1.UpdateOptions) (interface{}, interface{}) { Expect(arg.(*virtv1.VirtualMachineInstanceMigration).Status.Phase).To(Equal(virtv1.MigrationPreparingTarget)) return arg, nil }) } shouldExpectMigrationTargetReadyState := func(migration *virtv1.VirtualMachineInstanceMigration) { - migrationInterface.EXPECT().UpdateStatus(gomock.Any()).DoAndReturn(func(arg interface{}) (interface{}, interface{}) { + migrationInterface.EXPECT().UpdateStatus(context.Background(), gomock.Any(), metav1.UpdateOptions{}).DoAndReturn(func(ctx context.Context, arg interface{}, opts metav1.UpdateOptions) (interface{}, interface{}) { Expect(arg.(*virtv1.VirtualMachineInstanceMigration).Status.Phase).To(Equal(virtv1.MigrationTargetReady)) return arg, nil }) } shouldExpectMigrationRunningState := func(migration *virtv1.VirtualMachineInstanceMigration) { - migrationInterface.EXPECT().UpdateStatus(gomock.Any()).DoAndReturn(func(arg interface{}) (interface{}, interface{}) { + migrationInterface.EXPECT().UpdateStatus(context.Background(), gomock.Any(), metav1.UpdateOptions{}).DoAndReturn(func(ctx context.Context, arg interface{}, opts metav1.UpdateOptions) (interface{}, interface{}) { Expect(arg.(*virtv1.VirtualMachineInstanceMigration).Status.Phase).To(Equal(virtv1.MigrationRunning)) return arg, nil }) } shouldExpectMigrationCompletedState := func(migration *virtv1.VirtualMachineInstanceMigration) { - migrationInterface.EXPECT().UpdateStatus(gomock.Any()).Do(func(arg interface{}) (interface{}, interface{}) { + migrationInterface.EXPECT().UpdateStatus(context.Background(), gomock.Any(), metav1.UpdateOptions{}).Do(func(ctx context.Context, arg interface{}, opts metav1.UpdateOptions) (interface{}, interface{}) { Expect(arg.(*virtv1.VirtualMachineInstanceMigration).Status.Phase).To(Equal(virtv1.MigrationSucceeded)) return arg, nil }) } shouldExpectMigrationStateUpdatedAndFinalizerRemoved := func(migration *virtv1.VirtualMachineInstanceMigration, mState *virtv1.VirtualMachineInstanceMigrationState) { - migrationInterface.EXPECT().UpdateStatus(gomock.Any()).Do(func(arg interface{}) (interface{}, interface{}) { + migrationInterface.EXPECT().UpdateStatus(context.Background(), gomock.Any(), metav1.UpdateOptions{}).Do(func(ctx context.Context, arg interface{}, opts metav1.UpdateOptions) (interface{}, interface{}) { Expect(arg.(*virtv1.VirtualMachineInstanceMigration).Status.MigrationState).To(Equal(mState)) Expect(arg.(*virtv1.VirtualMachineInstanceMigration).Finalizers).To(BeEmpty()) return arg, nil @@ -233,7 +233,7 @@ var _ = Describe("Migration watcher", func() { } shouldExpectMigrationFailedState := func(migration *virtv1.VirtualMachineInstanceMigration) { - migrationInterface.EXPECT().UpdateStatus(gomock.Any()).Do(func(arg interface{}) (interface{}, interface{}) { + migrationInterface.EXPECT().UpdateStatus(context.Background(), gomock.Any(), metav1.UpdateOptions{}).Do(func(ctx context.Context, arg interface{}, opts metav1.UpdateOptions) (interface{}, interface{}) { Expect(arg.(*virtv1.VirtualMachineInstanceMigration).Status.Phase).To(Equal(virtv1.MigrationFailed)) return arg, nil }) @@ -252,7 +252,7 @@ var _ = Describe("Migration watcher", func() { } shouldExpectMigrationCondition := func(migration *virtv1.VirtualMachineInstanceMigration, conditionType virtv1.VirtualMachineInstanceMigrationConditionType) { - migrationInterface.EXPECT().UpdateStatus(gomock.Any()).Do(func(arg interface{}) (interface{}, interface{}) { + migrationInterface.EXPECT().UpdateStatus(context.Background(), gomock.Any(), metav1.UpdateOptions{}).Do(func(ctx context.Context, arg interface{}, opts metav1.UpdateOptions) (interface{}, interface{}) { vmim := arg.(*virtv1.VirtualMachineInstanceMigration) ExpectWithOffset(1, vmim.Name).To(Equal(migration.Name)) @@ -1018,7 +1018,7 @@ var _ = Describe("Migration watcher", func() { finalizedMigrations++ shouldExpectMigrationDeletion("should-delete", finalizedMigrations-defaultFinalizedMigrationGarbageCollectionBuffer) } else { - migrationInterface.EXPECT().UpdateStatus(gomock.Any()).AnyTimes().DoAndReturn(func(arg interface{}) (interface{}, interface{}) { + migrationInterface.EXPECT().UpdateStatus(context.Background(), gomock.Any(), metav1.UpdateOptions{}).AnyTimes().DoAndReturn(func(ctx context.Context, arg interface{}, opts metav1.UpdateOptions) (interface{}, interface{}) { return arg, nil }) } diff --git a/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go b/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go index e20c6103d3ef..bcea2df4cca6 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go +++ b/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go @@ -1914,15 +1914,15 @@ func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Patch(arg0, ar return _mr.mock.ctrl.RecordCall(_mr.mock, "Patch", _s...) } -func (_m *MockVirtualMachineInstanceMigrationInterface) UpdateStatus(_param0 *v120.VirtualMachineInstanceMigration) (*v120.VirtualMachineInstanceMigration, error) { - ret := _m.ctrl.Call(_m, "UpdateStatus", _param0) +func (_m *MockVirtualMachineInstanceMigrationInterface) UpdateStatus(ctx context.Context, virtualMachineInstanceMigration *v120.VirtualMachineInstanceMigration, opts v12.UpdateOptions) (*v120.VirtualMachineInstanceMigration, error) { + ret := _m.ctrl.Call(_m, "UpdateStatus", ctx, virtualMachineInstanceMigration, opts) ret0, _ := ret[0].(*v120.VirtualMachineInstanceMigration) ret1, _ := ret[1].(error) return ret0, ret1 } -func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) UpdateStatus(arg0 interface{}) *gomock.Call { - return _mr.mock.ctrl.RecordCall(_mr.mock, "UpdateStatus", arg0) +func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) UpdateStatus(arg0, arg1, arg2 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCall(_mr.mock, "UpdateStatus", arg0, arg1, arg2) } func (_m *MockVirtualMachineInstanceMigrationInterface) PatchStatus(ctx context.Context, name string, pt types.PatchType, data []byte, opts v12.PatchOptions) (*v120.VirtualMachineInstanceMigration, error) { diff --git a/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go b/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go index f775ac45a546..0c18446f49d7 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go +++ b/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go @@ -315,7 +315,7 @@ type VirtualMachineInstanceMigrationInterface interface { Update(ctx context.Context, virtualMachineInstanceMigration *v1.VirtualMachineInstanceMigration, opts metav1.UpdateOptions) (*v1.VirtualMachineInstanceMigration, error) Delete(ctx context.Context, name string, options metav1.DeleteOptions) error Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.VirtualMachineInstanceMigration, err error) - UpdateStatus(*v1.VirtualMachineInstanceMigration) (*v1.VirtualMachineInstanceMigration, error) + UpdateStatus(ctx context.Context, virtualMachineInstanceMigration *v1.VirtualMachineInstanceMigration, opts metav1.UpdateOptions) (*v1.VirtualMachineInstanceMigration, error) PatchStatus(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions) (result *v1.VirtualMachineInstanceMigration, err error) } diff --git a/staging/src/kubevirt.io/client-go/kubecli/migration.go b/staging/src/kubevirt.io/client-go/kubecli/migration.go index ecad9686391f..74f85145c4d6 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/migration.go +++ b/staging/src/kubevirt.io/client-go/kubecli/migration.go @@ -93,8 +93,8 @@ func (o *migration) PatchStatus(ctx context.Context, name string, pt types.Patch return o.Patch(ctx, name, pt, data, opts, "status") } -func (o *migration) UpdateStatus(vmim *v1.VirtualMachineInstanceMigration) (result *v1.VirtualMachineInstanceMigration, err error) { - result, err = o.VirtualMachineInstanceMigrationInterface.UpdateStatus(context.Background(), vmim, k8smetav1.UpdateOptions{}) +func (o *migration) UpdateStatus(ctx context.Context, vmim *v1.VirtualMachineInstanceMigration, opts k8smetav1.UpdateOptions) (result *v1.VirtualMachineInstanceMigration, err error) { + result, err = o.VirtualMachineInstanceMigrationInterface.UpdateStatus(ctx, vmim, opts) result.SetGroupVersionKind(v1.VirtualMachineInstanceMigrationGroupVersionKind) return } From 108d5de7b18d6b2dd8eefaaab6f1b7a0a6336a41 Mon Sep 17 00:00:00 2001 From: fossedihelm Date: Mon, 18 Mar 2024 12:27:44 +0100 Subject: [PATCH 8/8] feat: embed generated client for VMIM interface The embed will provide us new methods (`DeleteCollection` and `Watch`). Signed-off-by: fossedihelm --- .../kubecli/generated_mock_kubevirt.go | 89 ++++++++++++------- .../kubevirt.io/client-go/kubecli/kubevirt.go | 8 +- 2 files changed, 56 insertions(+), 41 deletions(-) diff --git a/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go b/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go index bcea2df4cca6..dc17e73f9a64 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go +++ b/staging/src/kubevirt.io/client-go/kubecli/generated_mock_kubevirt.go @@ -1844,58 +1844,90 @@ func (_m *MockVirtualMachineInstanceMigrationInterface) EXPECT() *_MockVirtualMa return _m.recorder } -func (_m *MockVirtualMachineInstanceMigrationInterface) Get(ctx context.Context, name string, opts v12.GetOptions) (*v120.VirtualMachineInstanceMigration, error) { - ret := _m.ctrl.Call(_m, "Get", ctx, name, opts) +func (_m *MockVirtualMachineInstanceMigrationInterface) Create(ctx context.Context, virtualMachineInstanceMigration *v120.VirtualMachineInstanceMigration, opts v12.CreateOptions) (*v120.VirtualMachineInstanceMigration, error) { + ret := _m.ctrl.Call(_m, "Create", ctx, virtualMachineInstanceMigration, opts) ret0, _ := ret[0].(*v120.VirtualMachineInstanceMigration) ret1, _ := ret[1].(error) return ret0, ret1 } -func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Get(arg0, arg1, arg2 interface{}) *gomock.Call { - return _mr.mock.ctrl.RecordCall(_mr.mock, "Get", arg0, arg1, arg2) +func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Create(arg0, arg1, arg2 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCall(_mr.mock, "Create", arg0, arg1, arg2) } -func (_m *MockVirtualMachineInstanceMigrationInterface) List(ctx context.Context, opts v12.ListOptions) (*v120.VirtualMachineInstanceMigrationList, error) { - ret := _m.ctrl.Call(_m, "List", ctx, opts) - ret0, _ := ret[0].(*v120.VirtualMachineInstanceMigrationList) +func (_m *MockVirtualMachineInstanceMigrationInterface) Update(ctx context.Context, virtualMachineInstanceMigration *v120.VirtualMachineInstanceMigration, opts v12.UpdateOptions) (*v120.VirtualMachineInstanceMigration, error) { + ret := _m.ctrl.Call(_m, "Update", ctx, virtualMachineInstanceMigration, opts) + ret0, _ := ret[0].(*v120.VirtualMachineInstanceMigration) ret1, _ := ret[1].(error) return ret0, ret1 } -func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) List(arg0, arg1 interface{}) *gomock.Call { - return _mr.mock.ctrl.RecordCall(_mr.mock, "List", arg0, arg1) +func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Update(arg0, arg1, arg2 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCall(_mr.mock, "Update", arg0, arg1, arg2) } -func (_m *MockVirtualMachineInstanceMigrationInterface) Create(ctx context.Context, migration *v120.VirtualMachineInstanceMigration, options v12.CreateOptions) (*v120.VirtualMachineInstanceMigration, error) { - ret := _m.ctrl.Call(_m, "Create", ctx, migration, options) +func (_m *MockVirtualMachineInstanceMigrationInterface) UpdateStatus(ctx context.Context, virtualMachineInstanceMigration *v120.VirtualMachineInstanceMigration, opts v12.UpdateOptions) (*v120.VirtualMachineInstanceMigration, error) { + ret := _m.ctrl.Call(_m, "UpdateStatus", ctx, virtualMachineInstanceMigration, opts) ret0, _ := ret[0].(*v120.VirtualMachineInstanceMigration) ret1, _ := ret[1].(error) return ret0, ret1 } -func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Create(arg0, arg1, arg2 interface{}) *gomock.Call { - return _mr.mock.ctrl.RecordCall(_mr.mock, "Create", arg0, arg1, arg2) +func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) UpdateStatus(arg0, arg1, arg2 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCall(_mr.mock, "UpdateStatus", arg0, arg1, arg2) } -func (_m *MockVirtualMachineInstanceMigrationInterface) Update(ctx context.Context, virtualMachineInstanceMigration *v120.VirtualMachineInstanceMigration, opts v12.UpdateOptions) (*v120.VirtualMachineInstanceMigration, error) { - ret := _m.ctrl.Call(_m, "Update", ctx, virtualMachineInstanceMigration, opts) +func (_m *MockVirtualMachineInstanceMigrationInterface) Delete(ctx context.Context, name string, opts v12.DeleteOptions) error { + ret := _m.ctrl.Call(_m, "Delete", ctx, name, opts) + ret0, _ := ret[0].(error) + return ret0 +} + +func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Delete(arg0, arg1, arg2 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCall(_mr.mock, "Delete", arg0, arg1, arg2) +} + +func (_m *MockVirtualMachineInstanceMigrationInterface) DeleteCollection(ctx context.Context, opts v12.DeleteOptions, listOpts v12.ListOptions) error { + ret := _m.ctrl.Call(_m, "DeleteCollection", ctx, opts, listOpts) + ret0, _ := ret[0].(error) + return ret0 +} + +func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) DeleteCollection(arg0, arg1, arg2 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCall(_mr.mock, "DeleteCollection", arg0, arg1, arg2) +} + +func (_m *MockVirtualMachineInstanceMigrationInterface) Get(ctx context.Context, name string, opts v12.GetOptions) (*v120.VirtualMachineInstanceMigration, error) { + ret := _m.ctrl.Call(_m, "Get", ctx, name, opts) ret0, _ := ret[0].(*v120.VirtualMachineInstanceMigration) ret1, _ := ret[1].(error) return ret0, ret1 } -func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Update(arg0, arg1, arg2 interface{}) *gomock.Call { - return _mr.mock.ctrl.RecordCall(_mr.mock, "Update", arg0, arg1, arg2) +func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Get(arg0, arg1, arg2 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCall(_mr.mock, "Get", arg0, arg1, arg2) } -func (_m *MockVirtualMachineInstanceMigrationInterface) Delete(ctx context.Context, name string, options v12.DeleteOptions) error { - ret := _m.ctrl.Call(_m, "Delete", ctx, name, options) - ret0, _ := ret[0].(error) - return ret0 +func (_m *MockVirtualMachineInstanceMigrationInterface) List(ctx context.Context, opts v12.ListOptions) (*v120.VirtualMachineInstanceMigrationList, error) { + ret := _m.ctrl.Call(_m, "List", ctx, opts) + ret0, _ := ret[0].(*v120.VirtualMachineInstanceMigrationList) + ret1, _ := ret[1].(error) + return ret0, ret1 } -func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Delete(arg0, arg1, arg2 interface{}) *gomock.Call { - return _mr.mock.ctrl.RecordCall(_mr.mock, "Delete", arg0, arg1, arg2) +func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) List(arg0, arg1 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCall(_mr.mock, "List", arg0, arg1) +} + +func (_m *MockVirtualMachineInstanceMigrationInterface) Watch(ctx context.Context, opts v12.ListOptions) (watch.Interface, error) { + ret := _m.ctrl.Call(_m, "Watch", ctx, opts) + ret0, _ := ret[0].(watch.Interface) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Watch(arg0, arg1 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCall(_mr.mock, "Watch", arg0, arg1) } func (_m *MockVirtualMachineInstanceMigrationInterface) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v12.PatchOptions, subresources ...string) (*v120.VirtualMachineInstanceMigration, error) { @@ -1914,17 +1946,6 @@ func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) Patch(arg0, ar return _mr.mock.ctrl.RecordCall(_mr.mock, "Patch", _s...) } -func (_m *MockVirtualMachineInstanceMigrationInterface) UpdateStatus(ctx context.Context, virtualMachineInstanceMigration *v120.VirtualMachineInstanceMigration, opts v12.UpdateOptions) (*v120.VirtualMachineInstanceMigration, error) { - ret := _m.ctrl.Call(_m, "UpdateStatus", ctx, virtualMachineInstanceMigration, opts) - ret0, _ := ret[0].(*v120.VirtualMachineInstanceMigration) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -func (_mr *_MockVirtualMachineInstanceMigrationInterfaceRecorder) UpdateStatus(arg0, arg1, arg2 interface{}) *gomock.Call { - return _mr.mock.ctrl.RecordCall(_mr.mock, "UpdateStatus", arg0, arg1, arg2) -} - func (_m *MockVirtualMachineInstanceMigrationInterface) PatchStatus(ctx context.Context, name string, pt types.PatchType, data []byte, opts v12.PatchOptions) (*v120.VirtualMachineInstanceMigration, error) { ret := _m.ctrl.Call(_m, "PatchStatus", ctx, name, pt, data, opts) ret0, _ := ret[0].(*v120.VirtualMachineInstanceMigration) diff --git a/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go b/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go index 0c18446f49d7..09ab72b732df 100644 --- a/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go +++ b/staging/src/kubevirt.io/client-go/kubecli/kubevirt.go @@ -309,13 +309,7 @@ type VirtualMachineInterface interface { } type VirtualMachineInstanceMigrationInterface interface { - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.VirtualMachineInstanceMigration, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.VirtualMachineInstanceMigrationList, error) - Create(ctx context.Context, migration *v1.VirtualMachineInstanceMigration, options metav1.CreateOptions) (*v1.VirtualMachineInstanceMigration, error) - Update(ctx context.Context, virtualMachineInstanceMigration *v1.VirtualMachineInstanceMigration, opts metav1.UpdateOptions) (*v1.VirtualMachineInstanceMigration, error) - Delete(ctx context.Context, name string, options metav1.DeleteOptions) error - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.VirtualMachineInstanceMigration, err error) - UpdateStatus(ctx context.Context, virtualMachineInstanceMigration *v1.VirtualMachineInstanceMigration, opts metav1.UpdateOptions) (*v1.VirtualMachineInstanceMigration, error) + kvcorev1.VirtualMachineInstanceMigrationInterface PatchStatus(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions) (result *v1.VirtualMachineInstanceMigration, err error) }