@@ -20,13 +20,15 @@ import (
20
20
"context"
21
21
"encoding/json"
22
22
"os"
23
+ "strings"
23
24
24
25
"k8s.io/apimachinery/pkg/api/meta"
25
26
"k8s.io/apimachinery/pkg/runtime"
26
27
"k8s.io/apimachinery/pkg/runtime/schema"
27
28
"k8s.io/client-go/kubernetes/scheme"
28
29
"k8s.io/client-go/testing"
29
30
31
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
30
32
"sigs.k8s.io/controller-runtime/pkg/client"
31
33
"sigs.k8s.io/controller-runtime/pkg/client/apiutil"
32
34
logf "sigs.k8s.io/controller-runtime/pkg/runtime/log"
@@ -78,8 +80,21 @@ func (c *fakeClient) Get(ctx context.Context, key client.ObjectKey, obj runtime.
78
80
}
79
81
80
82
func (c * fakeClient ) List (ctx context.Context , opts * client.ListOptions , list runtime.Object ) error {
81
- gvk := opts .Raw .TypeMeta .GroupVersionKind ()
83
+ var gvk schema.GroupVersionKind
84
+ if opts .Raw != nil && opts .Raw .TypeMeta != (metav1.TypeMeta {}) {
85
+ gvk = opts .Raw .TypeMeta .GroupVersionKind ()
86
+ } else {
87
+ var err error
88
+ gvk , err = apiutil .GVKForObject (list , scheme .Scheme )
89
+ if err != nil {
90
+ return err
91
+ }
92
+ if strings .HasSuffix (gvk .Kind , "List" ) {
93
+ gvk .Kind = gvk .Kind [:len (gvk .Kind )- 4 ]
94
+ }
95
+ }
82
96
gvr , _ := meta .UnsafeGuessKindToResource (gvk )
97
+
83
98
o , err := c .tracker .List (gvr , gvk , opts .Namespace )
84
99
if err != nil {
85
100
return err
0 commit comments