From ac8e3dd3bb41ac3d9fe7d3b0d68763b18054d1cc Mon Sep 17 00:00:00 2001 From: Haowei Cai Date: Mon, 4 Mar 2019 08:14:41 -0800 Subject: [PATCH] apiserver: make endpoint webservice builder helpers public Kubernetes-commit: 5a971f045364ae12608b2acef1e69acef0805d18 --- pkg/endpoints/installer.go | 34 ++++++++++++++++----------------- pkg/endpoints/installer_test.go | 2 +- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/pkg/endpoints/installer.go b/pkg/endpoints/installer.go index 2b64cdc93..844062432 100644 --- a/pkg/endpoints/installer.go +++ b/pkg/endpoints/installer.go @@ -611,12 +611,12 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag Returns(http.StatusOK, "OK", producedObject). Writes(producedObject) if isGetterWithOptions { - if err := addObjectParams(ws, route, versionedGetOptions); err != nil { + if err := AddObjectParams(ws, route, versionedGetOptions); err != nil { return nil, err } } if isExporter { - if err := addObjectParams(ws, route, versionedExportOptions); err != nil { + if err := AddObjectParams(ws, route, versionedExportOptions); err != nil { return nil, err } } @@ -638,7 +638,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag Produces(append(storageMeta.ProducesMIMETypes(action.Verb), allMediaTypes...)...). Returns(http.StatusOK, "OK", versionedList). Writes(versionedList) - if err := addObjectParams(ws, route, versionedListOptions); err != nil { + if err := AddObjectParams(ws, route, versionedListOptions); err != nil { return nil, err } switch { @@ -674,7 +674,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag Returns(http.StatusCreated, "Created", producedObject). Reads(defaultVersionedObject). Writes(producedObject) - if err := addObjectParams(ws, route, versionedUpdateOptions); err != nil { + if err := AddObjectParams(ws, route, versionedUpdateOptions); err != nil { return nil, err } addParams(route, action.Params) @@ -702,7 +702,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag Returns(http.StatusOK, "OK", producedObject). Reads(metav1.Patch{}). Writes(producedObject) - if err := addObjectParams(ws, route, versionedPatchOptions); err != nil { + if err := AddObjectParams(ws, route, versionedPatchOptions); err != nil { return nil, err } addParams(route, action.Params) @@ -715,7 +715,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag handler = restfulCreateResource(creater, reqScope, admit) } handler = metrics.InstrumentRouteFunc(action.Verb, group, version, resource, subresource, requestScope, metrics.APIServerComponent, handler) - article := getArticleForNoun(kind, " ") + article := GetArticleForNoun(kind, " ") doc := "create" + article + kind if isSubresource { doc = "create " + subresource + " of" + article + kind @@ -732,13 +732,13 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag Returns(http.StatusAccepted, "Accepted", producedObject). Reads(defaultVersionedObject). Writes(producedObject) - if err := addObjectParams(ws, route, versionedCreateOptions); err != nil { + if err := AddObjectParams(ws, route, versionedCreateOptions); err != nil { return nil, err } addParams(route, action.Params) routes = append(routes, route) case "DELETE": // Delete a resource. - article := getArticleForNoun(kind, " ") + article := GetArticleForNoun(kind, " ") doc := "delete" + article + kind if isSubresource { doc = "delete " + subresource + " of" + article + kind @@ -755,7 +755,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag if isGracefulDeleter { route.Reads(versionedDeleterObject) route.ParameterNamed("body").Required(false) - if err := addObjectParams(ws, route, versionedDeleteOptions); err != nil { + if err := AddObjectParams(ws, route, versionedDeleteOptions); err != nil { return nil, err } } @@ -774,7 +774,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag Produces(append(storageMeta.ProducesMIMETypes(action.Verb), mediaTypes...)...). Writes(versionedStatus). Returns(http.StatusOK, "OK", versionedStatus) - if err := addObjectParams(ws, route, versionedListOptions); err != nil { + if err := AddObjectParams(ws, route, versionedListOptions); err != nil { return nil, err } addParams(route, action.Params) @@ -794,7 +794,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag Produces(allMediaTypes...). Returns(http.StatusOK, "OK", versionedWatchEvent). Writes(versionedWatchEvent) - if err := addObjectParams(ws, route, versionedListOptions); err != nil { + if err := AddObjectParams(ws, route, versionedListOptions); err != nil { return nil, err } addParams(route, action.Params) @@ -814,7 +814,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag Produces(allMediaTypes...). Returns(http.StatusOK, "OK", versionedWatchEvent). Writes(versionedWatchEvent) - if err := addObjectParams(ws, route, versionedListOptions); err != nil { + if err := AddObjectParams(ws, route, versionedListOptions); err != nil { return nil, err } addParams(route, action.Params) @@ -838,7 +838,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag Consumes("*/*"). Writes(connectProducedObject) if versionedConnectOptions != nil { - if err := addObjectParams(ws, route, versionedConnectOptions); err != nil { + if err := AddObjectParams(ws, route, versionedConnectOptions); err != nil { return nil, err } } @@ -907,13 +907,13 @@ func addParams(route *restful.RouteBuilder, params []*restful.Parameter) { } } -// addObjectParams converts a runtime.Object into a set of go-restful Param() definitions on the route. +// AddObjectParams converts a runtime.Object into a set of go-restful Param() definitions on the route. // The object must be a pointer to a struct; only fields at the top level of the struct that are not // themselves interfaces or structs are used; only fields with a json tag that is non empty (the standard // Go JSON behavior for omitting a field) become query parameters. The name of the query parameter is // the JSON field name. If a description struct tag is set on the field, that description is used on the // query parameter. In essence, it converts a standard JSON top level object into a query param schema. -func addObjectParams(ws *restful.WebService, route *restful.RouteBuilder, obj interface{}) error { +func AddObjectParams(ws *restful.WebService, route *restful.RouteBuilder, obj interface{}) error { sv, err := conversion.EnforcePtr(obj) if err != nil { return err @@ -1015,8 +1015,8 @@ func splitSubresource(path string) (string, string, error) { return resource, subresource, nil } -// getArticleForNoun returns the article needed for the given noun. -func getArticleForNoun(noun string, padding string) string { +// GetArticleForNoun returns the article needed for the given noun. +func GetArticleForNoun(noun string, padding string) string { if noun[len(noun)-2:] != "ss" && noun[len(noun)-1:] == "s" { // Plurals don't have an article. // Don't catch words like class diff --git a/pkg/endpoints/installer_test.go b/pkg/endpoints/installer_test.go index 898d3b385..c661bd6fc 100644 --- a/pkg/endpoints/installer_test.go +++ b/pkg/endpoints/installer_test.go @@ -82,7 +82,7 @@ func TestGetArticleForNoun(t *testing.T) { }, } for _, tt := range tests { - if got := getArticleForNoun(tt.noun, tt.padding); got != tt.want { + if got := GetArticleForNoun(tt.noun, tt.padding); got != tt.want { t.Errorf("%q. GetArticleForNoun() = %v, want %v", tt.noun, got, tt.want) } }