Teach serde test to deal with autoscaling group's duality.
This commit is contained in:
parent
312a7f36e2
commit
b69ec9faff
@ -41,7 +41,8 @@ func init() {
|
|||||||
}
|
}
|
||||||
testapi.Groups[testgroup.SchemeGroupVersion.Group] = testapi.NewTestGroup(
|
testapi.Groups[testgroup.SchemeGroupVersion.Group] = testapi.NewTestGroup(
|
||||||
registered.GroupOrDie(testgroup.SchemeGroupVersion.Group).GroupVersion,
|
registered.GroupOrDie(testgroup.SchemeGroupVersion.Group).GroupVersion,
|
||||||
testgroup.SchemeGroupVersion)
|
testgroup.SchemeGroupVersion,
|
||||||
|
api.Scheme.KnownTypes(testgroup.SchemeGroupVersion))
|
||||||
testHelper = testapi.Groups[testgroup.SchemeGroupVersion.Group]
|
testHelper = testapi.Groups[testgroup.SchemeGroupVersion.Group]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,7 +153,7 @@ func TestRoundTripTypes(t *testing.T) {
|
|||||||
// defer api.Scheme.Log(nil)
|
// defer api.Scheme.Log(nil)
|
||||||
|
|
||||||
for groupKey, group := range testapi.Groups {
|
for groupKey, group := range testapi.Groups {
|
||||||
for kind := range api.Scheme.KnownTypes(group.InternalGroupVersion()) {
|
for kind := range group.InternalTypes() {
|
||||||
t.Logf("working on %v in %v", kind, groupKey)
|
t.Logf("working on %v in %v", kind, groupKey)
|
||||||
if nonRoundTrippableTypes.Has(kind) {
|
if nonRoundTrippableTypes.Has(kind) {
|
||||||
continue
|
continue
|
||||||
|
@ -20,6 +20,7 @@ package testapi
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
@ -50,6 +51,7 @@ var (
|
|||||||
type TestGroup struct {
|
type TestGroup struct {
|
||||||
externalGroupVersion unversioned.GroupVersion
|
externalGroupVersion unversioned.GroupVersion
|
||||||
internalGroupVersion unversioned.GroupVersion
|
internalGroupVersion unversioned.GroupVersion
|
||||||
|
internalTypes map[string]reflect.Type
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -62,9 +64,11 @@ func init() {
|
|||||||
panic(fmt.Sprintf("Error parsing groupversion %v: %v", gvString, err))
|
panic(fmt.Sprintf("Error parsing groupversion %v: %v", gvString, err))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internalGroupVersion := unversioned.GroupVersion{Group: groupVersion.Group, Version: runtime.APIVersionInternal}
|
||||||
Groups[groupVersion.Group] = TestGroup{
|
Groups[groupVersion.Group] = TestGroup{
|
||||||
externalGroupVersion: groupVersion,
|
externalGroupVersion: groupVersion,
|
||||||
internalGroupVersion: unversioned.GroupVersion{Group: groupVersion.Group, Version: runtime.APIVersionInternal},
|
internalGroupVersion: internalGroupVersion,
|
||||||
|
internalTypes: api.Scheme.KnownTypes(internalGroupVersion),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -73,24 +77,49 @@ func init() {
|
|||||||
Groups[api.GroupName] = TestGroup{
|
Groups[api.GroupName] = TestGroup{
|
||||||
externalGroupVersion: unversioned.GroupVersion{Group: api.GroupName, Version: registered.GroupOrDie(api.GroupName).GroupVersion.Version},
|
externalGroupVersion: unversioned.GroupVersion{Group: api.GroupName, Version: registered.GroupOrDie(api.GroupName).GroupVersion.Version},
|
||||||
internalGroupVersion: api.SchemeGroupVersion,
|
internalGroupVersion: api.SchemeGroupVersion,
|
||||||
|
internalTypes: api.Scheme.KnownTypes(api.SchemeGroupVersion),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if _, ok := Groups[extensions.GroupName]; !ok {
|
if _, ok := Groups[extensions.GroupName]; !ok {
|
||||||
Groups[extensions.GroupName] = TestGroup{
|
Groups[extensions.GroupName] = TestGroup{
|
||||||
externalGroupVersion: unversioned.GroupVersion{Group: extensions.GroupName, Version: registered.GroupOrDie(extensions.GroupName).GroupVersion.Version},
|
externalGroupVersion: unversioned.GroupVersion{Group: extensions.GroupName, Version: registered.GroupOrDie(extensions.GroupName).GroupVersion.Version},
|
||||||
internalGroupVersion: extensions.SchemeGroupVersion,
|
internalGroupVersion: extensions.SchemeGroupVersion,
|
||||||
|
internalTypes: api.Scheme.KnownTypes(extensions.SchemeGroupVersion),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if _, ok := Groups[autoscaling.GroupName]; !ok {
|
if _, ok := Groups[autoscaling.GroupName]; !ok {
|
||||||
|
internalTypes := make(map[string]reflect.Type)
|
||||||
|
for k, t := range api.Scheme.KnownTypes(extensions.SchemeGroupVersion) {
|
||||||
|
if k == "Scale" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
internalTypes[k] = t
|
||||||
|
}
|
||||||
Groups[autoscaling.GroupName] = TestGroup{
|
Groups[autoscaling.GroupName] = TestGroup{
|
||||||
externalGroupVersion: unversioned.GroupVersion{Group: autoscaling.GroupName, Version: registered.GroupOrDie(autoscaling.GroupName).GroupVersion.Version},
|
externalGroupVersion: unversioned.GroupVersion{Group: autoscaling.GroupName, Version: registered.GroupOrDie(autoscaling.GroupName).GroupVersion.Version},
|
||||||
internalGroupVersion: extensions.SchemeGroupVersion,
|
internalGroupVersion: extensions.SchemeGroupVersion,
|
||||||
|
internalTypes: internalTypes,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if _, ok := Groups[autoscaling.GroupName+"IntraGroup"]; !ok {
|
||||||
|
internalTypes := make(map[string]reflect.Type)
|
||||||
|
for k, t := range api.Scheme.KnownTypes(extensions.SchemeGroupVersion) {
|
||||||
|
if k == "Scale" {
|
||||||
|
internalTypes[k] = t
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Groups[autoscaling.GroupName] = TestGroup{
|
||||||
|
externalGroupVersion: unversioned.GroupVersion{Group: autoscaling.GroupName, Version: registered.GroupOrDie(autoscaling.GroupName).GroupVersion.Version},
|
||||||
|
internalGroupVersion: autoscaling.SchemeGroupVersion,
|
||||||
|
internalTypes: internalTypes,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if _, ok := Groups[batch.GroupName]; !ok {
|
if _, ok := Groups[batch.GroupName]; !ok {
|
||||||
Groups[batch.GroupName] = TestGroup{
|
Groups[batch.GroupName] = TestGroup{
|
||||||
externalGroupVersion: unversioned.GroupVersion{Group: batch.GroupName, Version: registered.GroupOrDie(batch.GroupName).GroupVersion.Version},
|
externalGroupVersion: unversioned.GroupVersion{Group: batch.GroupName, Version: registered.GroupOrDie(batch.GroupName).GroupVersion.Version},
|
||||||
internalGroupVersion: extensions.SchemeGroupVersion,
|
internalGroupVersion: extensions.SchemeGroupVersion,
|
||||||
|
internalTypes: api.Scheme.KnownTypes(extensions.SchemeGroupVersion),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -115,6 +144,11 @@ func (g TestGroup) InternalGroupVersion() unversioned.GroupVersion {
|
|||||||
return g.internalGroupVersion
|
return g.internalGroupVersion
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InternalTypes returns a map of internal API types' kind names to their Go types.
|
||||||
|
func (g TestGroup) InternalTypes() map[string]reflect.Type {
|
||||||
|
return g.internalTypes
|
||||||
|
}
|
||||||
|
|
||||||
// Codec returns the codec for the API version to test against, as set by the
|
// Codec returns the codec for the API version to test against, as set by the
|
||||||
// KUBE_TEST_API env var.
|
// KUBE_TEST_API env var.
|
||||||
func (g TestGroup) Codec() runtime.Codec {
|
func (g TestGroup) Codec() runtime.Codec {
|
||||||
@ -228,6 +262,6 @@ func GetCodecForObject(obj runtime.Object) (runtime.Codec, error) {
|
|||||||
return nil, fmt.Errorf("unexpected kind: %v", kind)
|
return nil, fmt.Errorf("unexpected kind: %v", kind)
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewTestGroup(external, internal unversioned.GroupVersion) TestGroup {
|
func NewTestGroup(external, internal unversioned.GroupVersion, internalTypes map[string]reflect.Type) TestGroup {
|
||||||
return TestGroup{external, internal}
|
return TestGroup{external, internal, internalTypes}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user