From 8a9b8c87c40ee65751828d9dd02f4f642588f0ce Mon Sep 17 00:00:00 2001 From: Clayton Coleman Date: Sun, 3 Nov 2019 15:20:10 -0500 Subject: [PATCH] test: kubectl unit tests should be using codecs without conversion Tests are also refactored to use the simpler RESTClient code path. --- .../kubectl/pkg/cmd/attach/attach_test.go | 4 +- .../create/create_clusterrolebinding_test.go | 20 ++------ .../pkg/cmd/create/create_configmap_test.go | 2 +- .../pkg/cmd/create/create_deployment_test.go | 4 +- .../pkg/cmd/create/create_namespace_test.go | 2 +- .../kubectl/pkg/cmd/create/create_pdb_test.go | 2 +- .../cmd/create/create_priorityclass_test.go | 2 +- .../pkg/cmd/create/create_rolebinding_test.go | 21 ++------ .../pkg/cmd/create/create_secret_test.go | 4 +- .../cmd/create/create_serviceaccount_test.go | 2 +- .../kubectl/pkg/cmd/drain/drain_test.go | 4 +- .../k8s.io/kubectl/pkg/cmd/exec/exec_test.go | 4 +- .../kubectl/pkg/cmd/expose/expose_test.go | 2 +- .../pkg/cmd/portforward/portforward_test.go | 2 +- .../src/k8s.io/kubectl/pkg/cmd/rollout/BUILD | 2 +- .../pkg/cmd/rollout/rollout_pause_test.go | 48 ++++--------------- .../k8s.io/kubectl/pkg/cmd/run/run_test.go | 7 +-- .../kubectl/pkg/cmd/taint/taint_test.go | 2 +- .../kubectl/pkg/cmd/top/top_node_test.go | 14 +++--- .../kubectl/pkg/cmd/top/top_pod_test.go | 6 +-- 20 files changed, 48 insertions(+), 106 deletions(-) diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/attach/attach_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/attach/attach_test.go index d2e4496fb5b..7edbd6902e0 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/attach/attach_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/attach/attach_test.go @@ -239,7 +239,7 @@ func TestAttach(t *testing.T) { defer tf.Cleanup() codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ GroupVersion: schema.GroupVersion{Group: "", Version: "v1"}, @@ -341,7 +341,7 @@ func TestAttachWarnings(t *testing.T) { streams, _, _, bufErr := genericclioptions.NewTestIOStreams() codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ GroupVersion: schema.GroupVersion{Group: "", Version: "v1"}, diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_clusterrolebinding_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_clusterrolebinding_test.go index 8041d0b9ff3..e3622a23b02 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_clusterrolebinding_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_clusterrolebinding_test.go @@ -20,7 +20,6 @@ import ( "bytes" "io/ioutil" "net/http" - "net/url" "reflect" "testing" @@ -71,7 +70,7 @@ func TestCreateClusterRoleBinding(t *testing.T) { tf := cmdtesting.NewTestFactory().WithNamespace("test") defer tf.Cleanup() - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() info, _ := runtime.SerializerInfoForMediaType(ns.SupportedMediaTypes(), runtime.ContentTypeJSON) encoder := ns.EncoderForVersion(info.Serializer, groupVersion) @@ -79,6 +78,7 @@ func TestCreateClusterRoleBinding(t *testing.T) { tf.Client = &ClusterRoleBindingRESTClient{ RESTClient: &fake.RESTClient{ + GroupVersion: schema.GroupVersion{Group: "rbac.authorization.k8s.io", Version: "v1beta1"}, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -129,19 +129,5 @@ type ClusterRoleBindingRESTClient struct { } func (c *ClusterRoleBindingRESTClient) Post() *restclient.Request { - config := restclient.ContentConfig{ - ContentType: runtime.ContentTypeJSON, - NegotiatedSerializer: c.NegotiatedSerializer, - } - - info, _ := runtime.SerializerInfoForMediaType(c.NegotiatedSerializer.SupportedMediaTypes(), runtime.ContentTypeJSON) - serializers := restclient.Serializers{ - Encoder: c.NegotiatedSerializer.EncoderForVersion(info.Serializer, schema.GroupVersion{Group: "rbac.authorization.k8s.io", Version: "v1beta1"}), - Decoder: c.NegotiatedSerializer.DecoderToVersion(info.Serializer, schema.GroupVersion{Group: "rbac.authorization.k8s.io", Version: "v1beta1"}), - } - if info.StreamSerializer != nil { - serializers.StreamingSerializer = info.StreamSerializer.Serializer - serializers.Framer = info.StreamSerializer.Framer - } - return restclient.NewRequest(c, "POST", &url.URL{Host: "localhost"}, c.VersionedAPIPath, config, serializers, nil, nil, 0) + return c.RESTClient.Verb("POST") } diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_configmap_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_configmap_test.go index 35e345c3886..01b3dbe192b 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_configmap_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_configmap_test.go @@ -35,7 +35,7 @@ func TestCreateConfigMap(t *testing.T) { defer tf.Cleanup() codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ GroupVersion: schema.GroupVersion{Group: "", Version: "v1"}, diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_deployment_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_deployment_test.go index 23540eb24c4..d107c78e835 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_deployment_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_deployment_test.go @@ -91,7 +91,7 @@ func TestCreateDeployment(t *testing.T) { tf := cmdtesting.NewTestFactory().WithNamespace("test") defer tf.Cleanup() - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() fakeDiscovery := "{\"kind\":\"APIResourceList\",\"apiVersion\":\"v1\",\"groupVersion\":\"apps/v1\",\"resources\":[{\"name\":\"deployments\",\"singularName\":\"\",\"namespaced\":true,\"kind\":\"Deployment\",\"verbs\":[\"create\",\"delete\",\"deletecollection\",\"get\",\"list\",\"patch\",\"update\",\"watch\"],\"shortNames\":[\"deploy\"],\"categories\":[\"all\"]}]}" tf.Client = &fake.RESTClient{ NegotiatedSerializer: ns, @@ -121,7 +121,7 @@ func TestCreateDeploymentNoImage(t *testing.T) { tf := cmdtesting.NewTestFactory().WithNamespace("test") defer tf.Cleanup() - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() fakeDiscovery := "{\"kind\":\"APIResourceList\",\"apiVersion\":\"v1\",\"groupVersion\":\"apps/v1\",\"resources\":[{\"name\":\"deployments\",\"singularName\":\"\",\"namespaced\":true,\"kind\":\"Deployment\",\"verbs\":[\"create\",\"delete\",\"deletecollection\",\"get\",\"list\",\"patch\",\"update\",\"watch\"],\"shortNames\":[\"deploy\"],\"categories\":[\"all\"]}]}" tf.Client = &fake.RESTClient{ NegotiatedSerializer: ns, diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_namespace_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_namespace_test.go index 0634b0cd6f8..c8581d934a3 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_namespace_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_namespace_test.go @@ -35,7 +35,7 @@ func TestCreateNamespace(t *testing.T) { defer tf.Cleanup() codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ GroupVersion: schema.GroupVersion{Version: "v1"}, diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_pdb_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_pdb_test.go index 3633b186a09..912b559ff13 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_pdb_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_pdb_test.go @@ -35,7 +35,7 @@ func TestCreatePdb(t *testing.T) { tf := cmdtesting.NewTestFactory().WithNamespace("test") defer tf.Cleanup() - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ GroupVersion: schema.GroupVersion{Group: "policy", Version: "v1beta1"}, diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_priorityclass_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_priorityclass_test.go index d4e39b6d8c5..fd85d19c307 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_priorityclass_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_priorityclass_test.go @@ -35,7 +35,7 @@ func TestCreatePriorityClass(t *testing.T) { tf := cmdtesting.NewTestFactory() defer tf.Cleanup() - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ GroupVersion: schema.GroupVersion{Group: "scheduling.k8s.io", Version: "v1beta1"}, diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_rolebinding_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_rolebinding_test.go index 0e86adbd0ba..a6a6aada4e2 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_rolebinding_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_rolebinding_test.go @@ -20,7 +20,6 @@ import ( "bytes" "io/ioutil" "net/http" - "net/url" "reflect" "testing" @@ -73,7 +72,7 @@ func TestCreateRoleBinding(t *testing.T) { tf := cmdtesting.NewTestFactory().WithNamespace("test") defer tf.Cleanup() - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() info, _ := runtime.SerializerInfoForMediaType(ns.SupportedMediaTypes(), runtime.ContentTypeJSON) encoder := ns.EncoderForVersion(info.Serializer, groupVersion) @@ -81,6 +80,7 @@ func TestCreateRoleBinding(t *testing.T) { tf.Client = &RoleBindingRESTClient{ RESTClient: &fake.RESTClient{ + GroupVersion: groupVersion, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -125,20 +125,5 @@ type RoleBindingRESTClient struct { } func (c *RoleBindingRESTClient) Post() *restclient.Request { - config := restclient.ContentConfig{ - ContentType: runtime.ContentTypeJSON, - GroupVersion: &groupVersion, - NegotiatedSerializer: c.NegotiatedSerializer, - } - - info, _ := runtime.SerializerInfoForMediaType(c.NegotiatedSerializer.SupportedMediaTypes(), runtime.ContentTypeJSON) - serializers := restclient.Serializers{ - Encoder: c.NegotiatedSerializer.EncoderForVersion(info.Serializer, groupVersion), - Decoder: c.NegotiatedSerializer.DecoderToVersion(info.Serializer, groupVersion), - } - if info.StreamSerializer != nil { - serializers.StreamingSerializer = info.StreamSerializer.Serializer - serializers.Framer = info.StreamSerializer.Framer - } - return restclient.NewRequest(c, "POST", &url.URL{Host: "localhost"}, c.VersionedAPIPath, config, serializers, nil, nil, 0) + return c.RESTClient.Verb("POST") } diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_secret_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_secret_test.go index 3db75a35049..9f1d4491b8f 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_secret_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_secret_test.go @@ -40,7 +40,7 @@ func TestCreateSecretGeneric(t *testing.T) { defer tf.Cleanup() codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ GroupVersion: schema.GroupVersion{Version: "v1"}, @@ -72,7 +72,7 @@ func TestCreateSecretDockerRegistry(t *testing.T) { secretObject.Name = "my-secret" tf := cmdtesting.NewTestFactory().WithNamespace("test") codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ GroupVersion: schema.GroupVersion{Version: "v1"}, diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_serviceaccount_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_serviceaccount_test.go index dbb1fc68789..5d511788f4c 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_serviceaccount_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_serviceaccount_test.go @@ -35,7 +35,7 @@ func TestCreateServiceAccount(t *testing.T) { defer tf.Cleanup() codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ GroupVersion: schema.GroupVersion{Version: "v1"}, diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/drain/drain_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/drain/drain_test.go index 1fcf9d7a80f..e3b449ce132 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/drain/drain_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/drain/drain_test.go @@ -160,7 +160,7 @@ func TestCordon(t *testing.T) { defer tf.Cleanup() codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() newNode := &corev1.Node{} updated := false @@ -738,7 +738,7 @@ func TestDrain(t *testing.T) { defer tf.Cleanup() codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ GroupVersion: schema.GroupVersion{Group: "", Version: "v1"}, diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/exec/exec_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/exec/exec_test.go index 73ff8f01ed6..fc94ec3fe21 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/exec/exec_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/exec/exec_test.go @@ -135,7 +135,7 @@ func TestPodAndContainer(t *testing.T) { tf := cmdtesting.NewTestFactory().WithNamespace("test") defer tf.Cleanup() - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ NegotiatedSerializer: ns, @@ -205,7 +205,7 @@ func TestExec(t *testing.T) { defer tf.Cleanup() codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ GroupVersion: schema.GroupVersion{Group: "", Version: "v1"}, diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/expose/expose_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/expose/expose_test.go index 45dfd0fd772..e75260b57b2 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/expose/expose_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/expose/expose_test.go @@ -602,7 +602,7 @@ func TestRunExposeService(t *testing.T) { defer tf.Cleanup() codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ GroupVersion: schema.GroupVersion{Version: "v1"}, diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/portforward/portforward_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/portforward/portforward_test.go index 8887b74476c..321639b5f97 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/portforward/portforward_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/portforward/portforward_test.go @@ -77,7 +77,7 @@ func testPortForward(t *testing.T, flags map[string]string, args []string) { defer tf.Cleanup() codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ VersionedAPIPath: "/api/v1", diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/rollout/BUILD b/staging/src/k8s.io/kubectl/pkg/cmd/rollout/BUILD index c876153c1b8..063845982f0 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/rollout/BUILD +++ b/staging/src/k8s.io/kubectl/pkg/cmd/rollout/BUILD @@ -68,7 +68,7 @@ go_test( srcs = ["rollout_pause_test.go"], embed = [":go_default_library"], deps = [ - "//staging/src/k8s.io/api/extensions/v1beta1:go_default_library", + "//staging/src/k8s.io/api/apps/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/rollout/rollout_pause_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/rollout/rollout_pause_test.go index 28f42136998..779ce0366c4 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/rollout/rollout_pause_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/rollout/rollout_pause_test.go @@ -20,10 +20,9 @@ import ( "bytes" "io/ioutil" "net/http" - "net/url" "testing" - extensionsv1beta1 "k8s.io/api/extensions/v1beta1" + appsv1 "k8s.io/api/apps/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/types" @@ -34,23 +33,24 @@ import ( "k8s.io/kubectl/pkg/scheme" ) -var rolloutPauseGroupVersionEncoder = schema.GroupVersion{Group: "extensions", Version: "v1beta1"} -var rolloutPauseGroupVersionDecoder = schema.GroupVersion{Group: "extensions", Version: "v1beta1"} +var rolloutPauseGroupVersionEncoder = schema.GroupVersion{Group: "apps", Version: "v1"} +var rolloutPauseGroupVersionDecoder = schema.GroupVersion{Group: "apps", Version: "v1"} func TestRolloutPause(t *testing.T) { deploymentName := "deployment/nginx-deployment" - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf := cmdtesting.NewTestFactory().WithNamespace("test") info, _ := runtime.SerializerInfoForMediaType(ns.SupportedMediaTypes(), runtime.ContentTypeJSON) encoder := ns.EncoderForVersion(info.Serializer, rolloutPauseGroupVersionEncoder) tf.Client = &RolloutPauseRESTClient{ RESTClient: &fake.RESTClient{ + GroupVersion: rolloutPauseGroupVersionEncoder, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { case p == "/namespaces/test/deployments/nginx-deployment" && (m == "GET" || m == "PATCH"): - responseDeployment := &extensionsv1beta1.Deployment{} + responseDeployment := &appsv1.Deployment{} responseDeployment.Name = deploymentName body := ioutil.NopCloser(bytes.NewReader([]byte(runtime.EncodeOrDie(encoder, responseDeployment)))) return &http.Response{StatusCode: http.StatusOK, Header: cmdtesting.DefaultHeader(), Body: body}, nil @@ -66,7 +66,7 @@ func TestRolloutPause(t *testing.T) { cmd := NewCmdRolloutPause(tf, streams) cmd.Run(cmd, []string{deploymentName}) - expectedOutput := "deployment.extensions/" + deploymentName + " paused\n" + expectedOutput := "deployment.apps/" + deploymentName + " paused\n" if buf.String() != expectedOutput { t.Errorf("expected output: %s, but got: %s", expectedOutput, buf.String()) } @@ -77,39 +77,9 @@ type RolloutPauseRESTClient struct { } func (c *RolloutPauseRESTClient) Get() *restclient.Request { - config := restclient.ContentConfig{ - ContentType: runtime.ContentTypeJSON, - GroupVersion: &rolloutPauseGroupVersionEncoder, - NegotiatedSerializer: c.NegotiatedSerializer, - } - - info, _ := runtime.SerializerInfoForMediaType(c.NegotiatedSerializer.SupportedMediaTypes(), runtime.ContentTypeJSON) - serializers := restclient.Serializers{ - Encoder: c.NegotiatedSerializer.EncoderForVersion(info.Serializer, rolloutPauseGroupVersionEncoder), - Decoder: c.NegotiatedSerializer.DecoderToVersion(info.Serializer, rolloutPauseGroupVersionDecoder), - } - if info.StreamSerializer != nil { - serializers.StreamingSerializer = info.StreamSerializer.Serializer - serializers.Framer = info.StreamSerializer.Framer - } - return restclient.NewRequest(c, "GET", &url.URL{Host: "localhost"}, c.VersionedAPIPath, config, serializers, nil, nil, 0) + return c.RESTClient.Verb("GET") } func (c *RolloutPauseRESTClient) Patch(pt types.PatchType) *restclient.Request { - config := restclient.ContentConfig{ - ContentType: runtime.ContentTypeJSON, - GroupVersion: &rolloutPauseGroupVersionEncoder, - NegotiatedSerializer: c.NegotiatedSerializer, - } - - info, _ := runtime.SerializerInfoForMediaType(c.NegotiatedSerializer.SupportedMediaTypes(), runtime.ContentTypeJSON) - serializers := restclient.Serializers{ - Encoder: c.NegotiatedSerializer.EncoderForVersion(info.Serializer, rolloutPauseGroupVersionEncoder), - Decoder: c.NegotiatedSerializer.DecoderToVersion(info.Serializer, rolloutPauseGroupVersionDecoder), - } - if info.StreamSerializer != nil { - serializers.StreamingSerializer = info.StreamSerializer.Serializer - serializers.Framer = info.StreamSerializer.Framer - } - return restclient.NewRequest(c, "PATCH", &url.URL{Host: "localhost"}, c.VersionedAPIPath, config, serializers, nil, nil, 0) + return c.RESTClient.Verb("PATCH") } diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/run/run_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/run/run_test.go index 8784db8068e..6b2c1061480 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/run/run_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/run/run_test.go @@ -168,7 +168,7 @@ func TestRunArgsFollowDashRules(t *testing.T) { defer tf.Cleanup() codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ GroupVersion: corev1.SchemeGroupVersion, @@ -327,7 +327,7 @@ func TestGenerateService(t *testing.T) { defer tf.Cleanup() codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.ClientConfigVal = cmdtesting.DefaultClientConfig() tf.Client = &fake.RESTClient{ @@ -505,8 +505,9 @@ func TestRunValidations(t *testing.T) { defer tf.Cleanup() _, _, codec := cmdtesting.NewExternalScheme() + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ - NegotiatedSerializer: scheme.Codecs, + NegotiatedSerializer: ns, Resp: &http.Response{StatusCode: http.StatusOK, Header: cmdtesting.DefaultHeader(), Body: cmdtesting.ObjBody(codec, cmdtesting.NewInternalType("", "", ""))}, } tf.ClientConfigVal = cmdtesting.DefaultClientConfig() diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/taint/taint_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/taint/taint_test.go index 9d20e2b7e8c..a154c97dfd8 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/taint/taint_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/taint/taint_test.go @@ -243,7 +243,7 @@ func TestTaint(t *testing.T) { defer tf.Cleanup() codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ NegotiatedSerializer: ns, diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/top/top_node_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/top/top_node_test.go index 651f73867c3..96c08e897c8 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/top/top_node_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/top/top_node_test.go @@ -53,7 +53,7 @@ func TestTopNodeAllMetrics(t *testing.T) { defer tf.Cleanup() codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ NegotiatedSerializer: ns, @@ -109,7 +109,7 @@ func TestTopNodeAllMetricsCustomDefaults(t *testing.T) { defer tf.Cleanup() codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ NegotiatedSerializer: ns, @@ -172,7 +172,7 @@ func TestTopNodeWithNameMetrics(t *testing.T) { defer tf.Cleanup() codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ NegotiatedSerializer: ns, @@ -238,7 +238,7 @@ func TestTopNodeWithLabelSelectorMetrics(t *testing.T) { defer tf.Cleanup() codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ NegotiatedSerializer: ns, @@ -292,7 +292,7 @@ func TestTopNodeAllMetricsFromMetricsServer(t *testing.T) { defer tf.Cleanup() codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ NegotiatedSerializer: ns, @@ -359,7 +359,7 @@ func TestTopNodeWithNameMetricsFromMetricsServer(t *testing.T) { defer tf.Cleanup() codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ NegotiatedSerializer: ns, @@ -436,7 +436,7 @@ func TestTopNodeWithLabelSelectorMetricsFromMetricsServer(t *testing.T) { defer tf.Cleanup() codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ NegotiatedSerializer: ns, diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/top/top_pod_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/top/top_pod_test.go index 66559ce10c1..1596bce7711 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/top/top_pod_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/top/top_pod_test.go @@ -176,7 +176,7 @@ func TestTopPod(t *testing.T) { tf := cmdtesting.NewTestFactory().WithNamespace(testNS) defer tf.Cleanup() - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ NegotiatedSerializer: ns, @@ -323,7 +323,7 @@ func TestTopPodWithMetricsServer(t *testing.T) { tf := cmdtesting.NewTestFactory().WithNamespace(testNS) defer tf.Cleanup() - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ NegotiatedSerializer: ns, @@ -527,7 +527,7 @@ func TestTopPodCustomDefaults(t *testing.T) { tf := cmdtesting.NewTestFactory().WithNamespace(testNS) defer tf.Cleanup() - ns := scheme.Codecs + ns := scheme.Codecs.WithoutConversion() tf.Client = &fake.RESTClient{ NegotiatedSerializer: ns,