mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 12:43:23 +00:00
Collapse onto request scope convertor
This commit is contained in:
parent
f6b08d6d76
commit
2c1a689952
@ -236,7 +236,7 @@ func (r *crdHandler) serveResource(w http.ResponseWriter, req *http.Request, req
|
|||||||
case "update":
|
case "update":
|
||||||
return handlers.UpdateResource(storage, requestScope, r.admission)
|
return handlers.UpdateResource(storage, requestScope, r.admission)
|
||||||
case "patch":
|
case "patch":
|
||||||
return handlers.PatchResource(storage, requestScope, r.admission, unstructured.UnstructuredObjectConverter{}, supportedTypes)
|
return handlers.PatchResource(storage, requestScope, r.admission, supportedTypes)
|
||||||
case "delete":
|
case "delete":
|
||||||
allowsOptions := true
|
allowsOptions := true
|
||||||
return handlers.DeleteResource(storage, allowsOptions, requestScope, r.admission)
|
return handlers.DeleteResource(storage, allowsOptions, requestScope, r.admission)
|
||||||
@ -259,7 +259,7 @@ func (r *crdHandler) serveStatus(w http.ResponseWriter, req *http.Request, reque
|
|||||||
case "update":
|
case "update":
|
||||||
return handlers.UpdateResource(storage, requestScope, r.admission)
|
return handlers.UpdateResource(storage, requestScope, r.admission)
|
||||||
case "patch":
|
case "patch":
|
||||||
return handlers.PatchResource(storage, requestScope, r.admission, unstructured.UnstructuredObjectConverter{}, supportedTypes)
|
return handlers.PatchResource(storage, requestScope, r.admission, supportedTypes)
|
||||||
default:
|
default:
|
||||||
http.Error(w, fmt.Sprintf("unhandled verb %q", requestInfo.Verb), http.StatusMethodNotAllowed)
|
http.Error(w, fmt.Sprintf("unhandled verb %q", requestInfo.Verb), http.StatusMethodNotAllowed)
|
||||||
return nil
|
return nil
|
||||||
@ -276,7 +276,7 @@ func (r *crdHandler) serveScale(w http.ResponseWriter, req *http.Request, reques
|
|||||||
case "update":
|
case "update":
|
||||||
return handlers.UpdateResource(storage, requestScope, r.admission)
|
return handlers.UpdateResource(storage, requestScope, r.admission)
|
||||||
case "patch":
|
case "patch":
|
||||||
return handlers.PatchResource(storage, requestScope, r.admission, unstructured.UnstructuredObjectConverter{}, supportedTypes)
|
return handlers.PatchResource(storage, requestScope, r.admission, supportedTypes)
|
||||||
default:
|
default:
|
||||||
http.Error(w, fmt.Sprintf("unhandled verb %q", requestInfo.Verb), http.StatusMethodNotAllowed)
|
http.Error(w, fmt.Sprintf("unhandled verb %q", requestInfo.Verb), http.StatusMethodNotAllowed)
|
||||||
return nil
|
return nil
|
||||||
|
@ -245,6 +245,7 @@ func handleInternal(storage map[string]rest.Storage, admissionControl admission.
|
|||||||
|
|
||||||
Creater: scheme,
|
Creater: scheme,
|
||||||
Convertor: scheme,
|
Convertor: scheme,
|
||||||
|
UnsafeConvertor: runtime.UnsafeObjectConvertor(scheme),
|
||||||
Defaulter: scheme,
|
Defaulter: scheme,
|
||||||
Typer: scheme,
|
Typer: scheme,
|
||||||
Linker: selfLinker,
|
Linker: selfLinker,
|
||||||
@ -3170,6 +3171,7 @@ func TestParentResourceIsRequired(t *testing.T) {
|
|||||||
Root: "/" + prefix,
|
Root: "/" + prefix,
|
||||||
Creater: scheme,
|
Creater: scheme,
|
||||||
Convertor: scheme,
|
Convertor: scheme,
|
||||||
|
UnsafeConvertor: runtime.UnsafeObjectConvertor(scheme),
|
||||||
Defaulter: scheme,
|
Defaulter: scheme,
|
||||||
Typer: scheme,
|
Typer: scheme,
|
||||||
Linker: selfLinker,
|
Linker: selfLinker,
|
||||||
@ -3200,6 +3202,7 @@ func TestParentResourceIsRequired(t *testing.T) {
|
|||||||
Root: "/" + prefix,
|
Root: "/" + prefix,
|
||||||
Creater: scheme,
|
Creater: scheme,
|
||||||
Convertor: scheme,
|
Convertor: scheme,
|
||||||
|
UnsafeConvertor: runtime.UnsafeObjectConvertor(scheme),
|
||||||
Defaulter: scheme,
|
Defaulter: scheme,
|
||||||
Typer: scheme,
|
Typer: scheme,
|
||||||
Linker: selfLinker,
|
Linker: selfLinker,
|
||||||
@ -3824,6 +3827,7 @@ func TestXGSubresource(t *testing.T) {
|
|||||||
|
|
||||||
Creater: scheme,
|
Creater: scheme,
|
||||||
Convertor: scheme,
|
Convertor: scheme,
|
||||||
|
UnsafeConvertor: runtime.UnsafeObjectConvertor(scheme),
|
||||||
Defaulter: scheme,
|
Defaulter: scheme,
|
||||||
Typer: scheme,
|
Typer: scheme,
|
||||||
Linker: selfLinker,
|
Linker: selfLinker,
|
||||||
|
@ -42,7 +42,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// PatchResource returns a function that will handle a resource patch.
|
// PatchResource returns a function that will handle a resource patch.
|
||||||
func PatchResource(r rest.Patcher, scope RequestScope, admit admission.Interface, converter runtime.ObjectConvertor, patchTypes []string) http.HandlerFunc {
|
func PatchResource(r rest.Patcher, scope RequestScope, admit admission.Interface, patchTypes []string) http.HandlerFunc {
|
||||||
return func(w http.ResponseWriter, req *http.Request) {
|
return func(w http.ResponseWriter, req *http.Request) {
|
||||||
// For performance tracking purposes.
|
// For performance tracking purposes.
|
||||||
trace := utiltrace.New("Patch " + req.URL.Path)
|
trace := utiltrace.New("Patch " + req.URL.Path)
|
||||||
@ -77,14 +77,7 @@ func PatchResource(r rest.Patcher, scope RequestScope, admit admission.Interface
|
|||||||
ctx := req.Context()
|
ctx := req.Context()
|
||||||
ctx = request.WithNamespace(ctx, namespace)
|
ctx = request.WithNamespace(ctx, namespace)
|
||||||
|
|
||||||
// TODO: this is NOT using the scope's convertor [sic]. Figure
|
schemaReferenceObj, err := scope.UnsafeConvertor.ConvertToVersion(r.New(), scope.Kind.GroupVersion())
|
||||||
// out if this is intentional or not. Perhaps it matters on
|
|
||||||
// subresources? Rename this parameter if this is purposful and
|
|
||||||
// delete it (using scope.Convertor instead) otherwise.
|
|
||||||
//
|
|
||||||
// Already some tests set this converter but apparently not the
|
|
||||||
// scope's unsafeConvertor.
|
|
||||||
schemaReferenceObj, err := converter.ConvertToVersion(r.New(), scope.Kind.GroupVersion())
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
scope.err(err, w, req)
|
scope.err(err, w, req)
|
||||||
return
|
return
|
||||||
|
@ -629,7 +629,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag
|
|||||||
string(types.MergePatchType),
|
string(types.MergePatchType),
|
||||||
string(types.StrategicMergePatchType),
|
string(types.StrategicMergePatchType),
|
||||||
}
|
}
|
||||||
handler := metrics.InstrumentRouteFunc(action.Verb, resource, subresource, requestScope, restfulPatchResource(patcher, reqScope, admit, a.group.Convertor, supportedTypes))
|
handler := metrics.InstrumentRouteFunc(action.Verb, resource, subresource, requestScope, restfulPatchResource(patcher, reqScope, admit, supportedTypes))
|
||||||
route := ws.PATCH(action.Path).To(handler).
|
route := ws.PATCH(action.Path).To(handler).
|
||||||
Doc(doc).
|
Doc(doc).
|
||||||
Param(ws.QueryParameter("pretty", "If 'true', then the output is pretty printed.")).
|
Param(ws.QueryParameter("pretty", "If 'true', then the output is pretty printed.")).
|
||||||
@ -1005,9 +1005,9 @@ func restfulUpdateResource(r rest.Updater, scope handlers.RequestScope, admit ad
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func restfulPatchResource(r rest.Patcher, scope handlers.RequestScope, admit admission.Interface, converter runtime.ObjectConvertor, supportedTypes []string) restful.RouteFunction {
|
func restfulPatchResource(r rest.Patcher, scope handlers.RequestScope, admit admission.Interface, supportedTypes []string) restful.RouteFunction {
|
||||||
return func(req *restful.Request, res *restful.Response) {
|
return func(req *restful.Request, res *restful.Response) {
|
||||||
handlers.PatchResource(r, scope, admit, converter, supportedTypes)(res.ResponseWriter, req.Request)
|
handlers.PatchResource(r, scope, admit, supportedTypes)(res.ResponseWriter, req.Request)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user