func TestSetDefaulServiceTargetPort(t *testing.T) { in := &versioned.Service{Spec: versioned.ServiceSpec{Ports: []versioned.ServicePort{{Port: 1234}}}} obj := roundTrip(t, runtime.Object(in)) out := obj.(*versioned.Service) if out.Spec.Ports[0].TargetPort != util.NewIntOrStringFromInt(1234) { t.Errorf("Expected TargetPort to be defaulted, got %v", out.Spec.Ports[0].TargetPort) } in = &versioned.Service{Spec: versioned.ServiceSpec{Ports: []versioned.ServicePort{{Port: 1234, TargetPort: util.NewIntOrStringFromInt(5678)}}}} obj = roundTrip(t, runtime.Object(in)) out = obj.(*versioned.Service) if out.Spec.Ports[0].TargetPort != util.NewIntOrStringFromInt(5678) { t.Errorf("Expected TargetPort to be unchanged, got %v", out.Spec.Ports[0].TargetPort) } }
func TestSetDefaultHorizontalPodAutoscalerMinReplicas(t *testing.T) { tests := []struct { hpa HorizontalPodAutoscaler expectReplicas int32 }{ { hpa: HorizontalPodAutoscaler{}, expectReplicas: 1, }, { hpa: HorizontalPodAutoscaler{ Spec: HorizontalPodAutoscalerSpec{ MinReplicas: newInt32(3), }, }, expectReplicas: 3, }, } for _, test := range tests { hpa := &test.hpa obj2 := roundTrip(t, runtime.Object(hpa)) hpa2, ok := obj2.(*HorizontalPodAutoscaler) if !ok { t.Errorf("unexpected object: %v", hpa2) t.FailNow() } if hpa2.Spec.MinReplicas == nil { t.Errorf("unexpected nil MinReplicas") } else if test.expectReplicas != *hpa2.Spec.MinReplicas { t.Errorf("expected: %d MinReplicas, got: %d", test.expectReplicas, *hpa2.Spec.MinReplicas) } } }
func TestEncode_Ptr(t *testing.T) { grace := int64(30) pod := &api.Pod{ ObjectMeta: api.ObjectMeta{ Labels: map[string]string{"name": "foo"}, }, Spec: api.PodSpec{ RestartPolicy: api.RestartPolicyAlways, DNSPolicy: api.DNSClusterFirst, TerminationGracePeriodSeconds: &grace, SecurityContext: &api.PodSecurityContext{}, }, } obj := runtime.Object(pod) data, err := runtime.Encode(testapi.Default.Codec(), obj) obj2, err2 := runtime.Decode(testapi.Default.Codec(), data) if err != nil || err2 != nil { t.Fatalf("Failure: '%v' '%v'", err, err2) } if _, ok := obj2.(*api.Pod); !ok { t.Fatalf("Got wrong type") } if !api.Semantic.DeepEqual(obj2, pod) { t.Errorf("\nExpected:\n\n %#v,\n\nGot:\n\n %#vDiff: %v\n\n", pod, obj2, diff.ObjectDiff(obj2, pod)) } }
func TestDefaultRequestIsNotSetForReplicationController(t *testing.T) { s := versioned.PodSpec{} s.Containers = []versioned.Container{ { Resources: versioned.ResourceRequirements{ Limits: versioned.ResourceList{ versioned.ResourceCPU: resource.MustParse("100m"), }, }, }, } rc := &versioned.ReplicationController{ Spec: versioned.ReplicationControllerSpec{ Replicas: newInt(3), Template: &versioned.PodTemplateSpec{ ObjectMeta: versioned.ObjectMeta{ Labels: map[string]string{ "foo": "bar", }, }, Spec: s, }, }, } output := roundTrip(t, runtime.Object(rc)) rc2 := output.(*versioned.ReplicationController) defaultRequest := rc2.Spec.Template.Spec.Containers[0].Resources.Requests requestValue := defaultRequest[versioned.ResourceCPU] if requestValue.String() != "0" { t.Errorf("Expected 0 request value, got: %s", requestValue.String()) } }
func TestDefaultRequestIsNotSetForReplicaSet(t *testing.T) { s := v1.PodSpec{} s.Containers = []v1.Container{ { Resources: v1.ResourceRequirements{ Limits: v1.ResourceList{ v1.ResourceCPU: resource.MustParse("100m"), }, }, }, } rs := &ReplicaSet{ Spec: ReplicaSetSpec{ Replicas: newInt32(3), Template: v1.PodTemplateSpec{ ObjectMeta: v1.ObjectMeta{ Labels: map[string]string{ "foo": "bar", }, }, Spec: s, }, }, } output := roundTrip(t, runtime.Object(rs)) rs2 := output.(*ReplicaSet) defaultRequest := rs2.Spec.Template.Spec.Containers[0].Resources.Requests requestValue := defaultRequest[v1.ResourceCPU] if requestValue.String() != "0" { t.Errorf("Expected 0 request value, got: %s", requestValue.String()) } }
func TestDefaults(t *testing.T) { tests := []struct { original *podnodeconstraintsv1.PodNodeConstraintsConfig expected *podnodeconstraintsv1.PodNodeConstraintsConfig }{ { original: &podnodeconstraintsv1.PodNodeConstraintsConfig{}, expected: &podnodeconstraintsv1.PodNodeConstraintsConfig{ NodeSelectorLabelBlacklist: []string{"kubernetes.io/hostname"}, }, }, } for i, test := range tests { t.Logf("test %d", i) original := test.original expected := test.expected obj2 := roundTrip(t, runtime.Object(original)) got, ok := obj2.(*podnodeconstraintsv1.PodNodeConstraintsConfig) if !ok { t.Errorf("unexpected object: %v", got) t.FailNow() } if !reflect.DeepEqual(got, expected) { t.Errorf("got different than expected:\nA:\t%#v\nB:\t%#v\n\nDiff:\n%s\n\n%s", got, expected, diff.ObjectDiff(expected, got), diff.ObjectGoPrintSideBySide(expected, got)) } } }
func TestSetDefaultPodSpecHostNetwork(t *testing.T) { if !registered.IsAllowedVersion(versioned.SchemeGroupVersion) { return } portNum := 8080 s := versioned.PodSpec{} s.HostNetwork = true s.Containers = []versioned.Container{ { Ports: []versioned.ContainerPort{ { ContainerPort: portNum, }, }, }, } pod := &versioned.Pod{ Spec: s, } obj2 := roundTrip(t, runtime.Object(pod)) pod2 := obj2.(*versioned.Pod) s2 := pod2.Spec hostPortNum := s2.Containers[0].Ports[0].HostPort if hostPortNum != portNum { t.Errorf("Expected container port to be defaulted, was made %d instead of %d", hostPortNum, portNum) } }
func TestEncode(t *testing.T) { internalGV := unversioned.GroupVersion{Group: "test.group", Version: ""} externalGV := unversioned.GroupVersion{Group: "test.group", Version: "testExternal"} scheme := runtime.NewScheme() scheme.AddInternalGroupVersion(internalGV) scheme.AddKnownTypeWithName(internalGV.WithKind("Simple"), &InternalSimple{}) scheme.AddKnownTypeWithName(externalGV.WithKind("Simple"), &ExternalSimple{}) codec := runtime.CodecFor(scheme, externalGV.String()) test := &InternalSimple{ TestString: "I'm the same", } obj := runtime.Object(test) data, err := runtime.Encode(codec, obj) obj2, err2 := runtime.Decode(codec, data) if err != nil || err2 != nil { t.Fatalf("Failure: '%v' '%v'", err, err2) } if _, ok := obj2.(*InternalSimple); !ok { t.Fatalf("Got wrong type") } if !reflect.DeepEqual(obj2, test) { t.Errorf("Expected:\n %#v,\n Got:\n %#v", &test, obj2) } }
func TestEncode(t *testing.T) { internalGV := schema.GroupVersion{Group: "test.group", Version: runtime.APIVersionInternal} externalGV := schema.GroupVersion{Group: "test.group", Version: "testExternal"} scheme := runtime.NewScheme() scheme.AddKnownTypeWithName(internalGV.WithKind("Simple"), &InternalSimple{}) scheme.AddKnownTypeWithName(externalGV.WithKind("Simple"), &ExternalSimple{}) codec := serializer.NewCodecFactory(scheme).LegacyCodec(externalGV) test := &InternalSimple{ TestString: "I'm the same", } obj := runtime.Object(test) data, err := runtime.Encode(codec, obj) obj2, gvk, err2 := codec.Decode(data, nil, nil) if err != nil || err2 != nil { t.Fatalf("Failure: '%v' '%v'", err, err2) } if _, ok := obj2.(*InternalSimple); !ok { t.Fatalf("Got wrong type") } if !reflect.DeepEqual(obj2, test) { t.Errorf("Expected:\n %#v,\n Got:\n %#v", test, obj2) } if !reflect.DeepEqual(gvk, &schema.GroupVersionKind{Group: "test.group", Version: "testExternal", Kind: "Simple"}) { t.Errorf("unexpected gvk returned by decode: %#v", gvk) } }
func TestSetDefaulEndpointsProtocol(t *testing.T) { if !registered.IsAllowedVersion(versioned.SchemeGroupVersion) { return } in := &versioned.Endpoints{Subsets: []versioned.EndpointSubset{ {Ports: []versioned.EndpointPort{{}, {Protocol: "UDP"}, {}}}, }} obj := roundTrip(t, runtime.Object(in)) out := obj.(*versioned.Endpoints) for i := range out.Subsets { for j := range out.Subsets[i].Ports { if in.Subsets[i].Ports[j].Protocol == "" { if out.Subsets[i].Ports[j].Protocol != versioned.ProtocolTCP { t.Errorf("Expected protocol %s, got %s", versioned.ProtocolTCP, out.Subsets[i].Ports[j].Protocol) } } else { if out.Subsets[i].Ports[j].Protocol != in.Subsets[i].Ports[j].Protocol { t.Errorf("Expected protocol %s, got %s", in.Subsets[i].Ports[j].Protocol, out.Subsets[i].Ports[j].Protocol) } } } } }
func TestSetDefaultObjectFieldSelectorAPIVersion(t *testing.T) { if !registered.IsAllowedVersion(versioned.SchemeGroupVersion) { return } s := versioned.PodSpec{ Containers: []versioned.Container{ { Env: []versioned.EnvVar{ { ValueFrom: &versioned.EnvVarSource{ FieldRef: &versioned.ObjectFieldSelector{}, }, }, }, }, }, } pod := &versioned.Pod{ Spec: s, } obj2 := roundTrip(t, runtime.Object(pod)) pod2 := obj2.(*versioned.Pod) s2 := pod2.Spec apiVersion := s2.Containers[0].Env[0].ValueFrom.FieldRef.APIVersion if apiVersion != "v1beta3" { t.Errorf("Expected default APIVersion v1beta3, got: %v", apiVersion) } }
func TestSetDefaultServicePort(t *testing.T) { if !registered.IsAllowedVersion(versioned.SchemeGroupVersion) { return } // Unchanged if set. in := &versioned.Service{Spec: versioned.ServiceSpec{ Ports: []versioned.ServicePort{ {Protocol: "UDP", Port: 9376, TargetPort: intstr.FromString("p")}, {Protocol: "UDP", Port: 8675, TargetPort: intstr.FromInt(309)}, }, }} out := roundTrip(t, runtime.Object(in)).(*versioned.Service) if out.Spec.Ports[0].Protocol != versioned.ProtocolUDP { t.Errorf("Expected protocol %s, got %s", versioned.ProtocolUDP, out.Spec.Ports[0].Protocol) } if out.Spec.Ports[0].TargetPort != intstr.FromString("p") { t.Errorf("Expected port %d, got %s", in.Spec.Ports[0].Port, out.Spec.Ports[0].TargetPort) } if out.Spec.Ports[1].Protocol != versioned.ProtocolUDP { t.Errorf("Expected protocol %s, got %s", versioned.ProtocolUDP, out.Spec.Ports[1].Protocol) } if out.Spec.Ports[1].TargetPort != intstr.FromInt(309) { t.Errorf("Expected port %d, got %s", in.Spec.Ports[1].Port, out.Spec.Ports[1].TargetPort) } // Defaulted. in = &versioned.Service{Spec: versioned.ServiceSpec{ Ports: []versioned.ServicePort{ {Protocol: "", Port: 9376, TargetPort: intstr.FromString("")}, {Protocol: "", Port: 8675, TargetPort: intstr.FromInt(0)}, }, }} out = roundTrip(t, runtime.Object(in)).(*versioned.Service) if out.Spec.Ports[0].Protocol != versioned.ProtocolTCP { t.Errorf("Expected protocol %s, got %s", versioned.ProtocolTCP, out.Spec.Ports[0].Protocol) } if out.Spec.Ports[0].TargetPort != intstr.FromInt(in.Spec.Ports[0].Port) { t.Errorf("Expected port %d, got %d", in.Spec.Ports[0].Port, out.Spec.Ports[0].TargetPort) } if out.Spec.Ports[1].Protocol != versioned.ProtocolTCP { t.Errorf("Expected protocol %s, got %s", versioned.ProtocolTCP, out.Spec.Ports[1].Protocol) } if out.Spec.Ports[1].TargetPort != intstr.FromInt(in.Spec.Ports[1].Port) { t.Errorf("Expected port %d, got %d", in.Spec.Ports[1].Port, out.Spec.Ports[1].TargetPort) } }
func TestUnversionedTypes(t *testing.T) { internalGV := schema.GroupVersion{Group: "test.group", Version: runtime.APIVersionInternal} externalGV := schema.GroupVersion{Group: "test.group", Version: "testExternal"} otherGV := schema.GroupVersion{Group: "group", Version: "other"} scheme := runtime.NewScheme() scheme.AddUnversionedTypes(externalGV, &InternalSimple{}) scheme.AddKnownTypeWithName(internalGV.WithKind("Simple"), &InternalSimple{}) scheme.AddKnownTypeWithName(externalGV.WithKind("Simple"), &ExternalSimple{}) scheme.AddKnownTypeWithName(otherGV.WithKind("Simple"), &ExternalSimple{}) codec := serializer.NewCodecFactory(scheme).LegacyCodec(externalGV) if unv, ok := scheme.IsUnversioned(&InternalSimple{}); !unv || !ok { t.Fatalf("type not unversioned and in scheme: %t %t", unv, ok) } kinds, _, err := scheme.ObjectKinds(&InternalSimple{}) if err != nil { t.Fatal(err) } kind := kinds[0] if kind != externalGV.WithKind("InternalSimple") { t.Fatalf("unexpected: %#v", kind) } test := &InternalSimple{ TestString: "I'm the same", } obj := runtime.Object(test) data, err := runtime.Encode(codec, obj) if err != nil { t.Fatal(err) } obj2, gvk, err := codec.Decode(data, nil, nil) if err != nil { t.Fatal(err) } if _, ok := obj2.(*InternalSimple); !ok { t.Fatalf("Got wrong type") } if !reflect.DeepEqual(obj2, test) { t.Errorf("Expected:\n %#v,\n Got:\n %#v", test, obj2) } // object is serialized as an unversioned object (in the group and version it was defined in) if !reflect.DeepEqual(gvk, &schema.GroupVersionKind{Group: "test.group", Version: "testExternal", Kind: "InternalSimple"}) { t.Errorf("unexpected gvk returned by decode: %#v", gvk) } // when serialized to a different group, the object is kept in its preferred name codec = serializer.NewCodecFactory(scheme).LegacyCodec(otherGV) data, err = runtime.Encode(codec, obj) if err != nil { t.Fatal(err) } if string(data) != `{"apiVersion":"test.group/testExternal","kind":"InternalSimple","testString":"I'm the same"}`+"\n" { t.Errorf("unexpected data: %s", data) } }
func TestSetDefaultPersistentVolumeClaim(t *testing.T) { pvc := &versioned.PersistentVolumeClaim{} obj2 := roundTrip(t, runtime.Object(pvc)) pvc2 := obj2.(*versioned.PersistentVolumeClaim) if pvc2.Status.Phase != versioned.ClaimPending { t.Errorf("Expected claim phase %v, got %v", versioned.ClaimPending, pvc2.Status.Phase) } }
func TestSetDefaultSecret(t *testing.T) { s := &versioned.Secret{} obj2 := roundTrip(t, runtime.Object(s)) s2 := obj2.(*versioned.Secret) if s2.Type != versioned.SecretTypeOpaque { t.Errorf("Expected secret type %v, got %v", versioned.SecretTypeOpaque, s2.Type) } }
func TestSetDefaultDaemonSet(t *testing.T) { tests := []struct { ds *DaemonSet expectLabelsChange bool }{ { ds: &DaemonSet{ Spec: DaemonSetSpec{ Template: &v1.PodTemplateSpec{ ObjectMeta: v1.ObjectMeta{ Labels: map[string]string{ "foo": "bar", }, }, }, }, }, expectLabelsChange: true, }, { ds: &DaemonSet{ ObjectMeta: v1.ObjectMeta{ Labels: map[string]string{ "bar": "foo", }, }, Spec: DaemonSetSpec{ Template: &v1.PodTemplateSpec{ ObjectMeta: v1.ObjectMeta{ Labels: map[string]string{ "foo": "bar", }, }, }, }, }, expectLabelsChange: false, }, } for _, test := range tests { ds := test.ds obj2 := roundTrip(t, runtime.Object(ds)) ds2, ok := obj2.(*DaemonSet) if !ok { t.Errorf("unexpected object: %v", ds2) t.FailNow() } if test.expectLabelsChange != reflect.DeepEqual(ds2.Labels, ds2.Spec.Template.Labels) { if test.expectLabelsChange { t.Errorf("expected: %v, got: %v", ds2.Spec.Template.Labels, ds2.Labels) } else { t.Errorf("unexpected equality: %v", ds.Labels) } } } }
func TestSetDefaultDaemon(t *testing.T) { tests := []struct { dc *versioned.Daemon expectLabelsChange bool }{ { dc: &versioned.Daemon{ Spec: versioned.DaemonSpec{ Template: &versioned.PodTemplateSpec{ ObjectMeta: versioned.ObjectMeta{ Labels: map[string]string{ "foo": "bar", }, }, }, }, }, expectLabelsChange: true, }, { dc: &versioned.Daemon{ ObjectMeta: versioned.ObjectMeta{ Labels: map[string]string{ "bar": "foo", }, }, Spec: versioned.DaemonSpec{ Template: &versioned.PodTemplateSpec{ ObjectMeta: versioned.ObjectMeta{ Labels: map[string]string{ "foo": "bar", }, }, }, }, }, expectLabelsChange: false, }, } for _, test := range tests { dc := test.dc obj2 := roundTrip(t, runtime.Object(dc)) dc2, ok := obj2.(*versioned.Daemon) if !ok { t.Errorf("unexpected object: %v", dc2) t.FailNow() } if test.expectLabelsChange != reflect.DeepEqual(dc2.Labels, dc2.Spec.Template.Labels) { if test.expectLabelsChange { t.Errorf("expected: %v, got: %v", dc2.Spec.Template.Labels, dc2.Labels) } else { t.Errorf("unexpected equality: %v", dc.Labels) } } } }
func TestSetDefaultNamespace(t *testing.T) { s := &versioned.Namespace{} obj2 := roundTrip(t, runtime.Object(s)) s2 := obj2.(*versioned.Namespace) if s2.Status.Phase != versioned.NamespaceActive { t.Errorf("Expected phase %v, got %v", versioned.NamespaceActive, s2.Status.Phase) } }
func TestSetDefaultServiceWithLoadbalancer(t *testing.T) { svc := &versioned.Service{} svc.Spec.CreateExternalLoadBalancer = true obj2 := roundTrip(t, runtime.Object(svc)) svc2 := obj2.(*versioned.Service) if svc2.Spec.Type != versioned.ServiceTypeLoadBalancer { t.Errorf("Expected default type:%s, got: %s", versioned.ServiceTypeLoadBalancer, svc2.Spec.Type) } }
func TestSetDefaulServiceTargetPort(t *testing.T) { if !registered.IsAllowedVersion(versioned.SchemeGroupVersion) { return } in := &versioned.Service{Spec: versioned.ServiceSpec{Ports: []versioned.ServicePort{{Port: 1234}}}} obj := roundTrip(t, runtime.Object(in)) out := obj.(*versioned.Service) if out.Spec.Ports[0].TargetPort != intstr.FromInt(1234) { t.Errorf("Expected TargetPort to be defaulted, got %s", out.Spec.Ports[0].TargetPort) } in = &versioned.Service{Spec: versioned.ServiceSpec{Ports: []versioned.ServicePort{{Port: 1234, TargetPort: intstr.FromInt(5678)}}}} obj = roundTrip(t, runtime.Object(in)) out = obj.(*versioned.Service) if out.Spec.Ports[0].TargetPort != intstr.FromInt(5678) { t.Errorf("Expected TargetPort to be unchanged, got %s", out.Spec.Ports[0].TargetPort) } }
func TestSetDefaultServicePort(t *testing.T) { // Unchanged if set. in := &versioned.Service{Spec: versioned.ServiceSpec{ Ports: []versioned.ServicePort{ {Protocol: "UDP", Port: 9376, TargetPort: util.NewIntOrStringFromString("p")}, {Protocol: "UDP", Port: 8675, TargetPort: util.NewIntOrStringFromInt(309)}, }, }} out := roundTrip(t, runtime.Object(in)).(*versioned.Service) if out.Spec.Ports[0].Protocol != versioned.ProtocolUDP { t.Errorf("Expected protocol %s, got %s", versioned.ProtocolUDP, out.Spec.Ports[0].Protocol) } if out.Spec.Ports[0].TargetPort != util.NewIntOrStringFromString("p") { t.Errorf("Expected port %v, got %v", in.Spec.Ports[0].Port, out.Spec.Ports[0].TargetPort) } if out.Spec.Ports[1].Protocol != versioned.ProtocolUDP { t.Errorf("Expected protocol %s, got %s", versioned.ProtocolUDP, out.Spec.Ports[1].Protocol) } if out.Spec.Ports[1].TargetPort != util.NewIntOrStringFromInt(309) { t.Errorf("Expected port %v, got %v", in.Spec.Ports[1].Port, out.Spec.Ports[1].TargetPort) } // Defaulted. in = &versioned.Service{Spec: versioned.ServiceSpec{ Ports: []versioned.ServicePort{ {Protocol: "", Port: 9376, TargetPort: util.NewIntOrStringFromString("")}, {Protocol: "", Port: 8675, TargetPort: util.NewIntOrStringFromInt(0)}, }, }} out = roundTrip(t, runtime.Object(in)).(*versioned.Service) if out.Spec.Ports[0].Protocol != versioned.ProtocolTCP { t.Errorf("Expected protocol %s, got %s", versioned.ProtocolTCP, out.Spec.Ports[0].Protocol) } if out.Spec.Ports[0].TargetPort != util.NewIntOrStringFromInt(in.Spec.Ports[0].Port) { t.Errorf("Expected port %v, got %v", in.Spec.Ports[0].Port, out.Spec.Ports[0].TargetPort) } if out.Spec.Ports[1].Protocol != versioned.ProtocolTCP { t.Errorf("Expected protocol %s, got %s", versioned.ProtocolTCP, out.Spec.Ports[1].Protocol) } if out.Spec.Ports[1].TargetPort != util.NewIntOrStringFromInt(in.Spec.Ports[1].Port) { t.Errorf("Expected port %v, got %v", in.Spec.Ports[1].Port, out.Spec.Ports[1].TargetPort) } }
func TestSetDefaultRequestsPod(t *testing.T) { // verify we default if limits are specified (and that request=0 is preserved) s := versioned.PodSpec{} s.Containers = []versioned.Container{ { Resources: versioned.ResourceRequirements{ Requests: versioned.ResourceList{ versioned.ResourceMemory: resource.MustParse("0"), }, Limits: versioned.ResourceList{ versioned.ResourceCPU: resource.MustParse("100m"), versioned.ResourceMemory: resource.MustParse("1Gi"), }, }, }, } pod := &versioned.Pod{ Spec: s, } output := roundTrip(t, runtime.Object(pod)) pod2 := output.(*versioned.Pod) defaultRequest := pod2.Spec.Containers[0].Resources.Requests if requestValue := defaultRequest[versioned.ResourceCPU]; requestValue.String() != "100m" { t.Errorf("Expected request cpu: %s, got: %s", "100m", requestValue.String()) } if requestValue := defaultRequest[versioned.ResourceMemory]; requestValue.String() != "0" { t.Errorf("Expected request memory: %s, got: %s", "0", requestValue.String()) } // verify we do nothing if no limits are specified s = versioned.PodSpec{} s.Containers = []versioned.Container{{}} pod = &versioned.Pod{ Spec: s, } output = roundTrip(t, runtime.Object(pod)) pod2 = output.(*versioned.Pod) defaultRequest = pod2.Spec.Containers[0].Resources.Requests if requestValue := defaultRequest[versioned.ResourceCPU]; requestValue.String() != "0" { t.Errorf("Expected 0 request value, got: %s", requestValue.String()) } }
func TestSetDefaultService(t *testing.T) { svc := &versioned.Service{} obj2 := roundTrip(t, runtime.Object(svc)) svc2 := obj2.(*versioned.Service) if svc2.Spec.SessionAffinity != versioned.ServiceAffinityNone { t.Errorf("Expected default session affinity type:%s, got: %s", versioned.ServiceAffinityNone, svc2.Spec.SessionAffinity) } if svc2.Spec.Type != versioned.ServiceTypeClusterIP { t.Errorf("Expected default type:%s, got: %s", versioned.ServiceTypeClusterIP, svc2.Spec.Type) } }
func TestSetDefaultPersistentVolume(t *testing.T) { pv := &versioned.PersistentVolume{} obj2 := roundTrip(t, runtime.Object(pv)) pv2 := obj2.(*versioned.PersistentVolume) if pv2.Status.Phase != versioned.VolumePending { t.Errorf("Expected volume phase %v, got %v", versioned.VolumePending, pv2.Status.Phase) } if pv2.Spec.PersistentVolumeReclaimPolicy != versioned.PersistentVolumeReclaimRetain { t.Errorf("Expected pv reclaim policy %v, got %v", versioned.PersistentVolumeReclaimRetain, pv2.Spec.PersistentVolumeReclaimPolicy) } }
func TestSetDefaultSecret(t *testing.T) { if !registered.IsAllowedVersion(versioned.SchemeGroupVersion) { return } s := &versioned.Secret{} obj2 := roundTrip(t, runtime.Object(s)) s2 := obj2.(*versioned.Secret) if s2.Type != versioned.SecretTypeOpaque { t.Errorf("Expected secret type %v, got %v", versioned.SecretTypeOpaque, s2.Type) } }
func TestSetDefaultNodeExternalID(t *testing.T) { name := "node0" n := &versioned.Node{} n.Name = name obj2 := roundTrip(t, runtime.Object(n)) n2 := obj2.(*versioned.Node) if n2.Spec.ExternalID != name { t.Errorf("Expected default External ID: %s, got: %s", name, n2.Spec.ExternalID) } if n2.Spec.ProviderID != "" { t.Errorf("Expected empty default Cloud Provider ID, got: %s", n2.Spec.ProviderID) } }
func TestSetDefaultPersistentVolumeClaim(t *testing.T) { if !registered.IsAllowedVersion(versioned.SchemeGroupVersion) { return } pvc := &versioned.PersistentVolumeClaim{} obj2 := roundTrip(t, runtime.Object(pvc)) pvc2 := obj2.(*versioned.PersistentVolumeClaim) if pvc2.Status.Phase != versioned.ClaimPending { t.Errorf("Expected claim phase %v, got %v", versioned.ClaimPending, pvc2.Status.Phase) } }
func TestSetDefaultNamespace(t *testing.T) { if !registered.IsAllowedVersion(versioned.SchemeGroupVersion) { return } s := &versioned.Namespace{} obj2 := roundTrip(t, runtime.Object(s)) s2 := obj2.(*versioned.Namespace) if s2.Status.Phase != versioned.NamespaceActive { t.Errorf("Expected phase %v, got %v", versioned.NamespaceActive, s2.Status.Phase) } }
func TestDefaults_rollingParams(t *testing.T) { c := ¤t.DeploymentConfig{} o := roundTrip(t, runtime.Object(c)) config := o.(*current.DeploymentConfig) strat := config.Spec.Strategy if e, a := current.DeploymentStrategyTypeRolling, strat.Type; e != a { t.Errorf("expected strategy type %s, got %s", e, a) } if e, a := deployapi.DefaultRollingUpdatePeriodSeconds, *strat.RollingParams.UpdatePeriodSeconds; e != a { t.Errorf("expected UpdatePeriodSeconds %d, got %d", e, a) } if e, a := deployapi.DefaultRollingIntervalSeconds, *strat.RollingParams.IntervalSeconds; e != a { t.Errorf("expected IntervalSeconds %d, got %d", e, a) } if e, a := deployapi.DefaultRollingTimeoutSeconds, *strat.RollingParams.TimeoutSeconds; e != a { t.Errorf("expected UpdatePeriodSeconds %d, got %d", e, a) } }
// newInformerWatchPod creates an informer to check whether all pods are running. func newInformerWatchPod(f *framework.Framework, mutex *sync.Mutex, watchTimes map[string]metav1.Time, podType string) *cache.Controller { ns := f.Namespace.Name checkPodRunning := func(p *v1.Pod) { mutex.Lock() defer mutex.Unlock() defer GinkgoRecover() if p.Status.Phase == v1.PodRunning { if _, found := watchTimes[p.Name]; !found { watchTimes[p.Name] = metav1.Now() } } } _, controller := cache.NewInformer( &cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { options.LabelSelector = labels.SelectorFromSet(labels.Set{"type": podType}).String() obj, err := f.ClientSet.Core().Pods(ns).List(options) return runtime.Object(obj), err }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { options.LabelSelector = labels.SelectorFromSet(labels.Set{"type": podType}).String() return f.ClientSet.Core().Pods(ns).Watch(options) }, }, &v1.Pod{}, 0, cache.ResourceEventHandlerFuncs{ AddFunc: func(obj interface{}) { p, ok := obj.(*v1.Pod) Expect(ok).To(Equal(true)) go checkPodRunning(p) }, UpdateFunc: func(oldObj, newObj interface{}) { p, ok := newObj.(*v1.Pod) Expect(ok).To(Equal(true)) go checkPodRunning(p) }, }, ) return controller }