Turn RequestInfoResolver into a RequestInfoFactory

This commit is contained in:
Dr. Stefan Schimanski 2016-09-29 10:10:22 +02:00 committed by deads2k
parent a7f6557f1d
commit 7cfd0150e4
7 changed files with 17 additions and 17 deletions

View File

@ -3251,8 +3251,8 @@ func newTestServer(handler http.Handler) *httptest.Server {
return httptest.NewServer(handler)
}
func newTestRequestInfoResolver() *request.RequestInfoResolver {
return &request.RequestInfoResolver{
func newTestRequestInfoResolver() *request.RequestInfoFactory {
return &request.RequestInfoFactory{
APIPrefixes: sets.NewString("api", "apis"),
GrouplessAPIPrefixes: sets.NewString("api"),
}

View File

@ -113,7 +113,7 @@ func (m *fakeRequestContextMapper) Get(req *http.Request) (api.Context, bool) {
}
resolver := newTestRequestInfoResolver()
info, err := resolver.GetRequestInfo(req)
info, err := resolver.NewRequestInfo(req)
if err == nil {
ctx = request.WithRequestInfo(ctx, info)
}

View File

@ -26,7 +26,7 @@ import (
)
// WithRequestInfo attaches a RequestInfo to the context.
func WithRequestInfo(handler http.Handler, resolver *request.RequestInfoResolver, requestContextMapper api.RequestContextMapper) http.Handler {
func WithRequestInfo(handler http.Handler, resolver *request.RequestInfoFactory, requestContextMapper api.RequestContextMapper) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
ctx, ok := requestContextMapper.Get(req)
if !ok {
@ -34,7 +34,7 @@ func WithRequestInfo(handler http.Handler, resolver *request.RequestInfoResolver
return
}
info, err := resolver.GetRequestInfo(req)
info, err := resolver.NewRequestInfo(req)
if err != nil {
internalError(w, req, fmt.Errorf("failed to create RequestInfo: %v", err))
return

View File

@ -21,8 +21,8 @@ import (
"k8s.io/kubernetes/pkg/util/sets"
)
func newTestRequestInfoResolver() *request.RequestInfoResolver {
return &request.RequestInfoResolver{
func newTestRequestInfoResolver() *request.RequestInfoFactory {
return &request.RequestInfoFactory{
APIPrefixes: sets.NewString("api", "apis"),
GrouplessAPIPrefixes: sets.NewString("api"),
}

View File

@ -67,13 +67,13 @@ var namespaceSubresources = sets.NewString("status", "finalize")
// NamespaceSubResourcesForTest exports namespaceSubresources for testing in pkg/master/master_test.go, so we never drift
var NamespaceSubResourcesForTest = sets.NewString(namespaceSubresources.List()...)
type RequestInfoResolver struct {
type RequestInfoFactory struct {
APIPrefixes sets.String // without leading and trailing slashes
GrouplessAPIPrefixes sets.String // without leading and trailing slashes
}
// TODO write an integration test against the swagger doc to test the RequestInfo and match up behavior to responses
// GetRequestInfo returns the information from the http request. If error is not nil, RequestInfo holds the information as best it is known before the failure
// NewRequestInfo returns the information from the http request. If error is not nil, RequestInfo holds the information as best it is known before the failure
// It handles both resource and non-resource requests and fills in all the pertinent information for each.
// Valid Inputs:
// Resource paths
@ -103,7 +103,7 @@ type RequestInfoResolver struct {
// /api
// /healthz
// /
func (r *RequestInfoResolver) GetRequestInfo(req *http.Request) (*RequestInfo, error) {
func (r *RequestInfoFactory) NewRequestInfo(req *http.Request) (*RequestInfo, error) {
// start with a non-resource request until proven otherwise
requestInfo := RequestInfo{
IsResourceRequest: false,

View File

@ -104,7 +104,7 @@ func TestGetAPIRequestInfo(t *testing.T) {
for _, successCase := range successCases {
req, _ := http.NewRequest(successCase.method, successCase.url, nil)
apiRequestInfo, err := resolver.GetRequestInfo(req)
apiRequestInfo, err := resolver.NewRequestInfo(req)
if err != nil {
t.Errorf("Unexpected error for url: %s %v", successCase.url, err)
}
@ -147,7 +147,7 @@ func TestGetAPIRequestInfo(t *testing.T) {
if err != nil {
t.Errorf("Unexpected error %v", err)
}
apiRequestInfo, err := resolver.GetRequestInfo(req)
apiRequestInfo, err := resolver.NewRequestInfo(req)
if err != nil {
t.Errorf("%s: Unexpected error %v", k, err)
}
@ -183,7 +183,7 @@ func TestGetNonAPIRequestInfo(t *testing.T) {
for testName, tc := range tests {
req, _ := http.NewRequest("GET", tc.url, nil)
apiRequestInfo, err := resolver.GetRequestInfo(req)
apiRequestInfo, err := resolver.NewRequestInfo(req)
if err != nil {
t.Errorf("%s: Unexpected error %v", testName, err)
}
@ -193,8 +193,8 @@ func TestGetNonAPIRequestInfo(t *testing.T) {
}
}
func newTestRequestInfoResolver() *RequestInfoResolver {
return &RequestInfoResolver{
func newTestRequestInfoResolver() *RequestInfoFactory {
return &RequestInfoFactory{
APIPrefixes: sets.NewString("api", "apis"),
GrouplessAPIPrefixes: sets.NewString("api"),
}

View File

@ -507,8 +507,8 @@ func DefaultAndValidateRunOptions(options *options.ServerRunOptions) {
}
}
func NewRequestInfoResolver(c *Config) *request.RequestInfoResolver {
return &request.RequestInfoResolver{
func NewRequestInfoResolver(c *Config) *request.RequestInfoFactory {
return &request.RequestInfoFactory{
APIPrefixes: sets.NewString(strings.Trim(c.APIPrefix, "/"), strings.Trim(c.APIGroupPrefix, "/")), // all possible API prefixes
GrouplessAPIPrefixes: sets.NewString(strings.Trim(c.APIPrefix, "/")), // APIPrefixes that won't have groups (legacy)
}