mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-02 00:07:50 +00:00
relax restmapper resource matching
This commit is contained in:
parent
be8ce6c385
commit
936421a4ab
@ -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
Block a user