Migrate client-go/metadata to contextual logging (#122225)
* client-go: migrate metadata to contextual logging Signed-off-by: Ricardo Lopes <ricardoapl.dev@gmail.com> * client-go: test for metadata contextual logs Signed-off-by: Ricardo Lopes <ricardoapl.dev@gmail.com> * refactor: extract context for table driven testing Signed-off-by: Ricardo Lopes <ricardoapl.dev@gmail.com> * refactor: pass context as first parameter Signed-off-by: Ricardo Lopes <ricardoapl.dev@gmail.com> --------- Signed-off-by: Ricardo Lopes <ricardoapl.dev@gmail.com>
This commit is contained in:
		@@ -26,6 +26,7 @@ structured k8s.io/apiserver/pkg/server/options/encryptionconfig/.*
 | 
			
		||||
# The following packages have been migrated to contextual logging.
 | 
			
		||||
# Packages matched here do not have to be listed above because
 | 
			
		||||
# "contextual" implies "structured".
 | 
			
		||||
contextual k8s.io/client-go/metadata/.*
 | 
			
		||||
contextual k8s.io/client-go/tools/events/.*
 | 
			
		||||
contextual k8s.io/client-go/tools/record/.*
 | 
			
		||||
contextual k8s.io/dynamic-resource-allocation/.*
 | 
			
		||||
 
 | 
			
		||||
@@ -191,7 +191,7 @@ func (c *client) Get(ctx context.Context, name string, opts metav1.GetOptions, s
 | 
			
		||||
	}
 | 
			
		||||
	obj, err := result.Get()
 | 
			
		||||
	if runtime.IsNotRegisteredError(err) {
 | 
			
		||||
		klog.V(5).Infof("Unable to retrieve PartialObjectMetadata: %#v", err)
 | 
			
		||||
		klog.FromContext(ctx).V(5).Info("Could not retrieve PartialObjectMetadata", "err", err)
 | 
			
		||||
		rawBytes, err := result.Raw()
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
@@ -227,7 +227,7 @@ func (c *client) List(ctx context.Context, opts metav1.ListOptions) (*metav1.Par
 | 
			
		||||
	}
 | 
			
		||||
	obj, err := result.Get()
 | 
			
		||||
	if runtime.IsNotRegisteredError(err) {
 | 
			
		||||
		klog.V(5).Infof("Unable to retrieve PartialObjectMetadataList: %#v", err)
 | 
			
		||||
		klog.FromContext(ctx).V(5).Info("Could not retrieve PartialObjectMetadataList", "err", err)
 | 
			
		||||
		rawBytes, err := result.Raw()
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
 
 | 
			
		||||
@@ -32,6 +32,7 @@ import (
 | 
			
		||||
	"k8s.io/apimachinery/pkg/runtime"
 | 
			
		||||
	"k8s.io/apimachinery/pkg/runtime/schema"
 | 
			
		||||
	"k8s.io/client-go/rest"
 | 
			
		||||
	"k8s.io/klog/v2/ktesting"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestClient(t *testing.T) {
 | 
			
		||||
@@ -55,7 +56,7 @@ func TestClient(t *testing.T) {
 | 
			
		||||
	testCases := []struct {
 | 
			
		||||
		name    string
 | 
			
		||||
		handler func(t *testing.T, w http.ResponseWriter, req *http.Request)
 | 
			
		||||
		want    func(t *testing.T, client *Client)
 | 
			
		||||
		want    func(ctx context.Context, t *testing.T, client *Client)
 | 
			
		||||
	}{
 | 
			
		||||
		{
 | 
			
		||||
			name: "GET is able to convert a JSON object to PartialObjectMetadata",
 | 
			
		||||
@@ -77,8 +78,8 @@ func TestClient(t *testing.T) {
 | 
			
		||||
					},
 | 
			
		||||
				})
 | 
			
		||||
			},
 | 
			
		||||
			want: func(t *testing.T, client *Client) {
 | 
			
		||||
				obj, err := client.Resource(gvr).Namespace("ns").Get(context.TODO(), "name", metav1.GetOptions{})
 | 
			
		||||
			want: func(ctx context.Context, t *testing.T, client *Client) {
 | 
			
		||||
				obj, err := client.Resource(gvr).Namespace("ns").Get(ctx, "name", metav1.GetOptions{})
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					t.Fatal(err)
 | 
			
		||||
				}
 | 
			
		||||
@@ -125,8 +126,8 @@ func TestClient(t *testing.T) {
 | 
			
		||||
					},
 | 
			
		||||
				})
 | 
			
		||||
			},
 | 
			
		||||
			want: func(t *testing.T, client *Client) {
 | 
			
		||||
				objs, err := client.Resource(gvr).Namespace("ns").List(context.TODO(), metav1.ListOptions{})
 | 
			
		||||
			want: func(ctx context.Context, t *testing.T, client *Client) {
 | 
			
		||||
				objs, err := client.Resource(gvr).Namespace("ns").List(ctx, metav1.ListOptions{})
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					t.Fatal(err)
 | 
			
		||||
				}
 | 
			
		||||
@@ -167,8 +168,8 @@ func TestClient(t *testing.T) {
 | 
			
		||||
					},
 | 
			
		||||
				})
 | 
			
		||||
			},
 | 
			
		||||
			want: func(t *testing.T, client *Client) {
 | 
			
		||||
				obj, err := client.Resource(gvr).Namespace("ns").Get(context.TODO(), "name", metav1.GetOptions{})
 | 
			
		||||
			want: func(ctx context.Context, t *testing.T, client *Client) {
 | 
			
		||||
				obj, err := client.Resource(gvr).Namespace("ns").Get(ctx, "name", metav1.GetOptions{})
 | 
			
		||||
				if err == nil || !runtime.IsMissingKind(err) {
 | 
			
		||||
					t.Fatal(err)
 | 
			
		||||
				}
 | 
			
		||||
@@ -196,8 +197,8 @@ func TestClient(t *testing.T) {
 | 
			
		||||
					},
 | 
			
		||||
				})
 | 
			
		||||
			},
 | 
			
		||||
			want: func(t *testing.T, client *Client) {
 | 
			
		||||
				obj, err := client.Resource(gvr).Namespace("ns").Get(context.TODO(), "name", metav1.GetOptions{})
 | 
			
		||||
			want: func(ctx context.Context, t *testing.T, client *Client) {
 | 
			
		||||
				obj, err := client.Resource(gvr).Namespace("ns").Get(ctx, "name", metav1.GetOptions{})
 | 
			
		||||
				if err == nil || !runtime.IsMissingVersion(err) {
 | 
			
		||||
					t.Fatal(err)
 | 
			
		||||
				}
 | 
			
		||||
@@ -224,8 +225,8 @@ func TestClient(t *testing.T) {
 | 
			
		||||
					ObjectMeta: metav1.ObjectMeta{},
 | 
			
		||||
				})
 | 
			
		||||
			},
 | 
			
		||||
			want: func(t *testing.T, client *Client) {
 | 
			
		||||
				obj, err := client.Resource(gvr).Namespace("ns").Get(context.TODO(), "name", metav1.GetOptions{})
 | 
			
		||||
			want: func(ctx context.Context, t *testing.T, client *Client) {
 | 
			
		||||
				obj, err := client.Resource(gvr).Namespace("ns").Get(ctx, "name", metav1.GetOptions{})
 | 
			
		||||
				if err == nil || !strings.Contains(err.Error(), "object does not appear to match the ObjectMeta schema") {
 | 
			
		||||
					t.Fatal(err)
 | 
			
		||||
				}
 | 
			
		||||
@@ -254,8 +255,8 @@ func TestClient(t *testing.T) {
 | 
			
		||||
				}
 | 
			
		||||
				writeJSON(t, w, statusOK)
 | 
			
		||||
			},
 | 
			
		||||
			want: func(t *testing.T, client *Client) {
 | 
			
		||||
				err := client.Resource(gvr).Namespace("ns").Delete(context.TODO(), "name", metav1.DeleteOptions{})
 | 
			
		||||
			want: func(ctx context.Context, t *testing.T, client *Client) {
 | 
			
		||||
				err := client.Resource(gvr).Namespace("ns").Delete(ctx, "name", metav1.DeleteOptions{})
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					t.Fatal(err)
 | 
			
		||||
				}
 | 
			
		||||
@@ -282,8 +283,8 @@ func TestClient(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
				writeJSON(t, w, statusOK)
 | 
			
		||||
			},
 | 
			
		||||
			want: func(t *testing.T, client *Client) {
 | 
			
		||||
				err := client.Resource(gvr).Namespace("ns").DeleteCollection(context.TODO(), metav1.DeleteOptions{}, metav1.ListOptions{})
 | 
			
		||||
			want: func(ctx context.Context, t *testing.T, client *Client) {
 | 
			
		||||
				err := client.Resource(gvr).Namespace("ns").DeleteCollection(ctx, metav1.DeleteOptions{}, metav1.ListOptions{})
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					t.Fatal(err)
 | 
			
		||||
				}
 | 
			
		||||
@@ -296,9 +297,10 @@ func TestClient(t *testing.T) {
 | 
			
		||||
			s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { tt.handler(t, w, req) }))
 | 
			
		||||
			defer s.Close()
 | 
			
		||||
 | 
			
		||||
			_, ctx := ktesting.NewTestContext(t)
 | 
			
		||||
			cfg := ConfigFor(&rest.Config{Host: s.URL})
 | 
			
		||||
			client := NewForConfigOrDie(cfg).(*Client)
 | 
			
		||||
			tt.want(t, client)
 | 
			
		||||
			tt.want(ctx, t, client)
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user