mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 01:06:27 +00:00
Make latest.AllGroups public; fix thirdPartyResourceDataCreator.New
This commit is contained in:
parent
8cab671261
commit
f1de364a0e
@ -939,11 +939,12 @@ func (m *Master) thirdpartyapi(group, kind, version string) *apiserver.APIGroupV
|
|||||||
Convertor: api.Scheme,
|
Convertor: api.Scheme,
|
||||||
Typer: api.Scheme,
|
Typer: api.Scheme,
|
||||||
|
|
||||||
Mapper: thirdpartyresourcedata.NewMapper(latest.GroupOrDie("experimental").RESTMapper, kind, version, group),
|
Mapper: thirdpartyresourcedata.NewMapper(latest.GroupOrDie("experimental").RESTMapper, kind, version, group),
|
||||||
Codec: thirdpartyresourcedata.NewCodec(latest.GroupOrDie("experimental").Codec, kind),
|
Codec: thirdpartyresourcedata.NewCodec(latest.GroupOrDie("experimental").Codec, kind),
|
||||||
Linker: latest.GroupOrDie("experimental").SelfLinker,
|
Linker: latest.GroupOrDie("experimental").SelfLinker,
|
||||||
Storage: storage,
|
Storage: storage,
|
||||||
Version: version,
|
Version: version,
|
||||||
|
ServerVersion: latest.GroupOrDie("").GroupVersion,
|
||||||
|
|
||||||
Context: m.requestContextMapper,
|
Context: m.requestContextMapper,
|
||||||
|
|
||||||
|
@ -266,15 +266,18 @@ type thirdPartyResourceDataCreator struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t *thirdPartyResourceDataCreator) New(version, kind string) (out runtime.Object, err error) {
|
func (t *thirdPartyResourceDataCreator) New(version, kind string) (out runtime.Object, err error) {
|
||||||
if t.version != version {
|
|
||||||
return nil, fmt.Errorf("unknown version %s for kind %s", version, kind)
|
|
||||||
}
|
|
||||||
switch kind {
|
switch kind {
|
||||||
case "ThirdPartyResourceData":
|
case "ThirdPartyResourceData":
|
||||||
|
if t.version != version {
|
||||||
|
return nil, fmt.Errorf("unknown version %s for kind %s", version, kind)
|
||||||
|
}
|
||||||
return &experimental.ThirdPartyResourceData{}, nil
|
return &experimental.ThirdPartyResourceData{}, nil
|
||||||
case "ThirdPartyResourceDataList":
|
case "ThirdPartyResourceDataList":
|
||||||
|
if t.version != version {
|
||||||
|
return nil, fmt.Errorf("unknown version %s for kind %s", version, kind)
|
||||||
|
}
|
||||||
return &experimental.ThirdPartyResourceDataList{}, nil
|
return &experimental.ThirdPartyResourceDataList{}, nil
|
||||||
default:
|
default:
|
||||||
return t.delegate.New(latest.GroupOrDie("experimental").Version, kind)
|
return t.delegate.New(version, kind)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,9 @@ import (
|
|||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
|
"k8s.io/kubernetes/pkg/api/v1"
|
||||||
"k8s.io/kubernetes/pkg/apis/experimental"
|
"k8s.io/kubernetes/pkg/apis/experimental"
|
||||||
|
"k8s.io/kubernetes/pkg/runtime"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Foo struct {
|
type Foo struct {
|
||||||
@ -133,3 +135,49 @@ func TestCodec(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestCreater(t *testing.T) {
|
||||||
|
creater := NewObjectCreator("creater version", api.Scheme)
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
version string
|
||||||
|
kind string
|
||||||
|
expectedObj runtime.Object
|
||||||
|
expectErr bool
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "valid ThirdPartyResourceData creation",
|
||||||
|
version: "creater version",
|
||||||
|
kind: "ThirdPartyResourceData",
|
||||||
|
expectedObj: &experimental.ThirdPartyResourceData{},
|
||||||
|
expectErr: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "invalid ThirdPartyResourceData creation",
|
||||||
|
version: "invalid version",
|
||||||
|
kind: "ThirdPartyResourceData",
|
||||||
|
expectedObj: nil,
|
||||||
|
expectErr: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "valid ListOptions creation",
|
||||||
|
version: "v1",
|
||||||
|
kind: "ListOptions",
|
||||||
|
expectedObj: &v1.ListOptions{},
|
||||||
|
expectErr: false,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for _, test := range tests {
|
||||||
|
out, err := creater.New(test.version, test.kind)
|
||||||
|
if err != nil && !test.expectErr {
|
||||||
|
t.Errorf("[%s] unexpected error: %v", test.name, err)
|
||||||
|
}
|
||||||
|
if err == nil && test.expectErr {
|
||||||
|
t.Errorf("[%s] unexpected non-error", test.name)
|
||||||
|
}
|
||||||
|
if !reflect.DeepEqual(test.expectedObj, out) {
|
||||||
|
t.Errorf("[%s] unexpected error: expect: %v, got: %v", test.expectedObj, out)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user