mirror of https://github.com/k3s-io/k3s
Merge pull request #23596 from deads2k/relax-case-in-restmapper
Automatic merge from submit-queue relax restmapper resource matching We were matching case insensitive on Kinds, not Resources, thus driving me insane. @liggitt @caesarxuchaopull/6/head
commit
b1b58c4165
|
@ -69,7 +69,6 @@ var RESTScopeRoot = &restScope{
|
||||||
//
|
//
|
||||||
// TODO: Only accept plural for some operations for increased control?
|
// TODO: Only accept plural for some operations for increased control?
|
||||||
// (`get pod bar` vs `get pods bar`)
|
// (`get pod bar` vs `get pods bar`)
|
||||||
// TODO these maps should be keyed based on GroupVersionKinds
|
|
||||||
type DefaultRESTMapper struct {
|
type DefaultRESTMapper struct {
|
||||||
defaultGroupVersions []unversioned.GroupVersion
|
defaultGroupVersions []unversioned.GroupVersion
|
||||||
|
|
||||||
|
@ -143,6 +142,8 @@ var unpluralizedSuffixes = []string{
|
||||||
}
|
}
|
||||||
|
|
||||||
// KindToResource converts Kind to a resource name.
|
// KindToResource converts Kind to a resource name.
|
||||||
|
// Broken. This method only "sort of" works when used outside of this package. It assumes that Kinds and Resources match
|
||||||
|
// and they aren't guaranteed to do so.
|
||||||
func KindToResource(kind unversioned.GroupVersionKind) ( /*plural*/ unversioned.GroupVersionResource /*singular*/, unversioned.GroupVersionResource) {
|
func KindToResource(kind unversioned.GroupVersionKind) ( /*plural*/ unversioned.GroupVersionResource /*singular*/, unversioned.GroupVersionResource) {
|
||||||
kindName := kind.Kind
|
kindName := kind.Kind
|
||||||
if len(kindName) == 0 {
|
if len(kindName) == 0 {
|
||||||
|
@ -199,7 +200,19 @@ func (m *DefaultRESTMapper) ResourceSingularizer(resourceType string) (string, e
|
||||||
return singular.Resource, nil
|
return singular.Resource, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *DefaultRESTMapper) ResourcesFor(resource unversioned.GroupVersionResource) ([]unversioned.GroupVersionResource, error) {
|
// coerceResourceForMatching makes the resource lower case and converts internal versions to unspecified (legacy behavior)
|
||||||
|
func coerceResourceForMatching(resource unversioned.GroupVersionResource) unversioned.GroupVersionResource {
|
||||||
|
resource.Resource = strings.ToLower(resource.Resource)
|
||||||
|
if resource.Version == runtime.APIVersionInternal {
|
||||||
|
resource.Version = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
return resource
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *DefaultRESTMapper) ResourcesFor(input unversioned.GroupVersionResource) ([]unversioned.GroupVersionResource, error) {
|
||||||
|
resource := coerceResourceForMatching(input)
|
||||||
|
|
||||||
hasResource := len(resource.Resource) > 0
|
hasResource := len(resource.Resource) > 0
|
||||||
hasGroup := len(resource.Group) > 0
|
hasGroup := len(resource.Group) > 0
|
||||||
hasVersion := len(resource.Version) > 0
|
hasVersion := len(resource.Version) > 0
|
||||||
|
@ -276,10 +289,7 @@ func (m *DefaultRESTMapper) ResourceFor(resource unversioned.GroupVersionResourc
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *DefaultRESTMapper) KindsFor(input unversioned.GroupVersionResource) ([]unversioned.GroupVersionKind, error) {
|
func (m *DefaultRESTMapper) KindsFor(input unversioned.GroupVersionResource) ([]unversioned.GroupVersionKind, error) {
|
||||||
resource := input.GroupVersion().WithResource(strings.ToLower(input.Resource))
|
resource := coerceResourceForMatching(input)
|
||||||
if resource.Version == runtime.APIVersionInternal {
|
|
||||||
resource.Version = ""
|
|
||||||
}
|
|
||||||
|
|
||||||
hasResource := len(resource.Resource) > 0
|
hasResource := len(resource.Resource) > 0
|
||||||
hasGroup := len(resource.Group) > 0
|
hasGroup := len(resource.Group) > 0
|
||||||
|
|
Loading…
Reference in New Issue