Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
c40dd033
Commit
c40dd033
authored
Nov 16, 2015
by
deads2k
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
make DefaultRESTMapper methods type correct
parent
94ad6aa0
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
48 additions
and
46 deletions
+48
-46
install.go
pkg/api/install/install.go
+6
-1
mapper.go
pkg/api/mapper.go
+6
-14
restmapper.go
pkg/api/meta/restmapper.go
+7
-20
restmapper_test.go
pkg/api/meta/restmapper_test.go
+0
-0
install.go
pkg/apis/componentconfig/install/install.go
+6
-1
install.go
pkg/apis/extensions/install/install.go
+6
-1
install.go
pkg/apis/metrics/install/install.go
+6
-1
apiserver_test.go
pkg/apiserver/apiserver_test.go
+5
-4
cmd_test.go
pkg/kubectl/cmd/cmd_test.go
+6
-4
No files found.
pkg/api/install/install.go
View file @
c40dd033
...
...
@@ -30,6 +30,7 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/meta"
"k8s.io/kubernetes/pkg/api/registered"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/runtime"
)
...
...
@@ -47,6 +48,9 @@ func init() {
glog
.
V
(
4
)
.
Infof
(
"%v"
,
err
)
return
}
worstToBestGroupVersions
:=
[]
unversioned
.
GroupVersion
{}
// Use the first API version in the list of registered versions as the latest.
registeredGroupVersions
:=
registered
.
GroupVersionsForGroup
(
""
)
groupVersion
:=
registeredGroupVersions
[
0
]
...
...
@@ -61,6 +65,7 @@ func init() {
for
i
:=
len
(
registeredGroupVersions
)
-
1
;
i
>=
0
;
i
--
{
versions
=
append
(
versions
,
registeredGroupVersions
[
i
]
.
Version
)
groupVersions
=
append
(
groupVersions
,
registeredGroupVersions
[
i
]
.
String
())
worstToBestGroupVersions
=
append
(
worstToBestGroupVersions
,
registeredGroupVersions
[
i
])
}
groupMeta
.
Versions
=
versions
groupMeta
.
GroupVersions
=
groupVersions
...
...
@@ -89,7 +94,7 @@ func init() {
"ThirdPartyResourceData"
,
"ThirdPartyResourceList"
)
mapper
:=
api
.
NewDefaultRESTMapper
(
""
,
v
ersions
,
interfacesFor
,
importPrefix
,
ignoredKinds
,
rootScoped
)
mapper
:=
api
.
NewDefaultRESTMapper
(
worstToBestGroupV
ersions
,
interfacesFor
,
importPrefix
,
ignoredKinds
,
rootScoped
)
// setup aliases for groups of resources
mapper
.
AddResourceAlias
(
"all"
,
userResources
...
)
groupMeta
.
RESTMapper
=
mapper
...
...
pkg/api/mapper.go
View file @
c40dd033
...
...
@@ -17,7 +17,6 @@ limitations under the License.
package
api
import
(
"fmt"
"strings"
"k8s.io/kubernetes/pkg/api/meta"
...
...
@@ -35,23 +34,16 @@ func RegisterRESTMapper(m meta.RESTMapper) {
RESTMapper
=
append
(
RESTMapper
.
(
meta
.
MultiRESTMapper
),
m
)
}
func
NewDefaultRESTMapper
(
group
string
,
groupVersionStrings
[]
string
,
interfacesFunc
meta
.
VersionInterfacesFunc
,
func
NewDefaultRESTMapper
(
defaultGroupVersions
[]
unversioned
.
GroupVersion
,
interfacesFunc
meta
.
VersionInterfacesFunc
,
importPathPrefix
string
,
ignoredKinds
,
rootScoped
sets
.
String
)
*
meta
.
DefaultRESTMapper
{
mapper
:=
meta
.
NewDefaultRESTMapper
(
group
,
groupVersionString
s
,
interfacesFunc
)
mapper
:=
meta
.
NewDefaultRESTMapper
(
defaultGroupVersion
s
,
interfacesFunc
)
// enumerate all supported versions, get the kinds, and register with the mapper how to address
// our resources.
for
_
,
gvString
:=
range
groupVersionStrings
{
gv
,
err
:=
unversioned
.
ParseGroupVersion
(
gvString
)
// TODO stop panicing when the types are fixed
if
err
!=
nil
{
panic
(
err
)
}
if
gv
.
Group
!=
group
{
panic
(
fmt
.
Sprintf
(
"%q does not match the expect %q"
,
gv
.
Group
,
group
))
}
for
_
,
gv
:=
range
defaultGroupVersions
{
for
kind
,
oType
:=
range
Scheme
.
KnownTypes
(
gv
.
String
())
{
gvk
:=
gv
.
WithKind
(
kind
)
// TODO: Remove import path prefix check.
// We check the import path prefix because we currently stuff both "api" and "extensions" objects
// into the same group within Scheme since Scheme has no notion of groups yet.
...
...
@@ -62,7 +54,7 @@ func NewDefaultRESTMapper(group string, groupVersionStrings []string, interfaces
if
rootScoped
.
Has
(
kind
)
{
scope
=
meta
.
RESTScopeRoot
}
mapper
.
Add
(
scope
,
kind
,
gv
.
String
()
,
false
)
mapper
.
Add
(
gvk
,
scope
,
false
)
}
}
return
mapper
...
...
pkg/api/meta/restmapper.go
View file @
c40dd033
...
...
@@ -69,7 +69,7 @@ var RESTScopeRoot = &restScope{
// (`get pod bar` vs `get pods bar`)
// TODO these maps should be keyed based on GroupVersionKinds
type
DefaultRESTMapper
struct
{
g
roupVersions
[]
unversioned
.
GroupVersion
defaultG
roupVersions
[]
unversioned
.
GroupVersion
resourceToKind
map
[
string
]
unversioned
.
GroupVersionKind
kindToPluralResource
map
[
unversioned
.
GroupVersionKind
]
string
...
...
@@ -89,12 +89,7 @@ type VersionInterfacesFunc func(apiVersion string) (*VersionInterfaces, error)
// and the Kubernetes API conventions. Takes a group name, a priority list of the versions
// to search when an object has no default version (set empty to return an error),
// and a function that retrieves the correct codec and metadata for a given version.
// TODO remove group when this API is fixed. It is no longer used.
// The external API for a RESTMapper is cross-version and this is currently called using
// group/version tuples. In the end, the structure may be easier to understand with
// a GroupRESTMapper and CrossGroupRESTMapper, but for now, this one is constructed and
// used a CrossGroupRESTMapper.
func
NewDefaultRESTMapper
(
group
string
,
gvStrings
[]
string
,
f
VersionInterfacesFunc
)
*
DefaultRESTMapper
{
func
NewDefaultRESTMapper
(
defaultGroupVersions
[]
unversioned
.
GroupVersion
,
f
VersionInterfacesFunc
)
*
DefaultRESTMapper
{
resourceToKind
:=
make
(
map
[
string
]
unversioned
.
GroupVersionKind
)
kindToPluralResource
:=
make
(
map
[
unversioned
.
GroupVersionKind
]
string
)
kindToScope
:=
make
(
map
[
unversioned
.
GroupVersionKind
]
RESTScope
)
...
...
@@ -102,27 +97,19 @@ func NewDefaultRESTMapper(group string, gvStrings []string, f VersionInterfacesF
pluralToSingular
:=
make
(
map
[
string
]
string
)
// TODO: verify name mappings work correctly when versions differ
gvs
:=
[]
unversioned
.
GroupVersion
{}
for
_
,
gvString
:=
range
gvStrings
{
gvs
=
append
(
gvs
,
unversioned
.
ParseGroupVersionOrDie
(
gvString
))
}
return
&
DefaultRESTMapper
{
resourceToKind
:
resourceToKind
,
kindToPluralResource
:
kindToPluralResource
,
kindToScope
:
kindToScope
,
groupVersions
:
gv
s
,
defaultGroupVersions
:
defaultGroupVersion
s
,
singularToPlural
:
singularToPlural
,
pluralToSingular
:
pluralToSingular
,
interfacesFunc
:
f
,
}
}
func
(
m
*
DefaultRESTMapper
)
Add
(
scope
RESTScope
,
kind
string
,
gvString
string
,
mixedCase
bool
)
{
gv
:=
unversioned
.
ParseGroupVersionOrDie
(
gvString
)
gvk
:=
gv
.
WithKind
(
kind
)
plural
,
singular
:=
KindToResource
(
kind
,
mixedCase
)
func
(
m
*
DefaultRESTMapper
)
Add
(
gvk
unversioned
.
GroupVersionKind
,
scope
RESTScope
,
mixedCase
bool
)
{
plural
,
singular
:=
KindToResource
(
gvk
.
Kind
,
mixedCase
)
m
.
singularToPlural
[
singular
]
=
plural
m
.
pluralToSingular
[
plural
]
=
singular
_
,
ok1
:=
m
.
resourceToKind
[
plural
]
...
...
@@ -223,7 +210,7 @@ func (m *DefaultRESTMapper) RESTMapping(kind string, versions ...string) (*RESTM
}
// Use the default preferred versions
if
!
hadVersion
&&
(
groupVersion
==
nil
)
{
for
_
,
currGroupVersion
:=
range
m
.
g
roupVersions
{
for
_
,
currGroupVersion
:=
range
m
.
defaultG
roupVersions
{
currGVK
:=
currGroupVersion
.
WithKind
(
kind
)
if
_
,
ok
:=
m
.
kindToPluralResource
[
currGVK
];
ok
{
groupVersion
=
&
currGroupVersion
...
...
@@ -241,7 +228,7 @@ func (m *DefaultRESTMapper) RESTMapping(kind string, versions ...string) (*RESTM
resource
,
ok
:=
m
.
kindToPluralResource
[
gvk
]
if
!
ok
{
found
:=
[]
unversioned
.
GroupVersion
{}
for
_
,
gv
:=
range
m
.
g
roupVersions
{
for
_
,
gv
:=
range
m
.
defaultG
roupVersions
{
if
_
,
ok
:=
m
.
kindToPluralResource
[
gvk
];
ok
{
found
=
append
(
found
,
gv
)
}
...
...
pkg/api/meta/restmapper_test.go
View file @
c40dd033
This diff is collapsed.
Click to expand it.
pkg/apis/componentconfig/install/install.go
View file @
c40dd033
...
...
@@ -28,6 +28,7 @@ import (
"k8s.io/kubernetes/pkg/api/latest"
"k8s.io/kubernetes/pkg/api/meta"
"k8s.io/kubernetes/pkg/api/registered"
"k8s.io/kubernetes/pkg/api/unversioned"
_
"k8s.io/kubernetes/pkg/apis/componentconfig"
"k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1"
"k8s.io/kubernetes/pkg/runtime"
...
...
@@ -44,6 +45,9 @@ func init() {
glog
.
V
(
4
)
.
Infof
(
"%v"
,
err
)
return
}
worstToBestGroupVersions
:=
[]
unversioned
.
GroupVersion
{}
registeredGroupVersions
:=
registered
.
GroupVersionsForGroup
(
"componentconfig"
)
groupVersion
:=
registeredGroupVersions
[
0
]
*
groupMeta
=
latest
.
GroupMeta
{
...
...
@@ -57,6 +61,7 @@ func init() {
for
i
:=
len
(
registeredGroupVersions
)
-
1
;
i
>=
0
;
i
--
{
versions
=
append
(
versions
,
registeredGroupVersions
[
i
]
.
Version
)
groupVersions
=
append
(
groupVersions
,
registeredGroupVersions
[
i
]
.
String
())
worstToBestGroupVersions
=
append
(
worstToBestGroupVersions
,
registeredGroupVersions
[
i
])
}
groupMeta
.
Versions
=
versions
groupMeta
.
GroupVersions
=
groupVersions
...
...
@@ -69,7 +74,7 @@ func init() {
ignoredKinds
:=
sets
.
NewString
()
groupMeta
.
RESTMapper
=
api
.
NewDefaultRESTMapper
(
"componentconfig"
,
g
roupVersions
,
interfacesFor
,
importPrefix
,
ignoredKinds
,
rootScoped
)
groupMeta
.
RESTMapper
=
api
.
NewDefaultRESTMapper
(
worstToBestG
roupVersions
,
interfacesFor
,
importPrefix
,
ignoredKinds
,
rootScoped
)
api
.
RegisterRESTMapper
(
groupMeta
.
RESTMapper
)
groupMeta
.
InterfacesFor
=
interfacesFor
}
...
...
pkg/apis/extensions/install/install.go
View file @
c40dd033
...
...
@@ -28,6 +28,7 @@ import (
"k8s.io/kubernetes/pkg/api/latest"
"k8s.io/kubernetes/pkg/api/meta"
"k8s.io/kubernetes/pkg/api/registered"
"k8s.io/kubernetes/pkg/api/unversioned"
_
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
"k8s.io/kubernetes/pkg/runtime"
...
...
@@ -44,6 +45,9 @@ func init() {
glog
.
V
(
4
)
.
Infof
(
"%v"
,
err
)
return
}
worstToBestGroupVersions
:=
[]
unversioned
.
GroupVersion
{}
registeredGroupVersions
:=
registered
.
GroupVersionsForGroup
(
"extensions"
)
groupVersion
:=
registeredGroupVersions
[
0
]
*
groupMeta
=
latest
.
GroupMeta
{
...
...
@@ -57,6 +61,7 @@ func init() {
for
i
:=
len
(
registeredGroupVersions
)
-
1
;
i
>=
0
;
i
--
{
versions
=
append
(
versions
,
registeredGroupVersions
[
i
]
.
Version
)
groupVersions
=
append
(
groupVersions
,
registeredGroupVersions
[
i
]
.
String
())
worstToBestGroupVersions
=
append
(
worstToBestGroupVersions
,
registeredGroupVersions
[
i
])
}
groupMeta
.
Versions
=
versions
groupMeta
.
GroupVersions
=
groupVersions
...
...
@@ -69,7 +74,7 @@ func init() {
ignoredKinds
:=
sets
.
NewString
()
groupMeta
.
RESTMapper
=
api
.
NewDefaultRESTMapper
(
"extensions"
,
g
roupVersions
,
interfacesFor
,
importPrefix
,
ignoredKinds
,
rootScoped
)
groupMeta
.
RESTMapper
=
api
.
NewDefaultRESTMapper
(
worstToBestG
roupVersions
,
interfacesFor
,
importPrefix
,
ignoredKinds
,
rootScoped
)
api
.
RegisterRESTMapper
(
groupMeta
.
RESTMapper
)
groupMeta
.
InterfacesFor
=
interfacesFor
}
...
...
pkg/apis/metrics/install/install.go
View file @
c40dd033
...
...
@@ -28,6 +28,7 @@ import (
"k8s.io/kubernetes/pkg/api/latest"
"k8s.io/kubernetes/pkg/api/meta"
"k8s.io/kubernetes/pkg/api/registered"
"k8s.io/kubernetes/pkg/api/unversioned"
_
"k8s.io/kubernetes/pkg/apis/metrics"
"k8s.io/kubernetes/pkg/apis/metrics/v1alpha1"
"k8s.io/kubernetes/pkg/runtime"
...
...
@@ -44,6 +45,9 @@ func init() {
glog
.
V
(
4
)
.
Infof
(
"%v"
,
err
)
return
}
worstToBestGroupVersions
:=
[]
unversioned
.
GroupVersion
{}
registeredGroupVersions
:=
registered
.
GroupVersionsForGroup
(
"metrics"
)
groupVersion
:=
registeredGroupVersions
[
0
]
*
groupMeta
=
latest
.
GroupMeta
{
...
...
@@ -57,6 +61,7 @@ func init() {
for
i
:=
len
(
registeredGroupVersions
)
-
1
;
i
>=
0
;
i
--
{
versions
=
append
(
versions
,
registeredGroupVersions
[
i
]
.
Version
)
groupVersions
=
append
(
groupVersions
,
registeredGroupVersions
[
i
]
.
String
())
worstToBestGroupVersions
=
append
(
worstToBestGroupVersions
,
registeredGroupVersions
[
i
])
}
groupMeta
.
Versions
=
versions
groupMeta
.
GroupVersions
=
groupVersions
...
...
@@ -69,7 +74,7 @@ func init() {
ignoredKinds
:=
sets
.
NewString
()
groupMeta
.
RESTMapper
=
api
.
NewDefaultRESTMapper
(
"metrics"
,
g
roupVersions
,
interfacesFor
,
importPrefix
,
ignoredKinds
,
rootScoped
)
groupMeta
.
RESTMapper
=
api
.
NewDefaultRESTMapper
(
worstToBestG
roupVersions
,
interfacesFor
,
importPrefix
,
ignoredKinds
,
rootScoped
)
api
.
RegisterRESTMapper
(
groupMeta
.
RESTMapper
)
groupMeta
.
InterfacesFor
=
interfacesFor
}
...
...
pkg/apiserver/apiserver_test.go
View file @
c40dd033
...
...
@@ -107,8 +107,7 @@ func interfacesFor(version string) (*meta.VersionInterfaces, error) {
}
func
newMapper
()
*
meta
.
DefaultRESTMapper
{
gvStrings
:=
[]
string
{
testGroupVersion
.
String
(),
newGroupVersion
.
String
()}
return
meta
.
NewDefaultRESTMapper
(
testAPIGroup
,
gvStrings
,
interfacesFor
)
return
meta
.
NewDefaultRESTMapper
([]
unversioned
.
GroupVersion
{
testGroupVersion
,
newGroupVersion
},
interfacesFor
)
}
func
addGrouplessTypes
()
{
...
...
@@ -176,11 +175,13 @@ func init() {
// the mapper how to address our resources
for
_
,
gv
:=
range
groupVersions
{
for
kind
:=
range
api
.
Scheme
.
KnownTypes
(
gv
.
String
())
{
gvk
:=
gv
.
WithKind
(
kind
)
root
:=
bool
(
kind
==
"SimpleRoot"
)
if
root
{
nsMapper
.
Add
(
meta
.
RESTScopeRoot
,
kind
,
gv
.
String
()
,
false
)
nsMapper
.
Add
(
gvk
,
meta
.
RESTScopeRoot
,
false
)
}
else
{
nsMapper
.
Add
(
meta
.
RESTScopeNamespace
,
kind
,
gv
.
String
()
,
false
)
nsMapper
.
Add
(
gvk
,
meta
.
RESTScopeNamespace
,
false
)
}
}
}
...
...
pkg/kubectl/cmd/cmd_test.go
View file @
c40dd033
...
...
@@ -90,18 +90,20 @@ func newExternalScheme() (*runtime.Scheme, meta.RESTMapper, runtime.Codec) {
scheme
.
AddKnownTypeWithName
(
validVersionGV
.
String
(),
"Type"
,
&
ExternalType2
{})
codec
:=
runtime
.
CodecFor
(
scheme
,
unlikelyGV
.
String
())
mapper
:=
meta
.
NewDefaultRESTMapper
(
"apitest"
,
[]
string
{
unlikelyGV
.
String
(),
validVersionGV
.
String
()
},
func
(
version
string
)
(
*
meta
.
VersionInterfaces
,
error
)
{
mapper
:=
meta
.
NewDefaultRESTMapper
(
[]
unversioned
.
GroupVersion
{
unlikelyGV
,
validVersionGV
},
func
(
version
string
)
(
*
meta
.
VersionInterfaces
,
error
)
{
return
&
meta
.
VersionInterfaces
{
Codec
:
runtime
.
CodecFor
(
scheme
,
version
),
ObjectConvertor
:
scheme
,
MetadataAccessor
:
meta
.
NewAccessor
(),
},
versionErrIfFalse
(
version
==
validVersionGV
.
String
()
||
version
==
unlikelyGV
.
String
())
})
for
_
,
version
:=
range
[]
string
{
unlikelyGV
.
String
(),
validVersionGV
.
String
()}
{
for
kind
:=
range
scheme
.
KnownTypes
(
version
)
{
for
_
,
gv
:=
range
[]
unversioned
.
GroupVersion
{
unlikelyGV
,
validVersionGV
}
{
for
kind
:=
range
scheme
.
KnownTypes
(
gv
.
String
())
{
gvk
:=
gv
.
WithKind
(
kind
)
mixedCase
:=
false
scope
:=
meta
.
RESTScopeNamespace
mapper
.
Add
(
scope
,
kind
,
version
,
mixedCase
)
mapper
.
Add
(
gvk
,
scope
,
mixedCase
)
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment