Skip to content

Commit

Permalink
fix: revert dropping wrapper functions for VMI
Browse files Browse the repository at this point in the history
Generated client common methods does not return the
GroupVersionKind of the resource.
This is caused by kubernetes/client-go#541
and causes the goveralls job to constantly fails.
While working of how to permanently fix it, let's reintroduce the
explicit groupVersionKind set.

Signed-off-by: fossedihelm <ffossemo@redhat.com>
(cherry picked from commit ae56ae3)
  • Loading branch information
fossedihelm committed Apr 30, 2024
1 parent 432c9cd commit 4701427
Showing 1 changed file with 40 additions and 0 deletions.
40 changes: 40 additions & 0 deletions staging/src/kubevirt.io/client-go/kubecli/vmi.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ import (
"github.com/gorilla/websocket"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/watch"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"

Expand Down Expand Up @@ -286,6 +288,44 @@ func (v *vmis) Unpause(ctx context.Context, name string, unpauseOptions *v1.Unpa
return v.restClient.Put().AbsPath(uri).Body(body).Do(ctx).Error()
}

func (v *vmis) Get(ctx context.Context, name string, options metav1.GetOptions) (vmi *v1.VirtualMachineInstance, err error) {
vmi, err = v.VirtualMachineInstanceInterface.Get(ctx, name, options)
vmi.SetGroupVersionKind(v1.VirtualMachineInstanceGroupVersionKind)
return
}

func (v *vmis) List(ctx context.Context, options metav1.ListOptions) (vmiList *v1.VirtualMachineInstanceList, err error) {
vmiList, err = v.VirtualMachineInstanceInterface.List(ctx, options)
for i := range vmiList.Items {
vmiList.Items[i].SetGroupVersionKind(v1.VirtualMachineInstanceGroupVersionKind)
}
return
}

func (v *vmis) Create(ctx context.Context, vmi *v1.VirtualMachineInstance, opts metav1.CreateOptions) (result *v1.VirtualMachineInstance, err error) {
result, err = v.VirtualMachineInstanceInterface.Create(ctx, vmi, opts)
result.SetGroupVersionKind(v1.VirtualMachineInstanceGroupVersionKind)
return
}

func (v *vmis) Update(ctx context.Context, vmi *v1.VirtualMachineInstance, opts metav1.UpdateOptions) (result *v1.VirtualMachineInstance, err error) {
result, err = v.VirtualMachineInstanceInterface.Update(ctx, vmi, opts)
result.SetGroupVersionKind(v1.VirtualMachineInstanceGroupVersionKind)
return
}

func (v *vmis) Delete(ctx context.Context, name string, options metav1.DeleteOptions) error {
return v.VirtualMachineInstanceInterface.Delete(ctx, name, options)
}

func (v *vmis) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, patchOptions metav1.PatchOptions, subresources ...string) (result *v1.VirtualMachineInstance, err error) {
return v.VirtualMachineInstanceInterface.Patch(ctx, name, pt, data, patchOptions, subresources...)
}

func (v *vmis) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {
return v.VirtualMachineInstanceInterface.Watch(ctx, opts)
}

// enrichError checks the response body for a k8s Status object and extracts the error from it.
// TODO the k8s http REST client has very sophisticated handling, investigate on how we can reuse it
func enrichError(httpErr error, resp *http.Response) error {
Expand Down

0 comments on commit 4701427

Please sign in to comment.