Skip to content

Commit

Permalink
Merge pull request kubevirt#8908 from orelmisan/vmicontext
Browse files Browse the repository at this point in the history
client-go, VMI: Add context to applicable methods
  • Loading branch information
kubevirt-bot authored Jan 3, 2023
2 parents bda3d50 + 3a03ecd commit 6f97adc
Show file tree
Hide file tree
Showing 107 changed files with 1,016 additions and 967 deletions.
3 changes: 2 additions & 1 deletion pkg/util/lookup/lookup.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package lookup

import (
"context"
"fmt"

v1 "k8s.io/api/core/v1"
Expand All @@ -16,7 +17,7 @@ func VirtualMachinesOnNode(cli kubecli.KubevirtClient, nodeName string) ([]*virt
if err != nil {
return nil, err
}
list, err := cli.VirtualMachineInstance(v1.NamespaceAll).List(&metav1.ListOptions{
list, err := cli.VirtualMachineInstance(v1.NamespaceAll).List(context.Background(), &metav1.ListOptions{
LabelSelector: labelSelector.String(),
})

Expand Down
8 changes: 5 additions & 3 deletions pkg/util/lookup/lookup_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package lookup

import (
"context"

"github.com/golang/mock/gomock"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
Expand Down Expand Up @@ -42,7 +44,7 @@ var _ = Describe("Lookup", func() {
vmi2 := createVirtualMachineInstance("vmi2", "node01", virtv1.Failed)
vmis := []virtv1.VirtualMachineInstance{*vmi1, *vmi2}

vmiInterface.EXPECT().List(gomock.Any()).Return(&virtv1.VirtualMachineInstanceList{
vmiInterface.EXPECT().List(context.Background(), gomock.Any()).Return(&virtv1.VirtualMachineInstanceList{
Items: vmis,
}, nil)

Expand All @@ -56,7 +58,7 @@ var _ = Describe("Lookup", func() {
vmi2 := createVirtualMachineInstance("vmi2", "node01", virtv1.Failed)
vmis := []virtv1.VirtualMachineInstance{*vmi1, *vmi2}

vmiInterface.EXPECT().List(gomock.Any()).Return(&virtv1.VirtualMachineInstanceList{
vmiInterface.EXPECT().List(context.Background(), gomock.Any()).Return(&virtv1.VirtualMachineInstanceList{
Items: vmis,
}, nil)

Expand All @@ -69,7 +71,7 @@ var _ = Describe("Lookup", func() {
DescribeTable("should filter out nonactive vmis", func(phase virtv1.VirtualMachineInstancePhase) {
vmi := createVirtualMachineInstance("vmi2", "node01", phase)

vmiInterface.EXPECT().List(gomock.Any()).Return(&virtv1.VirtualMachineInstanceList{
vmiInterface.EXPECT().List(context.Background(), gomock.Any()).Return(&virtv1.VirtualMachineInstanceList{
Items: []virtv1.VirtualMachineInstance{*vmi},
}, nil)

Expand Down
10 changes: 5 additions & 5 deletions pkg/virt-api/rest/subresource.go
Original file line number Diff line number Diff line change
Expand Up @@ -404,7 +404,7 @@ func (app *SubresourceAPIApp) RestartVMRequestHandler(request *restful.Request,
return
}

vmi, err := app.virtCli.VirtualMachineInstance(namespace).Get(name, &k8smetav1.GetOptions{})
vmi, err := app.virtCli.VirtualMachineInstance(namespace).Get(context.Background(), name, &k8smetav1.GetOptions{})
if err != nil {
if !errors.IsNotFound(err) {
writeError(errors.NewInternalError(err), response)
Expand Down Expand Up @@ -501,7 +501,7 @@ func (app *SubresourceAPIApp) StartVMRequestHandler(request *restful.Request, re
return
}

vmi, err := app.virtCli.VirtualMachineInstance(namespace).Get(name, &k8smetav1.GetOptions{})
vmi, err := app.virtCli.VirtualMachineInstance(namespace).Get(context.Background(), name, &k8smetav1.GetOptions{})
if err != nil {
if !errors.IsNotFound(err) {
writeError(errors.NewInternalError(err), response)
Expand Down Expand Up @@ -642,7 +642,7 @@ func (app *SubresourceAPIApp) StopVMRequestHandler(request *restful.Request, res
}

hasVMI := true
vmi, err := app.virtCli.VirtualMachineInstance(namespace).Get(name, &k8smetav1.GetOptions{})
vmi, err := app.virtCli.VirtualMachineInstance(namespace).Get(context.Background(), name, &k8smetav1.GetOptions{})
if err != nil && errors.IsNotFound(err) {
hasVMI = false
} else if err != nil {
Expand Down Expand Up @@ -857,7 +857,7 @@ func (app *SubresourceAPIApp) fetchVirtualMachine(name string, namespace string)
// FetchVirtualMachineInstance by namespace and name
func (app *SubresourceAPIApp) FetchVirtualMachineInstance(namespace, name string) (*v1.VirtualMachineInstance, *errors.StatusError) {

vmi, err := app.virtCli.VirtualMachineInstance(namespace).Get(name, &k8smetav1.GetOptions{})
vmi, err := app.virtCli.VirtualMachineInstance(namespace).Get(context.Background(), name, &k8smetav1.GetOptions{})
if err != nil {
if errors.IsNotFound(err) {
return nil, errors.NewNotFound(v1.Resource("virtualmachineinstance"), name)
Expand All @@ -881,7 +881,7 @@ func (app *SubresourceAPIApp) FetchVirtualMachineInstanceForVM(namespace, name s
return nil, errors.NewConflict(v1.Resource("virtualmachine"), vm.Name, fmt.Errorf("VMI is not started"))
}

vmi, err := app.virtCli.VirtualMachineInstance(namespace).Get(name, &k8smetav1.GetOptions{})
vmi, err := app.virtCli.VirtualMachineInstance(namespace).Get(context.Background(), name, &k8smetav1.GetOptions{})
if err != nil {
if errors.IsNotFound(err) {
return nil, errors.NewNotFound(v1.Resource("virtualmachineinstance"), name)
Expand Down
71 changes: 36 additions & 35 deletions pkg/virt-api/rest/subresource_test.go

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
package admitters

import (
"context"
"encoding/json"
"fmt"

Expand Down Expand Up @@ -91,7 +92,7 @@ func (admitter *MigrationCreateAdmitter) Admit(ar *admissionv1.AdmissionReview)
return webhookutils.ToAdmissionResponse(causes)
}

vmi, err := admitter.VirtClient.VirtualMachineInstance(migration.Namespace).Get(migration.Spec.VMIName, &metav1.GetOptions{})
vmi, err := admitter.VirtClient.VirtualMachineInstance(migration.Namespace).Get(context.Background(), migration.Spec.VMIName, &metav1.GetOptions{})
if errors.IsNotFound(err) {
// ensure VMI exists for the migration
return webhookutils.ToAdmissionResponseError(fmt.Errorf("the VMI \"%s/%s\" does not exist", migration.Namespace, migration.Spec.VMIName))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
package admitters

import (
"context"
"encoding/json"

"github.com/golang/mock/gomock"
Expand Down Expand Up @@ -93,7 +94,7 @@ var _ = Describe("Validating MigrationCreate Admitter", func() {
VMIName: vmi.Name,
},
}
mockVMIClient.EXPECT().Get(inFlightMigration.Spec.VMIName, gomock.Any()).Return(vmi, nil)
mockVMIClient.EXPECT().Get(context.Background(), inFlightMigration.Spec.VMIName, gomock.Any()).Return(vmi, nil)
migrationInterface.EXPECT().List(gomock.Any()).Return(kubecli.NewMigrationList(inFlightMigration), nil).AnyTimes()

migration := v1.VirtualMachineInstanceMigration{
Expand Down Expand Up @@ -163,7 +164,7 @@ var _ = Describe("Validating MigrationCreate Admitter", func() {
It("should accept valid Migration spec on create", func() {
vmi := api.NewMinimalVMI("testvmimigrate1")

mockVMIClient.EXPECT().Get(vmi.Name, gomock.Any()).Return(vmi, nil)
mockVMIClient.EXPECT().Get(context.Background(), vmi.Name, gomock.Any()).Return(vmi, nil)

migration := v1.VirtualMachineInstanceMigration{
ObjectMeta: metav1.ObjectMeta{
Expand Down Expand Up @@ -198,7 +199,7 @@ var _ = Describe("Validating MigrationCreate Admitter", func() {
Failed: false,
}

mockVMIClient.EXPECT().Get(vmi.Name, gomock.Any()).Return(vmi, nil)
mockVMIClient.EXPECT().Get(context.Background(), vmi.Name, gomock.Any()).Return(vmi, nil)

migration := v1.VirtualMachineInstanceMigration{
ObjectMeta: metav1.ObjectMeta{
Expand Down Expand Up @@ -229,7 +230,7 @@ var _ = Describe("Validating MigrationCreate Admitter", func() {
vmi := api.NewMinimalVMI("testmigratevmi3")
vmi.Status.Phase = v1.Succeeded

mockVMIClient.EXPECT().Get(vmi.Name, gomock.Any()).Return(vmi, nil)
mockVMIClient.EXPECT().Get(context.Background(), vmi.Name, gomock.Any()).Return(vmi, nil)

migration := v1.VirtualMachineInstanceMigration{
ObjectMeta: metav1.ObjectMeta{
Expand Down Expand Up @@ -272,7 +273,7 @@ var _ = Describe("Validating MigrationCreate Admitter", func() {
},
}

mockVMIClient.EXPECT().Get(vmi.Name, gomock.Any()).Return(vmi, nil)
mockVMIClient.EXPECT().Get(context.Background(), vmi.Name, gomock.Any()).Return(vmi, nil)

migration := v1.VirtualMachineInstanceMigration{
ObjectMeta: metav1.ObjectMeta{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ func (admitter *PodEvictionAdmitter) Admit(ar *admissionv1.AdmissionReview) *adm
return validating_webhooks.NewPassingAdmissionResponse()
}

vmi, err := admitter.VirtClient.VirtualMachineInstance(ar.Request.Namespace).Get(domainName, &metav1.GetOptions{})
vmi, err := admitter.VirtClient.VirtualMachineInstance(ar.Request.Namespace).Get(context.Background(), domainName, &metav1.GetOptions{})
if err != nil {
return denied(fmt.Sprintf("kubevirt failed getting the vmi: %s", err.Error()))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
package admitters

import (
"context"
"fmt"
"net/http"

Expand Down Expand Up @@ -146,7 +147,7 @@ var _ = Describe("Pod eviction admitter", func() {
return true, pod, nil
})

vmiClient.EXPECT().Get(vmi.Name, &metav1.GetOptions{}).Return(vmi, nil)
vmiClient.EXPECT().Get(context.Background(), vmi.Name, &metav1.GetOptions{}).Return(vmi, nil)

data := fmt.Sprintf(`[{ "op": "add", "path": "/status/evacuationNodeName", "value": "%s" }]`, nodeName)
vmiClient.
Expand Down Expand Up @@ -201,7 +202,7 @@ var _ = Describe("Pod eviction admitter", func() {
return true, pod, nil
})

vmiClient.EXPECT().Get(vmi.Name, &metav1.GetOptions{}).Return(vmi, nil)
vmiClient.EXPECT().Get(context.Background(), vmi.Name, &metav1.GetOptions{}).Return(vmi, nil)

data := fmt.Sprintf(`[{ "op": "add", "path": "/status/evacuationNodeName", "value": "%s" }]`, nodeName)
vmiClient.
Expand Down Expand Up @@ -262,7 +263,7 @@ var _ = Describe("Pod eviction admitter", func() {
&metav1.PatchOptions{}).
Return(nil, nil)
}
vmiClient.EXPECT().Get(vmi.Name, &metav1.GetOptions{}).Return(vmi, nil)
vmiClient.EXPECT().Get(context.Background(), vmi.Name, &metav1.GetOptions{}).Return(vmi, nil)

resp := podEvictionAdmitter.Admit(ar)
Expect(resp.Allowed).To(BeTrue())
Expand Down Expand Up @@ -334,10 +335,10 @@ var _ = Describe("Pod eviction admitter", func() {
return true, pod, nil
})

vmiClient.EXPECT().Get(vmi.Name, &metav1.GetOptions{}).Return(vmi, nil)
vmiClient.EXPECT().Get(context.Background(), vmi.Name, &metav1.GetOptions{}).Return(vmi, nil)

if markVMI {
vmiClient.EXPECT().Update(gomock.Any()).Return(nil, nil).AnyTimes()
vmiClient.EXPECT().Update(context.Background(), gomock.Any()).Return(nil, nil).AnyTimes()
}

resp := podEvictionAdmitter.Admit(ar)
Expand Down Expand Up @@ -454,7 +455,7 @@ var _ = Describe("Pod eviction admitter", func() {
&metav1.PatchOptions{}).
Return(nil, nil)

vmiClient.EXPECT().Get(vmi.Name, &metav1.GetOptions{}).Return(vmi, nil)
vmiClient.EXPECT().Get(context.Background(), vmi.Name, &metav1.GetOptions{}).Return(vmi, nil)

resp := podEvictionAdmitter.Admit(ar)
Expect(resp.Allowed).To(BeTrue())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -376,7 +376,7 @@ func (admitter *VMsAdmitter) validateVolumeRequests(vm *v1.VirtualMachine) ([]me
if vm.Status.Ready {
var err error

vmi, err = admitter.VirtClient.VirtualMachineInstance(vm.Namespace).Get(vm.Name, &metav1.GetOptions{})
vmi, err = admitter.VirtClient.VirtualMachineInstance(vm.Namespace).Get(context.Background(), vm.Name, &metav1.GetOptions{})
if err != nil && !errors.IsNotFound(err) {
return nil, err
} else if err == nil && vmi.DeletionTimestamp == nil {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
package admitters

import (
"context"
"encoding/base64"
"encoding/json"
"fmt"
Expand Down Expand Up @@ -216,7 +217,7 @@ var _ = Describe("Validating VM Admitter", func() {
}

virtClient.EXPECT().VirtualMachineInstance(gomock.Any()).Return(mockVMIClient)
mockVMIClient.EXPECT().Get(gomock.Any(), gomock.Any()).Return(vmi, nil)
mockVMIClient.EXPECT().Get(context.Background(), gomock.Any(), gomock.Any()).Return(vmi, nil)
resp := vmsAdmitter.Admit(ar)
Expect(resp.Allowed).To(BeFalse())
},
Expand Down Expand Up @@ -329,7 +330,7 @@ var _ = Describe("Validating VM Admitter", func() {
})

virtClient.EXPECT().VirtualMachineInstance(gomock.Any()).Return(mockVMIClient)
mockVMIClient.EXPECT().Get(gomock.Any(), gomock.Any()).Return(vmi, nil)
mockVMIClient.EXPECT().Get(context.Background(), gomock.Any(), gomock.Any()).Return(vmi, nil)
resp := admitVm(vmsAdmitter, vm)
Expect(resp.Allowed).To(Equal(isValid))
},
Expand Down
13 changes: 7 additions & 6 deletions pkg/virt-controller/watch/node_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package watch

import (
"context"
"encoding/json"
"fmt"
"strings"
Expand Down Expand Up @@ -154,7 +155,7 @@ var _ = Describe("Node controller with", func() {
return true, nil, nil
})

vmiInterface.EXPECT().List(gomock.Any()).Return(&virtv1.VirtualMachineInstanceList{}, nil)
vmiInterface.EXPECT().List(context.Background(), gomock.Any()).Return(&virtv1.VirtualMachineInstanceList{}, nil)

controller.Execute()
testutils.ExpectEvent(recorder, NodeUnresponsiveReason)
Expand Down Expand Up @@ -204,7 +205,7 @@ var _ = Describe("Node controller with", func() {
return true, &k8sv1.PodList{}, nil
})

vmiInterface.EXPECT().List(gomock.Any()).Return(&virtv1.VirtualMachineInstanceList{Items: []virtv1.VirtualMachineInstance{*vmi}}, nil)
vmiInterface.EXPECT().List(context.Background(), gomock.Any()).Return(&virtv1.VirtualMachineInstanceList{Items: []virtv1.VirtualMachineInstance{*vmi}}, nil)
vmiInterface.EXPECT().Patch(vmi.Name, types.JSONPatchType, gomock.Any(), &v1.PatchOptions{})

controller.Execute()
Expand Down Expand Up @@ -238,7 +239,7 @@ var _ = Describe("Node controller with", func() {
return true, &k8sv1.PodList{}, nil
})

vmiInterface.EXPECT().List(gomock.Any()).Return(&virtv1.VirtualMachineInstanceList{Items: []virtv1.VirtualMachineInstance{*vmi}}, nil)
vmiInterface.EXPECT().List(context.Background(), gomock.Any()).Return(&virtv1.VirtualMachineInstanceList{Items: []virtv1.VirtualMachineInstance{*vmi}}, nil)
vmiInterface.EXPECT().Patch(vmi.Name, types.JSONPatchType, gomock.Any(), &v1.PatchOptions{})

controller.Execute()
Expand All @@ -259,7 +260,7 @@ var _ = Describe("Node controller with", func() {
return true, &k8sv1.PodList{}, nil
})

vmiInterface.EXPECT().List(gomock.Any()).Return(&virtv1.VirtualMachineInstanceList{Items: []virtv1.VirtualMachineInstance{*vmi}}, nil)
vmiInterface.EXPECT().List(context.Background(), gomock.Any()).Return(&virtv1.VirtualMachineInstanceList{Items: []virtv1.VirtualMachineInstance{*vmi}}, nil)
vmiInterface.EXPECT().Patch(vmi.Name, types.JSONPatchType, gomock.Any(), &v1.PatchOptions{})

controller.Execute()
Expand All @@ -280,7 +281,7 @@ var _ = Describe("Node controller with", func() {
return true, &k8sv1.PodList{}, nil
})

vmiInterface.EXPECT().List(gomock.Any()).Return(&virtv1.VirtualMachineInstanceList{Items: []virtv1.VirtualMachineInstance{*vmi}}, nil)
vmiInterface.EXPECT().List(context.Background(), gomock.Any()).Return(&virtv1.VirtualMachineInstanceList{Items: []virtv1.VirtualMachineInstance{*vmi}}, nil)
vmiInterface.EXPECT().Patch(vmi.Name, types.JSONPatchType, gomock.Any(), &v1.PatchOptions{})

controller.Execute()
Expand All @@ -301,7 +302,7 @@ var _ = Describe("Node controller with", func() {
return true, &k8sv1.PodList{Items: []k8sv1.Pod{*NewUnhealthyPodForVirtualMachine("whatever", vmi)}}, nil
})

vmiInterface.EXPECT().List(gomock.Any()).Return(&virtv1.VirtualMachineInstanceList{Items: []virtv1.VirtualMachineInstance{*vmi}}, nil)
vmiInterface.EXPECT().List(context.Background(), gomock.Any()).Return(&virtv1.VirtualMachineInstanceList{Items: []virtv1.VirtualMachineInstance{*vmi}}, nil)
vmiInterface.EXPECT().Patch(vmi.Name, types.JSONPatchType, gomock.Any(), &v1.PatchOptions{})

controller.Execute()
Expand Down
2 changes: 1 addition & 1 deletion pkg/virt-controller/watch/pool.go
Original file line number Diff line number Diff line change
Expand Up @@ -870,7 +870,7 @@ func (c *PoolController) proactiveUpdate(pool *poolv1.VirtualMachinePool, vmUpda
}
switch updateType {
case proactiveUpdateTypeRestart:
err := c.clientset.VirtualMachineInstance(vm.ObjectMeta.Namespace).Delete(vmi.ObjectMeta.Name, &v1.DeleteOptions{})
err := c.clientset.VirtualMachineInstance(vm.ObjectMeta.Namespace).Delete(context.Background(), vmi.ObjectMeta.Name, &v1.DeleteOptions{})
if err != nil {
c.recorder.Eventf(pool, k8score.EventTypeWarning, FailedUpdateVirtualMachineReason, "Error proactively updating VM %s/%s by deleting outdated VMI: %v", vm.Namespace, vm.Name, err)
errChan <- err
Expand Down
5 changes: 3 additions & 2 deletions pkg/virt-controller/watch/pool_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
package watch

import (
"context"
"encoding/json"
"fmt"
"time"
Expand Down Expand Up @@ -295,7 +296,7 @@ var _ = Describe("Pool", func() {

expectControllerRevisionCreation(newPoolRevision)

vmiInterface.EXPECT().Delete(gomock.Any(), gomock.Any()).Times(0)
vmiInterface.EXPECT().Delete(context.Background(), gomock.Any(), gomock.Any()).Times(0)
vmInterface.EXPECT().Update(gomock.Any()).MaxTimes(1).Do(func(arg interface{}) {
newVM := arg.(*v1.VirtualMachine)
revisionName := newVM.Labels[virtv1.VirtualMachinePoolRevisionName]
Expand Down Expand Up @@ -358,7 +359,7 @@ var _ = Describe("Pool", func() {

expectControllerRevisionCreation(newPoolRevision)

vmiInterface.EXPECT().Delete(gomock.Any(), gomock.Any()).Times(1).Return(nil)
vmiInterface.EXPECT().Delete(context.Background(), gomock.Any(), gomock.Any()).Times(1).Return(nil)

controller.Execute()

Expand Down
Loading

0 comments on commit 6f97adc

Please sign in to comment.