Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var NamespaceSubResourcesForTest = sets.NewString(namespaceSubresources.List()...)
NamespaceSubResourcesForTest exports namespaceSubresources for testing in pkg/master/master_test.go, so we never drift
Functions ¶
This section is empty.
Types ¶
type RequestInfo ¶
type RequestInfo struct { // IsResourceRequest indicates whether or not the request is for an API // resource or subresource IsResourceRequest bool // Path is the URL path of the request Path string // Verb is the kube verb associated with the request for API requests, not // the http verb. This includes things like list and watch. for // non-resource requests, this is the lowercase http verb Verb string APIPrefix string APIGroup string APIVersion string Namespace string // Resource is the name of the resource being requested. This is not the // kind. For example: pods Resource string // Subresource is the name of the subresource being requested. This is a // different resource, scoped to the parent resource, but it may have a // different kind. For instance, /pods has the resource "pods" and the kind // "Pod", while /pods/foo/status has the resource "pods", the sub resource // "status", and the kind "Pod" (because status operates on pods). The // binding resource for a pod though may be /pods/foo/binding, which has // resource "pods", subresource "binding", and kind "Binding". Subresource string // Name is empty for some verbs, but if the request directly indicates a name // (not in body content) then this field is filled in. Name string // Parts are the path parts for the request, always starting with // /{resource}/{name} Parts []string }
RequestInfo holds information parsed from the http.Request
type RequestInfoFactory ¶
type RequestInfoFactory struct { APIPrefixes sets.String // without leading and trailing slashes GrouplessAPIPrefixes sets.String // without leading and trailing slashes }
func (*RequestInfoFactory) NewRequestInfo ¶
func (r *RequestInfoFactory) NewRequestInfo(req *http.Request) (*RequestInfo, error)
TODO write an integration test against the swagger doc to test the RequestInfo and match up behavior to responses 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 /apis/{api-group}/{version}/namespaces /api/{version}/namespaces /api/{version}/namespaces/{namespace} /api/{version}/namespaces/{namespace}/{resource} /api/{version}/namespaces/{namespace}/{resource}/{resourceName} /api/{version}/{resource} /api/{version}/{resource}/{resourceName}
Special verbs without subresources: /api/{version}/proxy/{resource}/{resourceName} /api/{version}/proxy/namespaces/{namespace}/{resource}/{resourceName}
Special verbs with subresources: /api/{version}/watch/{resource} /api/{version}/watch/namespaces/{namespace}/{resource}
NonResource paths /apis/{api-group}/{version} /apis/{api-group} /apis /api/{version} /api /healthz /