cleanup kubectl/resource tests dependency
This commit is contained in:
		| @@ -59,10 +59,7 @@ go_test( | |||||||
|     importpath = "k8s.io/kubernetes/pkg/kubectl/resource", |     importpath = "k8s.io/kubernetes/pkg/kubectl/resource", | ||||||
|     library = ":go_default_library", |     library = ":go_default_library", | ||||||
|     deps = [ |     deps = [ | ||||||
|         "//pkg/api:go_default_library", |         "//pkg/kubectl/scheme:go_default_library", | ||||||
|         "//pkg/api/legacyscheme:go_default_library", |  | ||||||
|         "//pkg/api/testapi:go_default_library", |  | ||||||
|         "//pkg/api/testing:go_default_library", |  | ||||||
|         "//vendor/github.com/ghodss/yaml:go_default_library", |         "//vendor/github.com/ghodss/yaml:go_default_library", | ||||||
|         "//vendor/github.com/googleapis/gnostic/OpenAPIv2:go_default_library", |         "//vendor/github.com/googleapis/gnostic/OpenAPIv2:go_default_library", | ||||||
|         "//vendor/github.com/stretchr/testify/assert:go_default_library", |         "//vendor/github.com/stretchr/testify/assert:go_default_library", | ||||||
| @@ -74,11 +71,13 @@ go_test( | |||||||
|         "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", |         "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", | ||||||
|         "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", |         "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", | ||||||
|         "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", |         "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", | ||||||
|  |         "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", | ||||||
|         "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/streaming:go_default_library", |         "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/streaming:go_default_library", | ||||||
|         "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", |         "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", | ||||||
|         "//vendor/k8s.io/apimachinery/pkg/version:go_default_library", |         "//vendor/k8s.io/apimachinery/pkg/version:go_default_library", | ||||||
|         "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", |         "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", | ||||||
|         "//vendor/k8s.io/client-go/discovery:go_default_library", |         "//vendor/k8s.io/client-go/discovery:go_default_library", | ||||||
|  |         "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", | ||||||
|         "//vendor/k8s.io/client-go/rest:go_default_library", |         "//vendor/k8s.io/client-go/rest:go_default_library", | ||||||
|         "//vendor/k8s.io/client-go/rest/fake:go_default_library", |         "//vendor/k8s.io/client-go/rest/fake:go_default_library", | ||||||
|         "//vendor/k8s.io/client-go/rest/watch:go_default_library", |         "//vendor/k8s.io/client-go/rest/watch:go_default_library", | ||||||
|   | |||||||
| @@ -37,16 +37,22 @@ import ( | |||||||
| 	"k8s.io/apimachinery/pkg/api/resource" | 	"k8s.io/apimachinery/pkg/api/resource" | ||||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||||
| 	"k8s.io/apimachinery/pkg/runtime" | 	"k8s.io/apimachinery/pkg/runtime" | ||||||
|  | 	"k8s.io/apimachinery/pkg/runtime/schema" | ||||||
|  | 	"k8s.io/apimachinery/pkg/runtime/serializer" | ||||||
| 	"k8s.io/apimachinery/pkg/runtime/serializer/streaming" | 	"k8s.io/apimachinery/pkg/runtime/serializer/streaming" | ||||||
| 	utilerrors "k8s.io/apimachinery/pkg/util/errors" | 	utilerrors "k8s.io/apimachinery/pkg/util/errors" | ||||||
| 	"k8s.io/apimachinery/pkg/watch" | 	"k8s.io/apimachinery/pkg/watch" | ||||||
| 	"k8s.io/client-go/rest/fake" | 	"k8s.io/client-go/rest/fake" | ||||||
| 	restclientwatch "k8s.io/client-go/rest/watch" | 	restclientwatch "k8s.io/client-go/rest/watch" | ||||||
| 	utiltesting "k8s.io/client-go/util/testing" | 	utiltesting "k8s.io/client-go/util/testing" | ||||||
| 	"k8s.io/kubernetes/pkg/api" | 	"k8s.io/kubernetes/pkg/kubectl/scheme" | ||||||
| 	"k8s.io/kubernetes/pkg/api/legacyscheme" | ) | ||||||
| 	"k8s.io/kubernetes/pkg/api/testapi" |  | ||||||
| 	apitesting "k8s.io/kubernetes/pkg/api/testing" | var ( | ||||||
|  | 	corev1GV     = schema.GroupVersion{Version: "v1"} | ||||||
|  | 	corev1Codec  = scheme.Codecs.CodecForVersions(scheme.Codecs.LegacyCodec(corev1GV), scheme.Codecs.UniversalDecoder(corev1GV), corev1GV, corev1GV) | ||||||
|  | 	metaAccessor = meta.NewAccessor() | ||||||
|  | 	restmapper   = scheme.Registry.RESTMapper() | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func stringBody(body string) io.ReadCloser { | func stringBody(body string) io.ReadCloser { | ||||||
| @@ -55,7 +61,7 @@ func stringBody(body string) io.ReadCloser { | |||||||
|  |  | ||||||
| func watchBody(events ...watch.Event) string { | func watchBody(events ...watch.Event) string { | ||||||
| 	buf := &bytes.Buffer{} | 	buf := &bytes.Buffer{} | ||||||
| 	codec := testapi.Default.Codec() | 	codec := corev1Codec | ||||||
| 	enc := restclientwatch.NewEncoder(streaming.NewEncoder(buf, codec), codec) | 	enc := restclientwatch.NewEncoder(streaming.NewEncoder(buf, codec), codec) | ||||||
| 	for _, e := range events { | 	for _, e := range events { | ||||||
| 		enc.Encode(&e) | 		enc.Encode(&e) | ||||||
| @@ -72,8 +78,8 @@ func fakeClient() ClientMapper { | |||||||
| func fakeClientWith(testName string, t *testing.T, data map[string]string) ClientMapper { | func fakeClientWith(testName string, t *testing.T, data map[string]string) ClientMapper { | ||||||
| 	return ClientMapperFunc(func(*meta.RESTMapping) (RESTClient, error) { | 	return ClientMapperFunc(func(*meta.RESTMapping) (RESTClient, error) { | ||||||
| 		return &fake.RESTClient{ | 		return &fake.RESTClient{ | ||||||
| 			GroupVersion:         legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion, | 			GroupVersion:         corev1GV, | ||||||
| 			NegotiatedSerializer: testapi.Default.NegotiatedSerializer(), | 			NegotiatedSerializer: serializer.DirectCodecFactory{CodecFactory: scheme.Codecs}, | ||||||
| 			Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { | 			Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { | ||||||
| 				p := req.URL.Path | 				p := req.URL.Path | ||||||
| 				q := req.URL.RawQuery | 				q := req.URL.RawQuery | ||||||
| @@ -96,30 +102,30 @@ func fakeClientWith(testName string, t *testing.T, data map[string]string) Clien | |||||||
| 	}) | 	}) | ||||||
| } | } | ||||||
|  |  | ||||||
| func testData() (*api.PodList, *api.ServiceList) { | func testData() (*v1.PodList, *v1.ServiceList) { | ||||||
| 	pods := &api.PodList{ | 	pods := &v1.PodList{ | ||||||
| 		ListMeta: metav1.ListMeta{ | 		ListMeta: metav1.ListMeta{ | ||||||
| 			ResourceVersion: "15", | 			ResourceVersion: "15", | ||||||
| 		}, | 		}, | ||||||
| 		Items: []api.Pod{ | 		Items: []v1.Pod{ | ||||||
| 			{ | 			{ | ||||||
| 				ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "test", ResourceVersion: "10"}, | 				ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "test", ResourceVersion: "10"}, | ||||||
| 				Spec:       apitesting.DeepEqualSafePodSpec(), | 				Spec:       V1DeepEqualSafePodSpec(), | ||||||
| 			}, | 			}, | ||||||
| 			{ | 			{ | ||||||
| 				ObjectMeta: metav1.ObjectMeta{Name: "bar", Namespace: "test", ResourceVersion: "11"}, | 				ObjectMeta: metav1.ObjectMeta{Name: "bar", Namespace: "test", ResourceVersion: "11"}, | ||||||
| 				Spec:       apitesting.DeepEqualSafePodSpec(), | 				Spec:       V1DeepEqualSafePodSpec(), | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
| 	} | 	} | ||||||
| 	svc := &api.ServiceList{ | 	svc := &v1.ServiceList{ | ||||||
| 		ListMeta: metav1.ListMeta{ | 		ListMeta: metav1.ListMeta{ | ||||||
| 			ResourceVersion: "16", | 			ResourceVersion: "16", | ||||||
| 		}, | 		}, | ||||||
| 		Items: []api.Service{ | 		Items: []v1.Service{ | ||||||
| 			{ | 			{ | ||||||
| 				ObjectMeta: metav1.ObjectMeta{Name: "baz", Namespace: "test", ResourceVersion: "12"}, | 				ObjectMeta: metav1.ObjectMeta{Name: "baz", Namespace: "test", ResourceVersion: "12"}, | ||||||
| 				Spec: api.ServiceSpec{ | 				Spec: v1.ServiceSpec{ | ||||||
| 					Type:            "ClusterIP", | 					Type:            "ClusterIP", | ||||||
| 					SessionAffinity: "None", | 					SessionAffinity: "None", | ||||||
| 				}, | 				}, | ||||||
| @@ -129,13 +135,13 @@ func testData() (*api.PodList, *api.ServiceList) { | |||||||
| 	return pods, svc | 	return pods, svc | ||||||
| } | } | ||||||
|  |  | ||||||
| func streamTestData() (io.Reader, *api.PodList, *api.ServiceList) { | func streamTestData() (io.Reader, *v1.PodList, *v1.ServiceList) { | ||||||
| 	pods, svc := testData() | 	pods, svc := testData() | ||||||
| 	r, w := io.Pipe() | 	r, w := io.Pipe() | ||||||
| 	go func() { | 	go func() { | ||||||
| 		defer w.Close() | 		defer w.Close() | ||||||
| 		w.Write([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), pods))) | 		w.Write([]byte(runtime.EncodeOrDie(corev1Codec, pods))) | ||||||
| 		w.Write([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), svc))) | 		w.Write([]byte(runtime.EncodeOrDie(corev1Codec, svc))) | ||||||
| 	}() | 	}() | ||||||
| 	return r, pods, svc | 	return r, pods, svc | ||||||
| } | } | ||||||
| @@ -148,14 +154,14 @@ func JSONToYAMLOrDie(in []byte) []byte { | |||||||
| 	return data | 	return data | ||||||
| } | } | ||||||
|  |  | ||||||
| func streamYAMLTestData() (io.Reader, *api.PodList, *api.ServiceList) { | func streamYAMLTestData() (io.Reader, *v1.PodList, *v1.ServiceList) { | ||||||
| 	pods, svc := testData() | 	pods, svc := testData() | ||||||
| 	r, w := io.Pipe() | 	r, w := io.Pipe() | ||||||
| 	go func() { | 	go func() { | ||||||
| 		defer w.Close() | 		defer w.Close() | ||||||
| 		w.Write(JSONToYAMLOrDie([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), pods)))) | 		w.Write(JSONToYAMLOrDie([]byte(runtime.EncodeOrDie(corev1Codec, pods)))) | ||||||
| 		w.Write([]byte("\n---\n")) | 		w.Write([]byte("\n---\n")) | ||||||
| 		w.Write(JSONToYAMLOrDie([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), svc)))) | 		w.Write(JSONToYAMLOrDie([]byte(runtime.EncodeOrDie(corev1Codec, svc)))) | ||||||
| 	}() | 	}() | ||||||
| 	return r, pods, svc | 	return r, pods, svc | ||||||
| } | } | ||||||
| @@ -164,7 +170,7 @@ func streamTestObject(obj runtime.Object) io.Reader { | |||||||
| 	r, w := io.Pipe() | 	r, w := io.Pipe() | ||||||
| 	go func() { | 	go func() { | ||||||
| 		defer w.Close() | 		defer w.Close() | ||||||
| 		w.Write([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), obj))) | 		w.Write([]byte(runtime.EncodeOrDie(corev1Codec, obj))) | ||||||
| 	}() | 	}() | ||||||
| 	return r | 	return r | ||||||
| } | } | ||||||
| @@ -193,7 +199,7 @@ func (v *testVisitor) Objects() []runtime.Object { | |||||||
| var aPod string = ` | var aPod string = ` | ||||||
| { | { | ||||||
|     "kind": "Pod", |     "kind": "Pod", | ||||||
| 		"apiVersion": "` + legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String() + `", | 		"apiVersion": "` + corev1GV.String() + `", | ||||||
|     "metadata": { |     "metadata": { | ||||||
|         "name": "busybox{id}", |         "name": "busybox{id}", | ||||||
|         "labels": { |         "labels": { | ||||||
| @@ -220,7 +226,7 @@ var aPod string = ` | |||||||
| var aRC string = ` | var aRC string = ` | ||||||
| { | { | ||||||
|     "kind": "ReplicationController", |     "kind": "ReplicationController", | ||||||
| 		"apiVersion": "` + legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String() + `", | 		"apiVersion": "` + corev1GV.String() + `", | ||||||
|     "metadata": { |     "metadata": { | ||||||
|         "name": "busybox{id}", |         "name": "busybox{id}", | ||||||
|         "labels": { |         "labels": { | ||||||
| @@ -256,7 +262,7 @@ var aRC string = ` | |||||||
| ` | ` | ||||||
|  |  | ||||||
| func TestPathBuilderAndVersionedObjectNotDefaulted(t *testing.T) { | func TestPathBuilderAndVersionedObjectNotDefaulted(t *testing.T) { | ||||||
| 	b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClient(), testapi.Default.Codec()). | 	b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). | ||||||
| 		FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{"../../../test/fixtures/pkg/kubectl/builder/kitten-rc.yaml"}}) | 		FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{"../../../test/fixtures/pkg/kubectl/builder/kitten-rc.yaml"}}) | ||||||
|  |  | ||||||
| 	test := &testVisitor{} | 	test := &testVisitor{} | ||||||
| @@ -279,23 +285,23 @@ func TestPathBuilderAndVersionedObjectNotDefaulted(t *testing.T) { | |||||||
| } | } | ||||||
|  |  | ||||||
| func TestNodeBuilder(t *testing.T) { | func TestNodeBuilder(t *testing.T) { | ||||||
| 	node := &api.Node{ | 	node := &v1.Node{ | ||||||
| 		ObjectMeta: metav1.ObjectMeta{Name: "node1", Namespace: "should-not-have", ResourceVersion: "10"}, | 		ObjectMeta: metav1.ObjectMeta{Name: "node1", Namespace: "should-not-have", ResourceVersion: "10"}, | ||||||
| 		Spec:       api.NodeSpec{}, | 		Spec:       v1.NodeSpec{}, | ||||||
| 		Status: api.NodeStatus{ | 		Status: v1.NodeStatus{ | ||||||
| 			Capacity: api.ResourceList{ | 			Capacity: v1.ResourceList{ | ||||||
| 				api.ResourceCPU:    resource.MustParse("1000m"), | 				v1.ResourceCPU:    resource.MustParse("1000m"), | ||||||
| 				api.ResourceMemory: resource.MustParse("1Mi"), | 				v1.ResourceMemory: resource.MustParse("1Mi"), | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
| 	} | 	} | ||||||
| 	r, w := io.Pipe() | 	r, w := io.Pipe() | ||||||
| 	go func() { | 	go func() { | ||||||
| 		defer w.Close() | 		defer w.Close() | ||||||
| 		w.Write([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), node))) | 		w.Write([]byte(runtime.EncodeOrDie(corev1Codec, node))) | ||||||
| 	}() | 	}() | ||||||
|  |  | ||||||
| 	b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClient(), testapi.Default.Codec()). | 	b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). | ||||||
| 		NamespaceParam("test").Stream(r, "STDIN") | 		NamespaceParam("test").Stream(r, "STDIN") | ||||||
|  |  | ||||||
| 	test := &testVisitor{} | 	test := &testVisitor{} | ||||||
| @@ -350,16 +356,16 @@ func TestPathBuilderWithMultiple(t *testing.T) { | |||||||
| 		directory     string | 		directory     string | ||||||
| 		expectedNames []string | 		expectedNames []string | ||||||
| 	}{ | 	}{ | ||||||
| 		{"pod", &api.Pod{}, false, "../../../examples/pod", []string{"nginx"}}, | 		{"pod", &v1.Pod{}, false, "../../../examples/pod", []string{"nginx"}}, | ||||||
| 		{"recursive-pod", &api.Pod{}, true, fmt.Sprintf("%s/recursive/pod", tmpDir), []string{"busybox0", "busybox1"}}, | 		{"recursive-pod", &v1.Pod{}, true, fmt.Sprintf("%s/recursive/pod", tmpDir), []string{"busybox0", "busybox1"}}, | ||||||
| 		{"rc", &api.ReplicationController{}, false, "../../../examples/guestbook/legacy/redis-master-controller.yaml", []string{"redis-master"}}, | 		{"rc", &v1.ReplicationController{}, false, "../../../examples/guestbook/legacy/redis-master-controller.yaml", []string{"redis-master"}}, | ||||||
| 		{"recursive-rc", &api.ReplicationController{}, true, fmt.Sprintf("%s/recursive/rc", tmpDir), []string{"busybox0", "busybox1"}}, | 		{"recursive-rc", &v1.ReplicationController{}, true, fmt.Sprintf("%s/recursive/rc", tmpDir), []string{"busybox0", "busybox1"}}, | ||||||
| 		{"hardlink", &api.Pod{}, false, fmt.Sprintf("%s/inode/hardlink/busybox-link.json", tmpDir), []string{"busybox0"}}, | 		{"hardlink", &v1.Pod{}, false, fmt.Sprintf("%s/inode/hardlink/busybox-link.json", tmpDir), []string{"busybox0"}}, | ||||||
| 		{"hardlink", &api.Pod{}, true, fmt.Sprintf("%s/inode/hardlink/busybox-link.json", tmpDir), []string{"busybox0"}}, | 		{"hardlink", &v1.Pod{}, true, fmt.Sprintf("%s/inode/hardlink/busybox-link.json", tmpDir), []string{"busybox0"}}, | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	for _, test := range tests { | 	for _, test := range tests { | ||||||
| 		b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClient(), testapi.Default.Codec()). | 		b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). | ||||||
| 			FilenameParam(false, &FilenameOptions{Recursive: test.recursive, Filenames: []string{test.directory}}). | 			FilenameParam(false, &FilenameOptions{Recursive: test.recursive, Filenames: []string{test.directory}}). | ||||||
| 			NamespaceParam("test").DefaultNamespace() | 			NamespaceParam("test").DefaultNamespace() | ||||||
|  |  | ||||||
| @@ -375,12 +381,12 @@ func TestPathBuilderWithMultiple(t *testing.T) { | |||||||
|  |  | ||||||
| 		for i, v := range info { | 		for i, v := range info { | ||||||
| 			switch test.object.(type) { | 			switch test.object.(type) { | ||||||
| 			case *api.Pod: | 			case *v1.Pod: | ||||||
| 				if _, ok := v.Object.(*api.Pod); !ok || v.Name != test.expectedNames[i] || v.Namespace != "test" { | 				if _, ok := v.Object.(*v1.Pod); !ok || v.Name != test.expectedNames[i] || v.Namespace != "test" { | ||||||
| 					t.Errorf("unexpected info: %#v", v) | 					t.Errorf("unexpected info: %#v", v) | ||||||
| 				} | 				} | ||||||
| 			case *api.ReplicationController: | 			case *v1.ReplicationController: | ||||||
| 				if _, ok := v.Object.(*api.ReplicationController); !ok || v.Name != test.expectedNames[i] || v.Namespace != "test" { | 				if _, ok := v.Object.(*v1.ReplicationController); !ok || v.Name != test.expectedNames[i] || v.Namespace != "test" { | ||||||
| 					t.Errorf("unexpected info: %#v", v) | 					t.Errorf("unexpected info: %#v", v) | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| @@ -418,7 +424,7 @@ func TestPathBuilderWithMultipleInvalid(t *testing.T) { | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	for _, test := range tests { | 	for _, test := range tests { | ||||||
| 		b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClient(), testapi.Default.Codec()). | 		b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). | ||||||
| 			FilenameParam(false, &FilenameOptions{Recursive: test.recursive, Filenames: []string{test.directory}}). | 			FilenameParam(false, &FilenameOptions{Recursive: test.recursive, Filenames: []string{test.directory}}). | ||||||
| 			NamespaceParam("test").DefaultNamespace() | 			NamespaceParam("test").DefaultNamespace() | ||||||
|  |  | ||||||
| @@ -433,7 +439,7 @@ func TestPathBuilderWithMultipleInvalid(t *testing.T) { | |||||||
| } | } | ||||||
|  |  | ||||||
| func TestDirectoryBuilder(t *testing.T) { | func TestDirectoryBuilder(t *testing.T) { | ||||||
| 	b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClient(), testapi.Default.Codec()). | 	b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). | ||||||
| 		FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{"../../../examples/guestbook/legacy"}}). | 		FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{"../../../examples/guestbook/legacy"}}). | ||||||
| 		NamespaceParam("test").DefaultNamespace() | 		NamespaceParam("test").DefaultNamespace() | ||||||
|  |  | ||||||
| @@ -460,11 +466,11 @@ func TestDirectoryBuilder(t *testing.T) { | |||||||
| func TestNamespaceOverride(t *testing.T) { | func TestNamespaceOverride(t *testing.T) { | ||||||
| 	s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { | 	s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { | ||||||
| 		w.WriteHeader(http.StatusOK) | 		w.WriteHeader(http.StatusOK) | ||||||
| 		w.Write([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), &api.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: "foo", Name: "test"}}))) | 		w.Write([]byte(runtime.EncodeOrDie(corev1Codec, &v1.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: "foo", Name: "test"}}))) | ||||||
| 	})) | 	})) | ||||||
| 	defer s.Close() | 	defer s.Close() | ||||||
|  |  | ||||||
| 	b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClient(), testapi.Default.Codec()). | 	b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). | ||||||
| 		FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{s.URL}}). | 		FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{s.URL}}). | ||||||
| 		NamespaceParam("test") | 		NamespaceParam("test") | ||||||
|  |  | ||||||
| @@ -475,7 +481,7 @@ func TestNamespaceOverride(t *testing.T) { | |||||||
| 		t.Fatalf("unexpected response: %v %#v", err, test.Infos) | 		t.Fatalf("unexpected response: %v %#v", err, test.Infos) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	b = NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClient(), testapi.Default.Codec()). | 	b = NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). | ||||||
| 		FilenameParam(true, &FilenameOptions{Recursive: false, Filenames: []string{s.URL}}). | 		FilenameParam(true, &FilenameOptions{Recursive: false, Filenames: []string{s.URL}}). | ||||||
| 		NamespaceParam("test") | 		NamespaceParam("test") | ||||||
|  |  | ||||||
| @@ -490,12 +496,12 @@ func TestNamespaceOverride(t *testing.T) { | |||||||
| func TestURLBuilder(t *testing.T) { | func TestURLBuilder(t *testing.T) { | ||||||
| 	s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { | 	s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { | ||||||
| 		w.WriteHeader(http.StatusOK) | 		w.WriteHeader(http.StatusOK) | ||||||
| 		w.Write([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), &api.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: "foo", Name: "test"}}))) | 		w.Write([]byte(runtime.EncodeOrDie(corev1Codec, &v1.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: "foo", Name: "test"}}))) | ||||||
| 		w.Write([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), &api.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: "foo", Name: "test1"}}))) | 		w.Write([]byte(runtime.EncodeOrDie(corev1Codec, &v1.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: "foo", Name: "test1"}}))) | ||||||
| 	})) | 	})) | ||||||
| 	defer s.Close() | 	defer s.Close() | ||||||
|  |  | ||||||
| 	b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClient(), testapi.Default.Codec()). | 	b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). | ||||||
| 		FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{s.URL}}). | 		FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{s.URL}}). | ||||||
| 		NamespaceParam("foo") | 		NamespaceParam("foo") | ||||||
|  |  | ||||||
| @@ -520,11 +526,11 @@ func TestURLBuilder(t *testing.T) { | |||||||
| func TestURLBuilderRequireNamespace(t *testing.T) { | func TestURLBuilderRequireNamespace(t *testing.T) { | ||||||
| 	s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { | 	s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { | ||||||
| 		w.WriteHeader(http.StatusOK) | 		w.WriteHeader(http.StatusOK) | ||||||
| 		w.Write([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), &api.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: "foo", Name: "test"}}))) | 		w.Write([]byte(runtime.EncodeOrDie(corev1Codec, &v1.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: "foo", Name: "test"}}))) | ||||||
| 	})) | 	})) | ||||||
| 	defer s.Close() | 	defer s.Close() | ||||||
|  |  | ||||||
| 	b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClient(), testapi.Default.Codec()). | 	b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). | ||||||
| 		FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{s.URL}}). | 		FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{s.URL}}). | ||||||
| 		NamespaceParam("test").RequireNamespace() | 		NamespaceParam("test").RequireNamespace() | ||||||
|  |  | ||||||
| @@ -539,9 +545,9 @@ func TestURLBuilderRequireNamespace(t *testing.T) { | |||||||
|  |  | ||||||
| func TestResourceByName(t *testing.T) { | func TestResourceByName(t *testing.T) { | ||||||
| 	pods, _ := testData() | 	pods, _ := testData() | ||||||
| 	b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClientWith("", t, map[string]string{ | 	b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith("", t, map[string]string{ | ||||||
| 		"/namespaces/test/pods/foo": runtime.EncodeOrDie(testapi.Default.Codec(), &pods.Items[0]), | 		"/namespaces/test/pods/foo": runtime.EncodeOrDie(corev1Codec, &pods.Items[0]), | ||||||
| 	}), testapi.Default.Codec()). | 	}), corev1Codec). | ||||||
| 		NamespaceParam("test") | 		NamespaceParam("test") | ||||||
|  |  | ||||||
| 	test := &testVisitor{} | 	test := &testVisitor{} | ||||||
| @@ -572,12 +578,12 @@ func TestResourceByName(t *testing.T) { | |||||||
|  |  | ||||||
| func TestMultipleResourceByTheSameName(t *testing.T) { | func TestMultipleResourceByTheSameName(t *testing.T) { | ||||||
| 	pods, svcs := testData() | 	pods, svcs := testData() | ||||||
| 	b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClientWith("", t, map[string]string{ | 	b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith("", t, map[string]string{ | ||||||
| 		"/namespaces/test/pods/foo":     runtime.EncodeOrDie(testapi.Default.Codec(), &pods.Items[0]), | 		"/namespaces/test/pods/foo":     runtime.EncodeOrDie(corev1Codec, &pods.Items[0]), | ||||||
| 		"/namespaces/test/pods/baz":     runtime.EncodeOrDie(testapi.Default.Codec(), &pods.Items[1]), | 		"/namespaces/test/pods/baz":     runtime.EncodeOrDie(corev1Codec, &pods.Items[1]), | ||||||
| 		"/namespaces/test/services/foo": runtime.EncodeOrDie(testapi.Default.Codec(), &svcs.Items[0]), | 		"/namespaces/test/services/foo": runtime.EncodeOrDie(corev1Codec, &svcs.Items[0]), | ||||||
| 		"/namespaces/test/services/baz": runtime.EncodeOrDie(testapi.Default.Codec(), &svcs.Items[0]), | 		"/namespaces/test/services/baz": runtime.EncodeOrDie(corev1Codec, &svcs.Items[0]), | ||||||
| 	}), testapi.Default.Codec()). | 	}), corev1Codec). | ||||||
| 		NamespaceParam("test") | 		NamespaceParam("test") | ||||||
|  |  | ||||||
| 	test := &testVisitor{} | 	test := &testVisitor{} | ||||||
| @@ -604,10 +610,10 @@ func TestMultipleResourceByTheSameName(t *testing.T) { | |||||||
|  |  | ||||||
| func TestResourceNames(t *testing.T) { | func TestResourceNames(t *testing.T) { | ||||||
| 	pods, svc := testData() | 	pods, svc := testData() | ||||||
| 	b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClientWith("", t, map[string]string{ | 	b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith("", t, map[string]string{ | ||||||
| 		"/namespaces/test/pods/foo":     runtime.EncodeOrDie(testapi.Default.Codec(), &pods.Items[0]), | 		"/namespaces/test/pods/foo":     runtime.EncodeOrDie(corev1Codec, &pods.Items[0]), | ||||||
| 		"/namespaces/test/services/baz": runtime.EncodeOrDie(testapi.Default.Codec(), &svc.Items[0]), | 		"/namespaces/test/services/baz": runtime.EncodeOrDie(corev1Codec, &svc.Items[0]), | ||||||
| 	}), testapi.Default.Codec()). | 	}), corev1Codec). | ||||||
| 		NamespaceParam("test") | 		NamespaceParam("test") | ||||||
|  |  | ||||||
| 	test := &testVisitor{} | 	test := &testVisitor{} | ||||||
| @@ -632,10 +638,10 @@ func TestResourceNames(t *testing.T) { | |||||||
|  |  | ||||||
| func TestResourceNamesWithoutResource(t *testing.T) { | func TestResourceNamesWithoutResource(t *testing.T) { | ||||||
| 	pods, svc := testData() | 	pods, svc := testData() | ||||||
| 	b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClientWith("", t, map[string]string{ | 	b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith("", t, map[string]string{ | ||||||
| 		"/namespaces/test/pods/foo":     runtime.EncodeOrDie(testapi.Default.Codec(), &pods.Items[0]), | 		"/namespaces/test/pods/foo":     runtime.EncodeOrDie(corev1Codec, &pods.Items[0]), | ||||||
| 		"/namespaces/test/services/baz": runtime.EncodeOrDie(testapi.Default.Codec(), &svc.Items[0]), | 		"/namespaces/test/services/baz": runtime.EncodeOrDie(corev1Codec, &svc.Items[0]), | ||||||
| 	}), testapi.Default.Codec()). | 	}), corev1Codec). | ||||||
| 		NamespaceParam("test") | 		NamespaceParam("test") | ||||||
|  |  | ||||||
| 	test := &testVisitor{} | 	test := &testVisitor{} | ||||||
| @@ -653,7 +659,7 @@ func TestResourceNamesWithoutResource(t *testing.T) { | |||||||
| } | } | ||||||
|  |  | ||||||
| func TestResourceByNameWithoutRequireObject(t *testing.T) { | func TestResourceByNameWithoutRequireObject(t *testing.T) { | ||||||
| 	b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClientWith("", t, map[string]string{}), testapi.Default.Codec()). | 	b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith("", t, map[string]string{}), corev1Codec). | ||||||
| 		NamespaceParam("test") | 		NamespaceParam("test") | ||||||
|  |  | ||||||
| 	test := &testVisitor{} | 	test := &testVisitor{} | ||||||
| @@ -687,9 +693,9 @@ func TestResourceByNameWithoutRequireObject(t *testing.T) { | |||||||
|  |  | ||||||
| func TestResourceByNameAndEmptySelector(t *testing.T) { | func TestResourceByNameAndEmptySelector(t *testing.T) { | ||||||
| 	pods, _ := testData() | 	pods, _ := testData() | ||||||
| 	b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClientWith("", t, map[string]string{ | 	b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith("", t, map[string]string{ | ||||||
| 		"/namespaces/test/pods/foo": runtime.EncodeOrDie(testapi.Default.Codec(), &pods.Items[0]), | 		"/namespaces/test/pods/foo": runtime.EncodeOrDie(corev1Codec, &pods.Items[0]), | ||||||
| 	}), testapi.Default.Codec()). | 	}), corev1Codec). | ||||||
| 		NamespaceParam("test"). | 		NamespaceParam("test"). | ||||||
| 		SelectorParam(""). | 		SelectorParam(""). | ||||||
| 		ResourceTypeOrNameArgs(true, "pods", "foo") | 		ResourceTypeOrNameArgs(true, "pods", "foo") | ||||||
| @@ -714,11 +720,11 @@ func TestResourceByNameAndEmptySelector(t *testing.T) { | |||||||
|  |  | ||||||
| func TestSelector(t *testing.T) { | func TestSelector(t *testing.T) { | ||||||
| 	pods, svc := testData() | 	pods, svc := testData() | ||||||
| 	labelKey := metav1.LabelSelectorQueryParam(legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String()) | 	labelKey := metav1.LabelSelectorQueryParam(corev1GV.String()) | ||||||
| 	b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClientWith("", t, map[string]string{ | 	b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith("", t, map[string]string{ | ||||||
| 		"/namespaces/test/pods?" + labelKey + "=a%3Db":     runtime.EncodeOrDie(testapi.Default.Codec(), pods), | 		"/namespaces/test/pods?" + labelKey + "=a%3Db":     runtime.EncodeOrDie(corev1Codec, pods), | ||||||
| 		"/namespaces/test/services?" + labelKey + "=a%3Db": runtime.EncodeOrDie(testapi.Default.Codec(), svc), | 		"/namespaces/test/services?" + labelKey + "=a%3Db": runtime.EncodeOrDie(corev1Codec, svc), | ||||||
| 	}), testapi.Default.Codec()). | 	}), corev1Codec). | ||||||
| 		SelectorParam("a=b"). | 		SelectorParam("a=b"). | ||||||
| 		NamespaceParam("test"). | 		NamespaceParam("test"). | ||||||
| 		Flatten() | 		Flatten() | ||||||
| @@ -746,7 +752,7 @@ func TestSelector(t *testing.T) { | |||||||
| } | } | ||||||
|  |  | ||||||
| func TestSelectorRequiresKnownTypes(t *testing.T) { | func TestSelectorRequiresKnownTypes(t *testing.T) { | ||||||
| 	b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClient(), testapi.Default.Codec()). | 	b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). | ||||||
| 		SelectorParam("a=b"). | 		SelectorParam("a=b"). | ||||||
| 		NamespaceParam("test"). | 		NamespaceParam("test"). | ||||||
| 		ResourceTypes("unknown") | 		ResourceTypes("unknown") | ||||||
| @@ -757,7 +763,7 @@ func TestSelectorRequiresKnownTypes(t *testing.T) { | |||||||
| } | } | ||||||
|  |  | ||||||
| func TestSingleResourceType(t *testing.T) { | func TestSingleResourceType(t *testing.T) { | ||||||
| 	b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClient(), testapi.Default.Codec()). | 	b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). | ||||||
| 		SelectorParam("a=b"). | 		SelectorParam("a=b"). | ||||||
| 		SingleResourceType(). | 		SingleResourceType(). | ||||||
| 		ResourceTypeOrNameArgs(true, "pods,services") | 		ResourceTypeOrNameArgs(true, "pods,services") | ||||||
| @@ -821,13 +827,13 @@ func TestResourceTuple(t *testing.T) { | |||||||
| 			if requireObject { | 			if requireObject { | ||||||
| 				pods, _ := testData() | 				pods, _ := testData() | ||||||
| 				expectedRequests = map[string]string{ | 				expectedRequests = map[string]string{ | ||||||
| 					"/namespaces/test/pods/foo": runtime.EncodeOrDie(testapi.Default.Codec(), &pods.Items[0]), | 					"/namespaces/test/pods/foo": runtime.EncodeOrDie(corev1Codec, &pods.Items[0]), | ||||||
| 					"/namespaces/test/pods/bar": runtime.EncodeOrDie(testapi.Default.Codec(), &pods.Items[0]), | 					"/namespaces/test/pods/bar": runtime.EncodeOrDie(corev1Codec, &pods.Items[0]), | ||||||
| 					"/nodes/foo":                runtime.EncodeOrDie(testapi.Default.Codec(), &api.Node{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}), | 					"/nodes/foo":                runtime.EncodeOrDie(corev1Codec, &v1.Node{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}), | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
| 			b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClientWith(k, t, expectedRequests), testapi.Default.Codec()). | 			b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith(k, t, expectedRequests), corev1Codec). | ||||||
| 				NamespaceParam("test").DefaultNamespace(). | 				NamespaceParam("test").DefaultNamespace(). | ||||||
| 				ResourceTypeOrNameArgs(true, testCase.args...).RequireObject(requireObject) | 				ResourceTypeOrNameArgs(true, testCase.args...).RequireObject(requireObject) | ||||||
|  |  | ||||||
| @@ -858,7 +864,7 @@ func TestResourceTuple(t *testing.T) { | |||||||
|  |  | ||||||
| func TestStream(t *testing.T) { | func TestStream(t *testing.T) { | ||||||
| 	r, pods, rc := streamTestData() | 	r, pods, rc := streamTestData() | ||||||
| 	b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClient(), testapi.Default.Codec()). | 	b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). | ||||||
| 		NamespaceParam("test").Stream(r, "STDIN").Flatten() | 		NamespaceParam("test").Stream(r, "STDIN").Flatten() | ||||||
|  |  | ||||||
| 	test := &testVisitor{} | 	test := &testVisitor{} | ||||||
| @@ -875,7 +881,7 @@ func TestStream(t *testing.T) { | |||||||
|  |  | ||||||
| func TestYAMLStream(t *testing.T) { | func TestYAMLStream(t *testing.T) { | ||||||
| 	r, pods, rc := streamYAMLTestData() | 	r, pods, rc := streamYAMLTestData() | ||||||
| 	b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClient(), testapi.Default.Codec()). | 	b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). | ||||||
| 		NamespaceParam("test").Stream(r, "STDIN").Flatten() | 		NamespaceParam("test").Stream(r, "STDIN").Flatten() | ||||||
|  |  | ||||||
| 	test := &testVisitor{} | 	test := &testVisitor{} | ||||||
| @@ -892,7 +898,7 @@ func TestYAMLStream(t *testing.T) { | |||||||
|  |  | ||||||
| func TestMultipleObject(t *testing.T) { | func TestMultipleObject(t *testing.T) { | ||||||
| 	r, pods, svc := streamTestData() | 	r, pods, svc := streamTestData() | ||||||
| 	obj, err := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClient(), testapi.Default.Codec()). | 	obj, err := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). | ||||||
| 		NamespaceParam("test").Stream(r, "STDIN").Flatten(). | 		NamespaceParam("test").Stream(r, "STDIN").Flatten(). | ||||||
| 		Do().Object() | 		Do().Object() | ||||||
|  |  | ||||||
| @@ -914,7 +920,7 @@ func TestMultipleObject(t *testing.T) { | |||||||
|  |  | ||||||
| func TestContinueOnErrorVisitor(t *testing.T) { | func TestContinueOnErrorVisitor(t *testing.T) { | ||||||
| 	r, _, _ := streamTestData() | 	r, _, _ := streamTestData() | ||||||
| 	req := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClient(), testapi.Default.Codec()). | 	req := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). | ||||||
| 		ContinueOnError(). | 		ContinueOnError(). | ||||||
| 		NamespaceParam("test").Stream(r, "STDIN").Flatten(). | 		NamespaceParam("test").Stream(r, "STDIN").Flatten(). | ||||||
| 		Do() | 		Do() | ||||||
| @@ -943,7 +949,7 @@ func TestContinueOnErrorVisitor(t *testing.T) { | |||||||
| } | } | ||||||
|  |  | ||||||
| func TestSingleItemImpliedObject(t *testing.T) { | func TestSingleItemImpliedObject(t *testing.T) { | ||||||
| 	obj, err := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClient(), testapi.Default.Codec()). | 	obj, err := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). | ||||||
| 		NamespaceParam("test").DefaultNamespace(). | 		NamespaceParam("test").DefaultNamespace(). | ||||||
| 		FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{"../../../examples/guestbook/legacy/redis-master-controller.yaml"}}). | 		FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{"../../../examples/guestbook/legacy/redis-master-controller.yaml"}}). | ||||||
| 		Flatten(). | 		Flatten(). | ||||||
| @@ -953,7 +959,7 @@ func TestSingleItemImpliedObject(t *testing.T) { | |||||||
| 		t.Fatalf("unexpected error: %v", err) | 		t.Fatalf("unexpected error: %v", err) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	rc, ok := obj.(*api.ReplicationController) | 	rc, ok := obj.(*v1.ReplicationController) | ||||||
| 	if !ok { | 	if !ok { | ||||||
| 		t.Fatalf("unexpected object: %#v", obj) | 		t.Fatalf("unexpected object: %#v", obj) | ||||||
| 	} | 	} | ||||||
| @@ -963,7 +969,7 @@ func TestSingleItemImpliedObject(t *testing.T) { | |||||||
| } | } | ||||||
|  |  | ||||||
| func TestSingleItemImpliedObjectNoExtension(t *testing.T) { | func TestSingleItemImpliedObjectNoExtension(t *testing.T) { | ||||||
| 	obj, err := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClient(), testapi.Default.Codec()). | 	obj, err := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). | ||||||
| 		NamespaceParam("test").DefaultNamespace(). | 		NamespaceParam("test").DefaultNamespace(). | ||||||
| 		FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{"../../../examples/pod"}}). | 		FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{"../../../examples/pod"}}). | ||||||
| 		Flatten(). | 		Flatten(). | ||||||
| @@ -973,7 +979,7 @@ func TestSingleItemImpliedObjectNoExtension(t *testing.T) { | |||||||
| 		t.Fatalf("unexpected error: %v", err) | 		t.Fatalf("unexpected error: %v", err) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	pod, ok := obj.(*api.Pod) | 	pod, ok := obj.(*v1.Pod) | ||||||
| 	if !ok { | 	if !ok { | ||||||
| 		t.Fatalf("unexpected object: %#v", obj) | 		t.Fatalf("unexpected object: %#v", obj) | ||||||
| 	} | 	} | ||||||
| @@ -983,9 +989,9 @@ func TestSingleItemImpliedObjectNoExtension(t *testing.T) { | |||||||
| } | } | ||||||
|  |  | ||||||
| func TestSingleItemImpliedRootScopedObject(t *testing.T) { | func TestSingleItemImpliedRootScopedObject(t *testing.T) { | ||||||
| 	node := &api.Node{ObjectMeta: metav1.ObjectMeta{Name: "test"}, Spec: api.NodeSpec{ExternalID: "test"}} | 	node := &v1.Node{ObjectMeta: metav1.ObjectMeta{Name: "test"}, Spec: v1.NodeSpec{ExternalID: "test"}} | ||||||
| 	r := streamTestObject(node) | 	r := streamTestObject(node) | ||||||
| 	infos, err := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClient(), testapi.Default.Codec()). | 	infos, err := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). | ||||||
| 		NamespaceParam("test").DefaultNamespace(). | 		NamespaceParam("test").DefaultNamespace(). | ||||||
| 		Stream(r, "STDIN"). | 		Stream(r, "STDIN"). | ||||||
| 		Flatten(). | 		Flatten(). | ||||||
| @@ -998,7 +1004,7 @@ func TestSingleItemImpliedRootScopedObject(t *testing.T) { | |||||||
| 	if infos[0].Namespace != "" { | 	if infos[0].Namespace != "" { | ||||||
| 		t.Errorf("namespace should be empty: %#v", infos[0]) | 		t.Errorf("namespace should be empty: %#v", infos[0]) | ||||||
| 	} | 	} | ||||||
| 	n, ok := infos[0].Object.(*api.Node) | 	n, ok := infos[0].Object.(*v1.Node) | ||||||
| 	if !ok { | 	if !ok { | ||||||
| 		t.Fatalf("unexpected object: %#v", infos[0].Object) | 		t.Fatalf("unexpected object: %#v", infos[0].Object) | ||||||
| 	} | 	} | ||||||
| @@ -1009,10 +1015,10 @@ func TestSingleItemImpliedRootScopedObject(t *testing.T) { | |||||||
|  |  | ||||||
| func TestListObject(t *testing.T) { | func TestListObject(t *testing.T) { | ||||||
| 	pods, _ := testData() | 	pods, _ := testData() | ||||||
| 	labelKey := metav1.LabelSelectorQueryParam(legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String()) | 	labelKey := metav1.LabelSelectorQueryParam(corev1GV.String()) | ||||||
| 	b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClientWith("", t, map[string]string{ | 	b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith("", t, map[string]string{ | ||||||
| 		"/namespaces/test/pods?" + labelKey + "=a%3Db": runtime.EncodeOrDie(testapi.Default.Codec(), pods), | 		"/namespaces/test/pods?" + labelKey + "=a%3Db": runtime.EncodeOrDie(corev1Codec, pods), | ||||||
| 	}), testapi.Default.Codec()). | 	}), corev1Codec). | ||||||
| 		SelectorParam("a=b"). | 		SelectorParam("a=b"). | ||||||
| 		NamespaceParam("test"). | 		NamespaceParam("test"). | ||||||
| 		ResourceTypeOrNameArgs(true, "pods"). | 		ResourceTypeOrNameArgs(true, "pods"). | ||||||
| @@ -1042,11 +1048,11 @@ func TestListObject(t *testing.T) { | |||||||
|  |  | ||||||
| func TestListObjectWithDifferentVersions(t *testing.T) { | func TestListObjectWithDifferentVersions(t *testing.T) { | ||||||
| 	pods, svc := testData() | 	pods, svc := testData() | ||||||
| 	labelKey := metav1.LabelSelectorQueryParam(legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String()) | 	labelKey := metav1.LabelSelectorQueryParam(corev1GV.String()) | ||||||
| 	obj, err := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClientWith("", t, map[string]string{ | 	obj, err := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith("", t, map[string]string{ | ||||||
| 		"/namespaces/test/pods?" + labelKey + "=a%3Db":     runtime.EncodeOrDie(testapi.Default.Codec(), pods), | 		"/namespaces/test/pods?" + labelKey + "=a%3Db":     runtime.EncodeOrDie(corev1Codec, pods), | ||||||
| 		"/namespaces/test/services?" + labelKey + "=a%3Db": runtime.EncodeOrDie(testapi.Default.Codec(), svc), | 		"/namespaces/test/services?" + labelKey + "=a%3Db": runtime.EncodeOrDie(corev1Codec, svc), | ||||||
| 	}), testapi.Default.Codec()). | 	}), corev1Codec). | ||||||
| 		SelectorParam("a=b"). | 		SelectorParam("a=b"). | ||||||
| 		NamespaceParam("test"). | 		NamespaceParam("test"). | ||||||
| 		ResourceTypeOrNameArgs(true, "pods,services"). | 		ResourceTypeOrNameArgs(true, "pods,services"). | ||||||
| @@ -1069,12 +1075,12 @@ func TestListObjectWithDifferentVersions(t *testing.T) { | |||||||
|  |  | ||||||
| func TestWatch(t *testing.T) { | func TestWatch(t *testing.T) { | ||||||
| 	_, svc := testData() | 	_, svc := testData() | ||||||
| 	w, err := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClientWith("", t, map[string]string{ | 	w, err := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith("", t, map[string]string{ | ||||||
| 		"/namespaces/test/services?fieldSelector=metadata.name%3Dredis-master&resourceVersion=12&watch=true": watchBody(watch.Event{ | 		"/namespaces/test/services?fieldSelector=metadata.name%3Dredis-master&resourceVersion=12&watch=true": watchBody(watch.Event{ | ||||||
| 			Type:   watch.Added, | 			Type:   watch.Added, | ||||||
| 			Object: &svc.Items[0], | 			Object: &svc.Items[0], | ||||||
| 		}), | 		}), | ||||||
| 	}), testapi.Default.Codec()). | 	}), corev1Codec). | ||||||
| 		NamespaceParam("test").DefaultNamespace(). | 		NamespaceParam("test").DefaultNamespace(). | ||||||
| 		FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{"../../../examples/guestbook/redis-master-service.yaml"}}).Flatten(). | 		FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{"../../../examples/guestbook/redis-master-service.yaml"}}).Flatten(). | ||||||
| 		Do().Watch("12") | 		Do().Watch("12") | ||||||
| @@ -1090,7 +1096,7 @@ func TestWatch(t *testing.T) { | |||||||
| 		if obj.Type != watch.Added { | 		if obj.Type != watch.Added { | ||||||
| 			t.Fatalf("unexpected watch event %#v", obj) | 			t.Fatalf("unexpected watch event %#v", obj) | ||||||
| 		} | 		} | ||||||
| 		service, ok := obj.Object.(*api.Service) | 		service, ok := obj.Object.(*v1.Service) | ||||||
| 		if !ok { | 		if !ok { | ||||||
| 			t.Fatalf("unexpected object: %#v", obj) | 			t.Fatalf("unexpected object: %#v", obj) | ||||||
| 		} | 		} | ||||||
| @@ -1101,7 +1107,7 @@ func TestWatch(t *testing.T) { | |||||||
| } | } | ||||||
|  |  | ||||||
| func TestWatchMultipleError(t *testing.T) { | func TestWatchMultipleError(t *testing.T) { | ||||||
| 	_, err := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClient(), testapi.Default.Codec()). | 	_, err := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). | ||||||
| 		NamespaceParam("test").DefaultNamespace(). | 		NamespaceParam("test").DefaultNamespace(). | ||||||
| 		FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{"../../../examples/guestbook/legacy/redis-master-controller.yaml"}}).Flatten(). | 		FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{"../../../examples/guestbook/legacy/redis-master-controller.yaml"}}).Flatten(). | ||||||
| 		FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{"../../../examples/guestbook/legacy/redis-master-controller.yaml"}}).Flatten(). | 		FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{"../../../examples/guestbook/legacy/redis-master-controller.yaml"}}).Flatten(). | ||||||
| @@ -1114,21 +1120,21 @@ func TestWatchMultipleError(t *testing.T) { | |||||||
|  |  | ||||||
| func TestLatest(t *testing.T) { | func TestLatest(t *testing.T) { | ||||||
| 	r, _, _ := streamTestData() | 	r, _, _ := streamTestData() | ||||||
| 	newPod := &api.Pod{ | 	newPod := &v1.Pod{ | ||||||
| 		ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "test", ResourceVersion: "13"}, | 		ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "test", ResourceVersion: "13"}, | ||||||
| 	} | 	} | ||||||
| 	newPod2 := &api.Pod{ | 	newPod2 := &v1.Pod{ | ||||||
| 		ObjectMeta: metav1.ObjectMeta{Name: "bar", Namespace: "test", ResourceVersion: "14"}, | 		ObjectMeta: metav1.ObjectMeta{Name: "bar", Namespace: "test", ResourceVersion: "14"}, | ||||||
| 	} | 	} | ||||||
| 	newSvc := &api.Service{ | 	newSvc := &v1.Service{ | ||||||
| 		ObjectMeta: metav1.ObjectMeta{Name: "baz", Namespace: "test", ResourceVersion: "15"}, | 		ObjectMeta: metav1.ObjectMeta{Name: "baz", Namespace: "test", ResourceVersion: "15"}, | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClientWith("", t, map[string]string{ | 	b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith("", t, map[string]string{ | ||||||
| 		"/namespaces/test/pods/foo":     runtime.EncodeOrDie(testapi.Default.Codec(), newPod), | 		"/namespaces/test/pods/foo":     runtime.EncodeOrDie(corev1Codec, newPod), | ||||||
| 		"/namespaces/test/pods/bar":     runtime.EncodeOrDie(testapi.Default.Codec(), newPod2), | 		"/namespaces/test/pods/bar":     runtime.EncodeOrDie(corev1Codec, newPod2), | ||||||
| 		"/namespaces/test/services/baz": runtime.EncodeOrDie(testapi.Default.Codec(), newSvc), | 		"/namespaces/test/services/baz": runtime.EncodeOrDie(corev1Codec, newSvc), | ||||||
| 	}), testapi.Default.Codec()). | 	}), corev1Codec). | ||||||
| 		NamespaceParam("other").Stream(r, "STDIN").Flatten().Latest() | 		NamespaceParam("other").Stream(r, "STDIN").Flatten().Latest() | ||||||
|  |  | ||||||
| 	test := &testVisitor{} | 	test := &testVisitor{} | ||||||
| @@ -1150,17 +1156,17 @@ func TestReceiveMultipleErrors(t *testing.T) { | |||||||
| 	go func() { | 	go func() { | ||||||
| 		defer w.Close() | 		defer w.Close() | ||||||
| 		w.Write([]byte(`{}`)) | 		w.Write([]byte(`{}`)) | ||||||
| 		w.Write([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), &pods.Items[0]))) | 		w.Write([]byte(runtime.EncodeOrDie(corev1Codec, &pods.Items[0]))) | ||||||
| 	}() | 	}() | ||||||
|  |  | ||||||
| 	r2, w2 := io.Pipe() | 	r2, w2 := io.Pipe() | ||||||
| 	go func() { | 	go func() { | ||||||
| 		defer w2.Close() | 		defer w2.Close() | ||||||
| 		w2.Write([]byte(`{}`)) | 		w2.Write([]byte(`{}`)) | ||||||
| 		w2.Write([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), &svc.Items[0]))) | 		w2.Write([]byte(runtime.EncodeOrDie(corev1Codec, &svc.Items[0]))) | ||||||
| 	}() | 	}() | ||||||
|  |  | ||||||
| 	b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, legacyscheme.Scheme, fakeClient(), testapi.Default.Codec()). | 	b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). | ||||||
| 		Stream(r, "1").Stream(r2, "2"). | 		Stream(r, "1").Stream(r2, "2"). | ||||||
| 		ContinueOnError() | 		ContinueOnError() | ||||||
|  |  | ||||||
|   | |||||||
| @@ -26,18 +26,17 @@ import ( | |||||||
| 	"strings" | 	"strings" | ||||||
| 	"testing" | 	"testing" | ||||||
|  |  | ||||||
|  | 	corev1 "k8s.io/api/core/v1" | ||||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||||
| 	"k8s.io/apimachinery/pkg/labels" | 	"k8s.io/apimachinery/pkg/labels" | ||||||
| 	"k8s.io/apimachinery/pkg/runtime" | 	"k8s.io/apimachinery/pkg/runtime" | ||||||
|  | 	"k8s.io/apimachinery/pkg/runtime/serializer" | ||||||
|  | 	"k8s.io/client-go/kubernetes/scheme" | ||||||
| 	"k8s.io/client-go/rest/fake" | 	"k8s.io/client-go/rest/fake" | ||||||
| 	"k8s.io/kubernetes/pkg/api" |  | ||||||
| 	"k8s.io/kubernetes/pkg/api/legacyscheme" |  | ||||||
| 	"k8s.io/kubernetes/pkg/api/testapi" |  | ||||||
| 	apitesting "k8s.io/kubernetes/pkg/api/testing" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func objBody(obj runtime.Object) io.ReadCloser { | func objBody(obj runtime.Object) io.ReadCloser { | ||||||
| 	return ioutil.NopCloser(bytes.NewReader([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), obj)))) | 	return ioutil.NopCloser(bytes.NewReader([]byte(runtime.EncodeOrDie(corev1Codec, obj)))) | ||||||
| } | } | ||||||
|  |  | ||||||
| func header() http.Header { | func header() http.Header { | ||||||
| @@ -55,6 +54,17 @@ func splitPath(path string) []string { | |||||||
| 	return strings.Split(path, "/") | 	return strings.Split(path, "/") | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // V1DeepEqualSafePodSpec returns a PodSpec which is ready to be used with apiequality.Semantic.DeepEqual | ||||||
|  | func V1DeepEqualSafePodSpec() corev1.PodSpec { | ||||||
|  | 	grace := int64(30) | ||||||
|  | 	return corev1.PodSpec{ | ||||||
|  | 		RestartPolicy:                 corev1.RestartPolicyAlways, | ||||||
|  | 		DNSPolicy:                     corev1.DNSClusterFirst, | ||||||
|  | 		TerminationGracePeriodSeconds: &grace, | ||||||
|  | 		SecurityContext:               &corev1.PodSecurityContext{}, | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
| func TestHelperDelete(t *testing.T) { | func TestHelperDelete(t *testing.T) { | ||||||
| 	tests := []struct { | 	tests := []struct { | ||||||
| 		Err     bool | 		Err     bool | ||||||
| @@ -104,8 +114,7 @@ func TestHelperDelete(t *testing.T) { | |||||||
| 	} | 	} | ||||||
| 	for _, test := range tests { | 	for _, test := range tests { | ||||||
| 		client := &fake.RESTClient{ | 		client := &fake.RESTClient{ | ||||||
| 			GroupVersion:         legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion, | 			NegotiatedSerializer: scheme.Codecs, | ||||||
| 			NegotiatedSerializer: testapi.Default.NegotiatedSerializer(), |  | ||||||
| 			Resp:                 test.Resp, | 			Resp:                 test.Resp, | ||||||
| 			Err:                  test.HttpErr, | 			Err:                  test.HttpErr, | ||||||
| 		} | 		} | ||||||
| @@ -168,26 +177,26 @@ func TestHelperCreate(t *testing.T) { | |||||||
| 				Header:     header(), | 				Header:     header(), | ||||||
| 				Body:       objBody(&metav1.Status{Status: metav1.StatusSuccess}), | 				Body:       objBody(&metav1.Status{Status: metav1.StatusSuccess}), | ||||||
| 			}, | 			}, | ||||||
| 			Object:       &api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, | 			Object:       &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, | ||||||
| 			ExpectObject: &api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, | 			ExpectObject: &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, | ||||||
| 			Req:          expectPost, | 			Req:          expectPost, | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			Modify:       false, | 			Modify:       false, | ||||||
| 			Object:       &api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}}, | 			Object:       &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}}, | ||||||
| 			ExpectObject: &api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}}, | 			ExpectObject: &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}}, | ||||||
| 			Resp:         &http.Response{StatusCode: http.StatusOK, Header: header(), Body: objBody(&metav1.Status{Status: metav1.StatusSuccess})}, | 			Resp:         &http.Response{StatusCode: http.StatusOK, Header: header(), Body: objBody(&metav1.Status{Status: metav1.StatusSuccess})}, | ||||||
| 			Req:          expectPost, | 			Req:          expectPost, | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			Modify: true, | 			Modify: true, | ||||||
| 			Object: &api.Pod{ | 			Object: &corev1.Pod{ | ||||||
| 				ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}, | 				ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}, | ||||||
| 				Spec:       apitesting.DeepEqualSafePodSpec(), | 				Spec:       V1DeepEqualSafePodSpec(), | ||||||
| 			}, | 			}, | ||||||
| 			ExpectObject: &api.Pod{ | 			ExpectObject: &corev1.Pod{ | ||||||
| 				ObjectMeta: metav1.ObjectMeta{Name: "foo"}, | 				ObjectMeta: metav1.ObjectMeta{Name: "foo"}, | ||||||
| 				Spec:       apitesting.DeepEqualSafePodSpec(), | 				Spec:       V1DeepEqualSafePodSpec(), | ||||||
| 			}, | 			}, | ||||||
| 			Resp: &http.Response{StatusCode: http.StatusOK, Header: header(), Body: objBody(&metav1.Status{Status: metav1.StatusSuccess})}, | 			Resp: &http.Response{StatusCode: http.StatusOK, Header: header(), Body: objBody(&metav1.Status{Status: metav1.StatusSuccess})}, | ||||||
| 			Req:  expectPost, | 			Req:  expectPost, | ||||||
| @@ -195,14 +204,14 @@ func TestHelperCreate(t *testing.T) { | |||||||
| 	} | 	} | ||||||
| 	for i, test := range tests { | 	for i, test := range tests { | ||||||
| 		client := &fake.RESTClient{ | 		client := &fake.RESTClient{ | ||||||
| 			GroupVersion:         legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion, | 			GroupVersion:         corev1GV, | ||||||
| 			NegotiatedSerializer: testapi.Default.NegotiatedSerializer(), | 			NegotiatedSerializer: scheme.Codecs, | ||||||
| 			Resp:                 test.Resp, | 			Resp:                 test.Resp, | ||||||
| 			Err:                  test.HttpErr, | 			Err:                  test.HttpErr, | ||||||
| 		} | 		} | ||||||
| 		modifier := &Helper{ | 		modifier := &Helper{ | ||||||
| 			RESTClient:      client, | 			RESTClient:      client, | ||||||
| 			Versioner:       testapi.Default.MetadataAccessor(), | 			Versioner:       metaAccessor, | ||||||
| 			NamespaceScoped: true, | 			NamespaceScoped: true, | ||||||
| 		} | 		} | ||||||
| 		_, err := modifier.Create("bar", test.Modify, test.Object) | 		_, err := modifier.Create("bar", test.Modify, test.Object) | ||||||
| @@ -222,7 +231,7 @@ func TestHelperCreate(t *testing.T) { | |||||||
| 		t.Logf("got body: %s", string(body)) | 		t.Logf("got body: %s", string(body)) | ||||||
| 		expect := []byte{} | 		expect := []byte{} | ||||||
| 		if test.ExpectObject != nil { | 		if test.ExpectObject != nil { | ||||||
| 			expect = []byte(runtime.EncodeOrDie(testapi.Default.Codec(), test.ExpectObject)) | 			expect = []byte(runtime.EncodeOrDie(corev1Codec, test.ExpectObject)) | ||||||
| 		} | 		} | ||||||
| 		if !reflect.DeepEqual(expect, body) { | 		if !reflect.DeepEqual(expect, body) { | ||||||
| 			t.Errorf("%d: unexpected body: %s (expected %s)", i, string(body), string(expect)) | 			t.Errorf("%d: unexpected body: %s (expected %s)", i, string(body), string(expect)) | ||||||
| @@ -254,7 +263,7 @@ func TestHelperGet(t *testing.T) { | |||||||
| 			Resp: &http.Response{ | 			Resp: &http.Response{ | ||||||
| 				StatusCode: http.StatusOK, | 				StatusCode: http.StatusOK, | ||||||
| 				Header:     header(), | 				Header:     header(), | ||||||
| 				Body:       objBody(&api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}), | 				Body:       objBody(&corev1.Pod{TypeMeta: metav1.TypeMeta{APIVersion: "v1", Kind: "Pod"}, ObjectMeta: metav1.ObjectMeta{Name: "foo"}}), | ||||||
| 			}, | 			}, | ||||||
| 			Req: func(req *http.Request) bool { | 			Req: func(req *http.Request) bool { | ||||||
| 				if req.Method != "GET" { | 				if req.Method != "GET" { | ||||||
| @@ -274,10 +283,10 @@ func TestHelperGet(t *testing.T) { | |||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
| 	} | 	} | ||||||
| 	for _, test := range tests { | 	for i, test := range tests { | ||||||
| 		client := &fake.RESTClient{ | 		client := &fake.RESTClient{ | ||||||
| 			GroupVersion:         legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion, | 			GroupVersion:         corev1GV, | ||||||
| 			NegotiatedSerializer: testapi.Default.NegotiatedSerializer(), | 			NegotiatedSerializer: serializer.DirectCodecFactory{CodecFactory: scheme.Codecs}, | ||||||
| 			Resp:                 test.Resp, | 			Resp:                 test.Resp, | ||||||
| 			Err:                  test.HttpErr, | 			Err:                  test.HttpErr, | ||||||
| 		} | 		} | ||||||
| @@ -286,13 +295,14 @@ func TestHelperGet(t *testing.T) { | |||||||
| 			NamespaceScoped: true, | 			NamespaceScoped: true, | ||||||
| 		} | 		} | ||||||
| 		obj, err := modifier.Get("bar", "foo", false) | 		obj, err := modifier.Get("bar", "foo", false) | ||||||
|  |  | ||||||
| 		if (err != nil) != test.Err { | 		if (err != nil) != test.Err { | ||||||
| 			t.Errorf("unexpected error: %t %v", test.Err, err) | 			t.Errorf("unexpected error: %d %t %v", i, test.Err, err) | ||||||
| 		} | 		} | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
| 		if obj.(*api.Pod).Name != "foo" { | 		if obj.(*corev1.Pod).Name != "foo" { | ||||||
| 			t.Errorf("unexpected object: %#v", obj) | 			t.Errorf("unexpected object: %#v", obj) | ||||||
| 		} | 		} | ||||||
| 		if test.Req != nil && !test.Req(client.Req) { | 		if test.Req != nil && !test.Req(client.Req) { | ||||||
| @@ -324,8 +334,8 @@ func TestHelperList(t *testing.T) { | |||||||
| 			Resp: &http.Response{ | 			Resp: &http.Response{ | ||||||
| 				StatusCode: http.StatusOK, | 				StatusCode: http.StatusOK, | ||||||
| 				Header:     header(), | 				Header:     header(), | ||||||
| 				Body: objBody(&api.PodList{ | 				Body: objBody(&corev1.PodList{ | ||||||
| 					Items: []api.Pod{{ | 					Items: []corev1.Pod{{ | ||||||
| 						ObjectMeta: metav1.ObjectMeta{Name: "foo"}, | 						ObjectMeta: metav1.ObjectMeta{Name: "foo"}, | ||||||
| 					}, | 					}, | ||||||
| 					}, | 					}, | ||||||
| @@ -340,7 +350,7 @@ func TestHelperList(t *testing.T) { | |||||||
| 					t.Errorf("url doesn't contain name: %#v", req.URL) | 					t.Errorf("url doesn't contain name: %#v", req.URL) | ||||||
| 					return false | 					return false | ||||||
| 				} | 				} | ||||||
| 				if req.URL.Query().Get(metav1.LabelSelectorQueryParam(legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String())) != labels.SelectorFromSet(labels.Set{"foo": "baz"}).String() { | 				if req.URL.Query().Get(metav1.LabelSelectorQueryParam(corev1GV.String())) != labels.SelectorFromSet(labels.Set{"foo": "baz"}).String() { | ||||||
| 					t.Errorf("url doesn't contain query parameters: %#v", req.URL) | 					t.Errorf("url doesn't contain query parameters: %#v", req.URL) | ||||||
| 					return false | 					return false | ||||||
| 				} | 				} | ||||||
| @@ -350,8 +360,8 @@ func TestHelperList(t *testing.T) { | |||||||
| 	} | 	} | ||||||
| 	for _, test := range tests { | 	for _, test := range tests { | ||||||
| 		client := &fake.RESTClient{ | 		client := &fake.RESTClient{ | ||||||
| 			GroupVersion:         legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion, | 			GroupVersion:         corev1GV, | ||||||
| 			NegotiatedSerializer: testapi.Default.NegotiatedSerializer(), | 			NegotiatedSerializer: serializer.DirectCodecFactory{CodecFactory: scheme.Codecs}, | ||||||
| 			Resp:                 test.Resp, | 			Resp:                 test.Resp, | ||||||
| 			Err:                  test.HttpErr, | 			Err:                  test.HttpErr, | ||||||
| 		} | 		} | ||||||
| @@ -359,14 +369,14 @@ func TestHelperList(t *testing.T) { | |||||||
| 			RESTClient:      client, | 			RESTClient:      client, | ||||||
| 			NamespaceScoped: true, | 			NamespaceScoped: true, | ||||||
| 		} | 		} | ||||||
| 		obj, err := modifier.List("bar", legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), false, &metav1.ListOptions{LabelSelector: "foo=baz"}) | 		obj, err := modifier.List("bar", corev1GV.String(), false, &metav1.ListOptions{LabelSelector: "foo=baz"}) | ||||||
| 		if (err != nil) != test.Err { | 		if (err != nil) != test.Err { | ||||||
| 			t.Errorf("unexpected error: %t %v", test.Err, err) | 			t.Errorf("unexpected error: %t %v", test.Err, err) | ||||||
| 		} | 		} | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
| 		if obj.(*api.PodList).Items[0].Name != "foo" { | 		if obj.(*corev1.PodList).Items[0].Name != "foo" { | ||||||
| 			t.Errorf("unexpected object: %#v", obj) | 			t.Errorf("unexpected object: %#v", obj) | ||||||
| 		} | 		} | ||||||
| 		if test.Req != nil && !test.Req(client.Req) { | 		if test.Req != nil && !test.Req(client.Req) { | ||||||
| @@ -411,7 +421,7 @@ func TestHelperReplace(t *testing.T) { | |||||||
| 		{ | 		{ | ||||||
| 			Namespace:       "bar", | 			Namespace:       "bar", | ||||||
| 			NamespaceScoped: true, | 			NamespaceScoped: true, | ||||||
| 			Object:          &api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, | 			Object:          &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, | ||||||
| 			Resp: &http.Response{ | 			Resp: &http.Response{ | ||||||
| 				StatusCode: http.StatusNotFound, | 				StatusCode: http.StatusNotFound, | ||||||
| 				Header:     header(), | 				Header:     header(), | ||||||
| @@ -422,9 +432,9 @@ func TestHelperReplace(t *testing.T) { | |||||||
| 		{ | 		{ | ||||||
| 			Namespace:       "bar", | 			Namespace:       "bar", | ||||||
| 			NamespaceScoped: true, | 			NamespaceScoped: true, | ||||||
| 			Object:          &api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, | 			Object:          &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, | ||||||
| 			ExpectPath:      "/namespaces/bar/foo", | 			ExpectPath:      "/namespaces/bar/foo", | ||||||
| 			ExpectObject:    &api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, | 			ExpectObject:    &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, | ||||||
| 			Resp: &http.Response{ | 			Resp: &http.Response{ | ||||||
| 				StatusCode: http.StatusOK, | 				StatusCode: http.StatusOK, | ||||||
| 				Header:     header(), | 				Header:     header(), | ||||||
| @@ -436,30 +446,30 @@ func TestHelperReplace(t *testing.T) { | |||||||
| 		{ | 		{ | ||||||
| 			Namespace:       "bar", | 			Namespace:       "bar", | ||||||
| 			NamespaceScoped: true, | 			NamespaceScoped: true, | ||||||
| 			Object: &api.Pod{ | 			Object: &corev1.Pod{ | ||||||
| 				ObjectMeta: metav1.ObjectMeta{Name: "foo"}, | 				ObjectMeta: metav1.ObjectMeta{Name: "foo"}, | ||||||
| 				Spec:       apitesting.DeepEqualSafePodSpec(), | 				Spec:       V1DeepEqualSafePodSpec(), | ||||||
| 			}, | 			}, | ||||||
| 			ExpectPath: "/namespaces/bar/foo", | 			ExpectPath: "/namespaces/bar/foo", | ||||||
| 			ExpectObject: &api.Pod{ | 			ExpectObject: &corev1.Pod{ | ||||||
| 				ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}, | 				ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}, | ||||||
| 				Spec:       apitesting.DeepEqualSafePodSpec(), | 				Spec:       V1DeepEqualSafePodSpec(), | ||||||
| 			}, | 			}, | ||||||
| 			Overwrite: true, | 			Overwrite: true, | ||||||
| 			HTTPClient: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { | 			HTTPClient: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { | ||||||
| 				if req.Method == "PUT" { | 				if req.Method == "PUT" { | ||||||
| 					return &http.Response{StatusCode: http.StatusOK, Header: header(), Body: objBody(&metav1.Status{Status: metav1.StatusSuccess})}, nil | 					return &http.Response{StatusCode: http.StatusOK, Header: header(), Body: objBody(&metav1.Status{Status: metav1.StatusSuccess})}, nil | ||||||
| 				} | 				} | ||||||
| 				return &http.Response{StatusCode: http.StatusOK, Header: header(), Body: objBody(&api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}})}, nil | 				return &http.Response{StatusCode: http.StatusOK, Header: header(), Body: objBody(&corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}})}, nil | ||||||
| 			}), | 			}), | ||||||
| 			Req: expectPut, | 			Req: expectPut, | ||||||
| 		}, | 		}, | ||||||
| 		// cluster scoped resource | 		// cluster scoped resource | ||||||
| 		{ | 		{ | ||||||
| 			Object: &api.Node{ | 			Object: &corev1.Node{ | ||||||
| 				ObjectMeta: metav1.ObjectMeta{Name: "foo"}, | 				ObjectMeta: metav1.ObjectMeta{Name: "foo"}, | ||||||
| 			}, | 			}, | ||||||
| 			ExpectObject: &api.Node{ | 			ExpectObject: &corev1.Node{ | ||||||
| 				ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}, | 				ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}, | ||||||
| 			}, | 			}, | ||||||
| 			Overwrite:  true, | 			Overwrite:  true, | ||||||
| @@ -468,31 +478,31 @@ func TestHelperReplace(t *testing.T) { | |||||||
| 				if req.Method == "PUT" { | 				if req.Method == "PUT" { | ||||||
| 					return &http.Response{StatusCode: http.StatusOK, Header: header(), Body: objBody(&metav1.Status{Status: metav1.StatusSuccess})}, nil | 					return &http.Response{StatusCode: http.StatusOK, Header: header(), Body: objBody(&metav1.Status{Status: metav1.StatusSuccess})}, nil | ||||||
| 				} | 				} | ||||||
| 				return &http.Response{StatusCode: http.StatusOK, Header: header(), Body: objBody(&api.Node{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}})}, nil | 				return &http.Response{StatusCode: http.StatusOK, Header: header(), Body: objBody(&corev1.Node{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}})}, nil | ||||||
| 			}), | 			}), | ||||||
| 			Req: expectPut, | 			Req: expectPut, | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			Namespace:       "bar", | 			Namespace:       "bar", | ||||||
| 			NamespaceScoped: true, | 			NamespaceScoped: true, | ||||||
| 			Object:          &api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}}, | 			Object:          &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}}, | ||||||
| 			ExpectPath:      "/namespaces/bar/foo", | 			ExpectPath:      "/namespaces/bar/foo", | ||||||
| 			ExpectObject:    &api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}}, | 			ExpectObject:    &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}}, | ||||||
| 			Resp:            &http.Response{StatusCode: http.StatusOK, Header: header(), Body: objBody(&metav1.Status{Status: metav1.StatusSuccess})}, | 			Resp:            &http.Response{StatusCode: http.StatusOK, Header: header(), Body: objBody(&metav1.Status{Status: metav1.StatusSuccess})}, | ||||||
| 			Req:             expectPut, | 			Req:             expectPut, | ||||||
| 		}, | 		}, | ||||||
| 	} | 	} | ||||||
| 	for i, test := range tests { | 	for i, test := range tests { | ||||||
| 		client := &fake.RESTClient{ | 		client := &fake.RESTClient{ | ||||||
| 			GroupVersion:         legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion, | 			GroupVersion:         corev1GV, | ||||||
| 			NegotiatedSerializer: testapi.Default.NegotiatedSerializer(), | 			NegotiatedSerializer: serializer.DirectCodecFactory{CodecFactory: scheme.Codecs}, | ||||||
| 			Client:               test.HTTPClient, | 			Client:               test.HTTPClient, | ||||||
| 			Resp:                 test.Resp, | 			Resp:                 test.Resp, | ||||||
| 			Err:                  test.HttpErr, | 			Err:                  test.HttpErr, | ||||||
| 		} | 		} | ||||||
| 		modifier := &Helper{ | 		modifier := &Helper{ | ||||||
| 			RESTClient:      client, | 			RESTClient:      client, | ||||||
| 			Versioner:       testapi.Default.MetadataAccessor(), | 			Versioner:       metaAccessor, | ||||||
| 			NamespaceScoped: test.NamespaceScoped, | 			NamespaceScoped: test.NamespaceScoped, | ||||||
| 		} | 		} | ||||||
| 		_, err := modifier.Replace(test.Namespace, "foo", test.Overwrite, test.Object) | 		_, err := modifier.Replace(test.Namespace, "foo", test.Overwrite, test.Object) | ||||||
| @@ -511,7 +521,7 @@ func TestHelperReplace(t *testing.T) { | |||||||
| 		} | 		} | ||||||
| 		expect := []byte{} | 		expect := []byte{} | ||||||
| 		if test.ExpectObject != nil { | 		if test.ExpectObject != nil { | ||||||
| 			expect = []byte(runtime.EncodeOrDie(testapi.Default.Codec(), test.ExpectObject)) | 			expect = []byte(runtime.EncodeOrDie(corev1Codec, test.ExpectObject)) | ||||||
| 		} | 		} | ||||||
| 		if !reflect.DeepEqual(expect, body) { | 		if !reflect.DeepEqual(expect, body) { | ||||||
| 			t.Errorf("%d: unexpected body: %s", i, string(body)) | 			t.Errorf("%d: unexpected body: %s", i, string(body)) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 ymqytw
					ymqytw