mirror of https://github.com/k3s-io/k3s
Make latest.AllGroups public; fix thirdPartyResourceDataCreator.New
parent
8cab671261
commit
f1de364a0e
|
@ -939,11 +939,12 @@ func (m *Master) thirdpartyapi(group, kind, version string) *apiserver.APIGroupV
|
|||
Convertor: api.Scheme,
|
||||
Typer: api.Scheme,
|
||||
|
||||
Mapper: thirdpartyresourcedata.NewMapper(latest.GroupOrDie("experimental").RESTMapper, kind, version, group),
|
||||
Codec: thirdpartyresourcedata.NewCodec(latest.GroupOrDie("experimental").Codec, kind),
|
||||
Linker: latest.GroupOrDie("experimental").SelfLinker,
|
||||
Storage: storage,
|
||||
Version: version,
|
||||
Mapper: thirdpartyresourcedata.NewMapper(latest.GroupOrDie("experimental").RESTMapper, kind, version, group),
|
||||
Codec: thirdpartyresourcedata.NewCodec(latest.GroupOrDie("experimental").Codec, kind),
|
||||
Linker: latest.GroupOrDie("experimental").SelfLinker,
|
||||
Storage: storage,
|
||||
Version: version,
|
||||
ServerVersion: latest.GroupOrDie("").GroupVersion,
|
||||
|
||||
Context: m.requestContextMapper,
|
||||
|
||||
|
|
|
@ -266,15 +266,18 @@ type thirdPartyResourceDataCreator struct {
|
|||
}
|
||||
|
||||
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 {
|
||||
case "ThirdPartyResourceData":
|
||||
if t.version != version {
|
||||
return nil, fmt.Errorf("unknown version %s for kind %s", version, kind)
|
||||
}
|
||||
return &experimental.ThirdPartyResourceData{}, nil
|
||||
case "ThirdPartyResourceDataList":
|
||||
if t.version != version {
|
||||
return nil, fmt.Errorf("unknown version %s for kind %s", version, kind)
|
||||
}
|
||||
return &experimental.ThirdPartyResourceDataList{}, nil
|
||||
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/unversioned"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
"k8s.io/kubernetes/pkg/apis/experimental"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
)
|
||||
|
||||
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