mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	Fix tests using internal types for serialization
This commit is contained in:
		@@ -27,8 +27,9 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api/testapi"
 | 
			
		||||
	apitesting "k8s.io/kubernetes/pkg/api/testing"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api/v1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/apimachinery/registered"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/apis/extensions"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	k8syaml "k8s.io/kubernetes/pkg/util/yaml"
 | 
			
		||||
 | 
			
		||||
@@ -171,18 +172,18 @@ func TestValidateDifferentApiVersions(t *testing.T) {
 | 
			
		||||
		t.Fatalf("Failed to load: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	pod := &api.Pod{}
 | 
			
		||||
	pod := &v1.Pod{}
 | 
			
		||||
	pod.APIVersion = "v1"
 | 
			
		||||
	pod.Kind = "Pod"
 | 
			
		||||
 | 
			
		||||
	deployment := &extensions.Deployment{}
 | 
			
		||||
	deployment := &v1beta1.Deployment{}
 | 
			
		||||
	deployment.APIVersion = "extensions/v1beta1"
 | 
			
		||||
	deployment.Kind = "Deployment"
 | 
			
		||||
 | 
			
		||||
	list := &api.List{}
 | 
			
		||||
	list := &v1.List{}
 | 
			
		||||
	list.APIVersion = "v1"
 | 
			
		||||
	list.Kind = "List"
 | 
			
		||||
	list.Items = []runtime.Object{pod, deployment}
 | 
			
		||||
	list.Items = []runtime.RawExtension{{Object: pod}, {Object: deployment}}
 | 
			
		||||
	bytes, err := json.Marshal(list)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Error(err)
 | 
			
		||||
@@ -295,7 +296,7 @@ func TestTypeAny(t *testing.T) {
 | 
			
		||||
			t.Errorf("could not read file: %s, err: %v", test, err)
 | 
			
		||||
		}
 | 
			
		||||
		// Verify that pod has at least one label (labels are type "any")
 | 
			
		||||
		var pod api.Pod
 | 
			
		||||
		var pod v1.Pod
 | 
			
		||||
		err = yaml.Unmarshal(podBytes, &pod)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			t.Errorf("error in unmarshalling pod: %v", err)
 | 
			
		||||
 
 | 
			
		||||
@@ -133,7 +133,7 @@ func addGrouplessTypes() {
 | 
			
		||||
	}
 | 
			
		||||
	api.Scheme.AddKnownTypes(grouplessGroupVersion,
 | 
			
		||||
		&apiservertesting.Simple{}, &apiservertesting.SimpleList{}, &ListOptions{}, &metav1.ExportOptions{},
 | 
			
		||||
		&api.DeleteOptions{}, &apiservertesting.SimpleGetOptions{}, &apiservertesting.SimpleRoot{})
 | 
			
		||||
		&v1.DeleteOptions{}, &apiservertesting.SimpleGetOptions{}, &apiservertesting.SimpleRoot{})
 | 
			
		||||
	api.Scheme.AddKnownTypes(grouplessInternalGroupVersion,
 | 
			
		||||
		&apiservertesting.Simple{}, &apiservertesting.SimpleList{}, &api.ListOptions{}, &metav1.ExportOptions{},
 | 
			
		||||
		&apiservertesting.SimpleGetOptions{}, &apiservertesting.SimpleRoot{})
 | 
			
		||||
@@ -151,7 +151,7 @@ func addTestTypes() {
 | 
			
		||||
	}
 | 
			
		||||
	api.Scheme.AddKnownTypes(testGroupVersion,
 | 
			
		||||
		&apiservertesting.Simple{}, &apiservertesting.SimpleList{}, &ListOptions{}, &metav1.ExportOptions{},
 | 
			
		||||
		&api.DeleteOptions{}, &apiservertesting.SimpleGetOptions{}, &apiservertesting.SimpleRoot{},
 | 
			
		||||
		&v1.DeleteOptions{}, &apiservertesting.SimpleGetOptions{}, &apiservertesting.SimpleRoot{},
 | 
			
		||||
		&SimpleXGSubresource{})
 | 
			
		||||
	api.Scheme.AddKnownTypes(testGroupVersion, &v1.Pod{})
 | 
			
		||||
	api.Scheme.AddKnownTypes(testInternalGroupVersion,
 | 
			
		||||
 
 | 
			
		||||
@@ -26,11 +26,13 @@ import (
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api/v1"
 | 
			
		||||
	metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/client/restclient/fake"
 | 
			
		||||
	cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
 | 
			
		||||
	cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/util/strategicpatch"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func generateNodeAndTaintedNode(oldTaints []api.Taint, newTaints []api.Taint) (*api.Node, *api.Node) {
 | 
			
		||||
@@ -263,7 +265,33 @@ func TestTaint(t *testing.T) {
 | 
			
		||||
				switch {
 | 
			
		||||
				case m.isFor("GET", "/nodes/node-name"):
 | 
			
		||||
					return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, oldNode)}, nil
 | 
			
		||||
				case m.isFor("PATCH", "/nodes/node-name"), m.isFor("PUT", "/nodes/node-name"):
 | 
			
		||||
				case m.isFor("PATCH", "/nodes/node-name"):
 | 
			
		||||
					tainted = true
 | 
			
		||||
					data, err := ioutil.ReadAll(req.Body)
 | 
			
		||||
					if err != nil {
 | 
			
		||||
						t.Fatalf("%s: unexpected error: %v", test.description, err)
 | 
			
		||||
					}
 | 
			
		||||
					defer req.Body.Close()
 | 
			
		||||
 | 
			
		||||
					// apply the patch
 | 
			
		||||
					oldJSON, err := runtime.Encode(codec, oldNode)
 | 
			
		||||
					if err != nil {
 | 
			
		||||
						t.Fatalf("%s: unexpected error: %v", test.description, err)
 | 
			
		||||
					}
 | 
			
		||||
					appliedPatch, err := strategicpatch.StrategicMergePatch(oldJSON, data, &v1.Node{})
 | 
			
		||||
					if err != nil {
 | 
			
		||||
						t.Fatalf("%s: unexpected error: %v", test.description, err)
 | 
			
		||||
					}
 | 
			
		||||
 | 
			
		||||
					// decode the patch
 | 
			
		||||
					if err := runtime.DecodeInto(codec, appliedPatch, new_node); err != nil {
 | 
			
		||||
						t.Fatalf("%s: unexpected error: %v", test.description, err)
 | 
			
		||||
					}
 | 
			
		||||
					if !AnnotationsHaveEqualTaints(expectNewNode.Annotations, new_node.Annotations) {
 | 
			
		||||
						t.Fatalf("%s: expected:\n%v\nsaw:\n%v\n", test.description, expectNewNode.Annotations, new_node.Annotations)
 | 
			
		||||
					}
 | 
			
		||||
					return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, new_node)}, nil
 | 
			
		||||
				case m.isFor("PUT", "/nodes/node-name"):
 | 
			
		||||
					tainted = true
 | 
			
		||||
					data, err := ioutil.ReadAll(req.Body)
 | 
			
		||||
					if err != nil {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user