|  |  | @@ -550,25 +550,24 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag | 
			
		
	
		
		
			
				
					
					|  |  |  | 			versionedObject = defaultVersionedObject |  |  |  | 			versionedObject = defaultVersionedObject | 
			
		
	
		
		
			
				
					
					|  |  |  | 		} |  |  |  | 		} | 
			
		
	
		
		
			
				
					
					|  |  |  | 		reqScope.Namer = action.Namer |  |  |  | 		reqScope.Namer = action.Namer | 
			
		
	
		
		
			
				
					
					|  |  |  | 		namespaced := "" |  |  |  |  | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		requestScope := "cluster" | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		var namespaced string | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		var operationSuffix string | 
			
		
	
		
		
			
				
					
					|  |  |  | 		if apiResource.Namespaced { |  |  |  | 		if apiResource.Namespaced { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			requestScope = "namespace" | 
			
		
	
		
		
			
				
					
					|  |  |  | 			namespaced = "Namespaced" |  |  |  | 			namespaced = "Namespaced" | 
			
		
	
		
		
			
				
					
					|  |  |  | 		} |  |  |  | 		} | 
			
		
	
		
		
			
				
					
					|  |  |  | 		operationSuffix := "" |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 		if strings.HasSuffix(action.Path, "/{path:*}") { |  |  |  | 		if strings.HasSuffix(action.Path, "/{path:*}") { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			requestScope = "resource" | 
			
		
	
		
		
			
				
					
					|  |  |  | 			operationSuffix = operationSuffix + "WithPath" |  |  |  | 			operationSuffix = operationSuffix + "WithPath" | 
			
		
	
		
		
			
				
					
					|  |  |  | 		} |  |  |  | 		} | 
			
		
	
		
		
			
				
					
					|  |  |  | 		if action.AllNamespaces { |  |  |  | 		if action.AllNamespaces { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			requestScope = "cluster" | 
			
		
	
		
		
			
				
					
					|  |  |  | 			operationSuffix = operationSuffix + "ForAllNamespaces" |  |  |  | 			operationSuffix = operationSuffix + "ForAllNamespaces" | 
			
		
	
		
		
			
				
					
					|  |  |  | 			namespaced = "" |  |  |  | 			namespaced = "" | 
			
		
	
		
		
			
				
					
					|  |  |  | 		} |  |  |  | 		} | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 		// This variable is calculated for the purpose of instrumentation. |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 		namespaceScope := "cluster" |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 		if namespaced != "" { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 			namespaceScope = "namespace" |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 		} |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 		if kubeVerb, found := toDiscoveryKubeVerb[action.Verb]; found { |  |  |  | 		if kubeVerb, found := toDiscoveryKubeVerb[action.Verb]; found { | 
			
		
	
		
		
			
				
					
					|  |  |  | 			if len(kubeVerb) != 0 { |  |  |  | 			if len(kubeVerb) != 0 { | 
			
		
	
		
		
			
				
					
					|  |  |  | 				kubeVerbs[kubeVerb] = struct{}{} |  |  |  | 				kubeVerbs[kubeVerb] = struct{}{} | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -601,9 +600,9 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 			if needOverride { |  |  |  | 			if needOverride { | 
			
		
	
		
		
			
				
					
					|  |  |  | 				// need change the reported verb |  |  |  | 				// need change the reported verb | 
			
		
	
		
		
			
				
					
					|  |  |  | 				handler = metrics.InstrumentRouteFunc(verbOverrider.OverrideMetricsVerb(action.Verb), resource, subresource, namespaceScope, handler) |  |  |  | 				handler = metrics.InstrumentRouteFunc(verbOverrider.OverrideMetricsVerb(action.Verb), resource, subresource, requestScope, handler) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 			} else { |  |  |  | 			} else { | 
			
		
	
		
		
			
				
					
					|  |  |  | 				handler = metrics.InstrumentRouteFunc(action.Verb, resource, subresource, namespaceScope, handler) |  |  |  | 				handler = metrics.InstrumentRouteFunc(action.Verb, resource, subresource, requestScope, handler) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 			} |  |  |  | 			} | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 			if a.enableAPIResponseCompression { |  |  |  | 			if a.enableAPIResponseCompression { | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -637,7 +636,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag | 
			
		
	
		
		
			
				
					
					|  |  |  | 			if hasSubresource { |  |  |  | 			if hasSubresource { | 
			
		
	
		
		
			
				
					
					|  |  |  | 				doc = "list " + subresource + " of objects of kind " + kind |  |  |  | 				doc = "list " + subresource + " of objects of kind " + kind | 
			
		
	
		
		
			
				
					
					|  |  |  | 			} |  |  |  | 			} | 
			
		
	
		
		
			
				
					
					|  |  |  | 			handler := metrics.InstrumentRouteFunc(action.Verb, resource, subresource, namespaceScope, restfulListResource(lister, watcher, reqScope, false, a.minRequestTimeout)) |  |  |  | 			handler := metrics.InstrumentRouteFunc(action.Verb, resource, subresource, requestScope, restfulListResource(lister, watcher, reqScope, false, a.minRequestTimeout)) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 			if a.enableAPIResponseCompression { |  |  |  | 			if a.enableAPIResponseCompression { | 
			
		
	
		
		
			
				
					
					|  |  |  | 				handler = genericfilters.RestfulWithCompression(handler, a.group.Context) |  |  |  | 				handler = genericfilters.RestfulWithCompression(handler, a.group.Context) | 
			
		
	
		
		
			
				
					
					|  |  |  | 			} |  |  |  | 			} | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -672,7 +671,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag | 
			
		
	
		
		
			
				
					
					|  |  |  | 			if hasSubresource { |  |  |  | 			if hasSubresource { | 
			
		
	
		
		
			
				
					
					|  |  |  | 				doc = "replace " + subresource + " of the specified " + kind |  |  |  | 				doc = "replace " + subresource + " of the specified " + kind | 
			
		
	
		
		
			
				
					
					|  |  |  | 			} |  |  |  | 			} | 
			
		
	
		
		
			
				
					
					|  |  |  | 			handler := metrics.InstrumentRouteFunc(action.Verb, resource, subresource, namespaceScope, restfulUpdateResource(updater, reqScope, a.group.Typer, admit)) |  |  |  | 			handler := metrics.InstrumentRouteFunc(action.Verb, resource, subresource, requestScope, restfulUpdateResource(updater, reqScope, a.group.Typer, admit)) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 			route := ws.PUT(action.Path).To(handler). |  |  |  | 			route := ws.PUT(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.")). | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -688,7 +687,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag | 
			
		
	
		
		
			
				
					
					|  |  |  | 			if hasSubresource { |  |  |  | 			if hasSubresource { | 
			
		
	
		
		
			
				
					
					|  |  |  | 				doc = "partially update " + subresource + " of the specified " + kind |  |  |  | 				doc = "partially update " + subresource + " of the specified " + kind | 
			
		
	
		
		
			
				
					
					|  |  |  | 			} |  |  |  | 			} | 
			
		
	
		
		
			
				
					
					|  |  |  | 			handler := metrics.InstrumentRouteFunc(action.Verb, resource, subresource, namespaceScope, restfulPatchResource(patcher, reqScope, admit, mapping.ObjectConvertor)) |  |  |  | 			handler := metrics.InstrumentRouteFunc(action.Verb, resource, subresource, requestScope, restfulPatchResource(patcher, reqScope, admit, mapping.ObjectConvertor)) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 			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.")). | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -707,7 +706,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag | 
			
		
	
		
		
			
				
					
					|  |  |  | 			} else { |  |  |  | 			} else { | 
			
		
	
		
		
			
				
					
					|  |  |  | 				handler = restfulCreateResource(creater, reqScope, a.group.Typer, admit) |  |  |  | 				handler = restfulCreateResource(creater, reqScope, a.group.Typer, admit) | 
			
		
	
		
		
			
				
					
					|  |  |  | 			} |  |  |  | 			} | 
			
		
	
		
		
			
				
					
					|  |  |  | 			handler = metrics.InstrumentRouteFunc(action.Verb, resource, subresource, namespaceScope, handler) |  |  |  | 			handler = metrics.InstrumentRouteFunc(action.Verb, resource, subresource, requestScope, handler) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 			article := getArticleForNoun(kind, " ") |  |  |  | 			article := getArticleForNoun(kind, " ") | 
			
		
	
		
		
			
				
					
					|  |  |  | 			doc := "create" + article + kind |  |  |  | 			doc := "create" + article + kind | 
			
		
	
		
		
			
				
					
					|  |  |  | 			if hasSubresource { |  |  |  | 			if hasSubresource { | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -729,7 +728,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag | 
			
		
	
		
		
			
				
					
					|  |  |  | 			if hasSubresource { |  |  |  | 			if hasSubresource { | 
			
		
	
		
		
			
				
					
					|  |  |  | 				doc = "delete " + subresource + " of" + article + kind |  |  |  | 				doc = "delete " + subresource + " of" + article + kind | 
			
		
	
		
		
			
				
					
					|  |  |  | 			} |  |  |  | 			} | 
			
		
	
		
		
			
				
					
					|  |  |  | 			handler := metrics.InstrumentRouteFunc(action.Verb, resource, subresource, namespaceScope, restfulDeleteResource(gracefulDeleter, isGracefulDeleter, reqScope, admit)) |  |  |  | 			handler := metrics.InstrumentRouteFunc(action.Verb, resource, subresource, requestScope, restfulDeleteResource(gracefulDeleter, isGracefulDeleter, reqScope, admit)) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 			route := ws.DELETE(action.Path).To(handler). |  |  |  | 			route := ws.DELETE(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.")). | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -750,7 +749,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag | 
			
		
	
		
		
			
				
					
					|  |  |  | 			if hasSubresource { |  |  |  | 			if hasSubresource { | 
			
		
	
		
		
			
				
					
					|  |  |  | 				doc = "delete collection of " + subresource + " of a " + kind |  |  |  | 				doc = "delete collection of " + subresource + " of a " + kind | 
			
		
	
		
		
			
				
					
					|  |  |  | 			} |  |  |  | 			} | 
			
		
	
		
		
			
				
					
					|  |  |  | 			handler := metrics.InstrumentRouteFunc(action.Verb, resource, subresource, namespaceScope, restfulDeleteCollection(collectionDeleter, isCollectionDeleter, reqScope, admit)) |  |  |  | 			handler := metrics.InstrumentRouteFunc(action.Verb, resource, subresource, requestScope, restfulDeleteCollection(collectionDeleter, isCollectionDeleter, reqScope, admit)) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 			route := ws.DELETE(action.Path).To(handler). |  |  |  | 			route := ws.DELETE(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.")). | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -769,7 +768,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag | 
			
		
	
		
		
			
				
					
					|  |  |  | 			if hasSubresource { |  |  |  | 			if hasSubresource { | 
			
		
	
		
		
			
				
					
					|  |  |  | 				doc = "watch changes to " + subresource + " of an object of kind " + kind |  |  |  | 				doc = "watch changes to " + subresource + " of an object of kind " + kind | 
			
		
	
		
		
			
				
					
					|  |  |  | 			} |  |  |  | 			} | 
			
		
	
		
		
			
				
					
					|  |  |  | 			handler := metrics.InstrumentRouteFunc(action.Verb, resource, subresource, namespaceScope, restfulListResource(lister, watcher, reqScope, true, a.minRequestTimeout)) |  |  |  | 			handler := metrics.InstrumentRouteFunc(action.Verb, resource, subresource, requestScope, restfulListResource(lister, watcher, reqScope, true, a.minRequestTimeout)) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 			route := ws.GET(action.Path).To(handler). |  |  |  | 			route := ws.GET(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.")). | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -788,7 +787,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag | 
			
		
	
		
		
			
				
					
					|  |  |  | 			if hasSubresource { |  |  |  | 			if hasSubresource { | 
			
		
	
		
		
			
				
					
					|  |  |  | 				doc = "watch individual changes to a list of " + subresource + " of " + kind |  |  |  | 				doc = "watch individual changes to a list of " + subresource + " of " + kind | 
			
		
	
		
		
			
				
					
					|  |  |  | 			} |  |  |  | 			} | 
			
		
	
		
		
			
				
					
					|  |  |  | 			handler := metrics.InstrumentRouteFunc(action.Verb, resource, subresource, namespaceScope, restfulListResource(lister, watcher, reqScope, true, a.minRequestTimeout)) |  |  |  | 			handler := metrics.InstrumentRouteFunc(action.Verb, resource, subresource, requestScope, restfulListResource(lister, watcher, reqScope, true, a.minRequestTimeout)) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 			route := ws.GET(action.Path).To(handler). |  |  |  | 			route := ws.GET(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.")). | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -806,20 +805,20 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag | 
			
		
	
		
		
			
				
					
					|  |  |  | 		// TODO: DEPRECATED in v1.2. |  |  |  | 		// TODO: DEPRECATED in v1.2. | 
			
		
	
		
		
			
				
					
					|  |  |  | 		case "PROXY": // Proxy requests to a resource. |  |  |  | 		case "PROXY": // Proxy requests to a resource. | 
			
		
	
		
		
			
				
					
					|  |  |  | 			// Accept all methods as per http://issue.k8s.io/3996 |  |  |  | 			// Accept all methods as per http://issue.k8s.io/3996 | 
			
		
	
		
		
			
				
					
					|  |  |  | 			routes = append(routes, buildProxyRoute(ws, "GET", a.prefix, action.Path, kind, resource, subresource, namespaced, namespaceScope, hasSubresource, action.Params, proxyHandler, operationSuffix)) |  |  |  | 			routes = append(routes, buildProxyRoute(ws, "GET", a.prefix, action.Path, kind, resource, subresource, namespaced, requestScope, hasSubresource, action.Params, proxyHandler, operationSuffix)) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			routes = append(routes, buildProxyRoute(ws, "PUT", a.prefix, action.Path, kind, resource, subresource, namespaced, namespaceScope, hasSubresource, action.Params, proxyHandler, operationSuffix)) |  |  |  | 			routes = append(routes, buildProxyRoute(ws, "PUT", a.prefix, action.Path, kind, resource, subresource, namespaced, requestScope, hasSubresource, action.Params, proxyHandler, operationSuffix)) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			routes = append(routes, buildProxyRoute(ws, "POST", a.prefix, action.Path, kind, resource, subresource, namespaced, namespaceScope, hasSubresource, action.Params, proxyHandler, operationSuffix)) |  |  |  | 			routes = append(routes, buildProxyRoute(ws, "POST", a.prefix, action.Path, kind, resource, subresource, namespaced, requestScope, hasSubresource, action.Params, proxyHandler, operationSuffix)) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			routes = append(routes, buildProxyRoute(ws, "PATCH", a.prefix, action.Path, kind, resource, subresource, namespaced, namespaceScope, hasSubresource, action.Params, proxyHandler, operationSuffix)) |  |  |  | 			routes = append(routes, buildProxyRoute(ws, "PATCH", a.prefix, action.Path, kind, resource, subresource, namespaced, requestScope, hasSubresource, action.Params, proxyHandler, operationSuffix)) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			routes = append(routes, buildProxyRoute(ws, "DELETE", a.prefix, action.Path, kind, resource, subresource, namespaced, namespaceScope, hasSubresource, action.Params, proxyHandler, operationSuffix)) |  |  |  | 			routes = append(routes, buildProxyRoute(ws, "DELETE", a.prefix, action.Path, kind, resource, subresource, namespaced, requestScope, hasSubresource, action.Params, proxyHandler, operationSuffix)) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			routes = append(routes, buildProxyRoute(ws, "HEAD", a.prefix, action.Path, kind, resource, subresource, namespaced, namespaceScope, hasSubresource, action.Params, proxyHandler, operationSuffix)) |  |  |  | 			routes = append(routes, buildProxyRoute(ws, "HEAD", a.prefix, action.Path, kind, resource, subresource, namespaced, requestScope, hasSubresource, action.Params, proxyHandler, operationSuffix)) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			routes = append(routes, buildProxyRoute(ws, "OPTIONS", a.prefix, action.Path, kind, resource, subresource, namespaced, namespaceScope, hasSubresource, action.Params, proxyHandler, operationSuffix)) |  |  |  | 			routes = append(routes, buildProxyRoute(ws, "OPTIONS", a.prefix, action.Path, kind, resource, subresource, namespaced, requestScope, hasSubresource, action.Params, proxyHandler, operationSuffix)) | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 		case "CONNECT": |  |  |  | 		case "CONNECT": | 
			
		
	
		
		
			
				
					
					|  |  |  | 			for _, method := range connecter.ConnectMethods() { |  |  |  | 			for _, method := range connecter.ConnectMethods() { | 
			
		
	
		
		
			
				
					
					|  |  |  | 				doc := "connect " + method + " requests to " + kind |  |  |  | 				doc := "connect " + method + " requests to " + kind | 
			
		
	
		
		
			
				
					
					|  |  |  | 				if hasSubresource { |  |  |  | 				if hasSubresource { | 
			
		
	
		
		
			
				
					
					|  |  |  | 					doc = "connect " + method + " requests to " + subresource + " of " + kind |  |  |  | 					doc = "connect " + method + " requests to " + subresource + " of " + kind | 
			
		
	
		
		
			
				
					
					|  |  |  | 				} |  |  |  | 				} | 
			
		
	
		
		
			
				
					
					|  |  |  | 				handler := metrics.InstrumentRouteFunc(action.Verb, resource, subresource, namespaceScope, restfulConnectResource(connecter, reqScope, admit, path, hasSubresource)) |  |  |  | 				handler := metrics.InstrumentRouteFunc(action.Verb, resource, subresource, requestScope, restfulConnectResource(connecter, reqScope, admit, path, hasSubresource)) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 				route := ws.Method(method).Path(action.Path). |  |  |  | 				route := ws.Method(method).Path(action.Path). | 
			
		
	
		
		
			
				
					
					|  |  |  | 					To(handler). |  |  |  | 					To(handler). | 
			
		
	
		
		
			
				
					
					|  |  |  | 					Doc(doc). |  |  |  | 					Doc(doc). | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -892,7 +891,7 @@ func routeFunction(handler http.Handler) restful.RouteFunction { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | func buildProxyRoute(ws *restful.WebService, |  |  |  | func buildProxyRoute(ws *restful.WebService, | 
			
		
	
		
		
			
				
					
					|  |  |  | 	method, prefix, path, kind, resource, subresource, namespaced, namespaceScope string, |  |  |  | 	method, prefix, path, kind, resource, subresource, namespaced, requestScope string, | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 	hasSubresource bool, |  |  |  | 	hasSubresource bool, | 
			
		
	
		
		
			
				
					
					|  |  |  | 	params []*restful.Parameter, |  |  |  | 	params []*restful.Parameter, | 
			
		
	
		
		
			
				
					
					|  |  |  | 	proxyHandler http.Handler, |  |  |  | 	proxyHandler http.Handler, | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -901,7 +900,7 @@ func buildProxyRoute(ws *restful.WebService, | 
			
		
	
		
		
			
				
					
					|  |  |  | 	if hasSubresource { |  |  |  | 	if hasSubresource { | 
			
		
	
		
		
			
				
					
					|  |  |  | 		doc = "proxy " + method + " requests to " + subresource + " of " + kind |  |  |  | 		doc = "proxy " + method + " requests to " + subresource + " of " + kind | 
			
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 	handler := metrics.InstrumentRouteFunc("PROXY", resource, subresource, namespaceScope, routeFunction(proxyHandler)) |  |  |  | 	handler := metrics.InstrumentRouteFunc("PROXY", resource, subresource, requestScope, routeFunction(proxyHandler)) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 	proxyRoute := ws.Method(method).Path(path).To(handler). |  |  |  | 	proxyRoute := ws.Method(method).Path(path).To(handler). | 
			
		
	
		
		
			
				
					
					|  |  |  | 		Doc(doc). |  |  |  | 		Doc(doc). | 
			
		
	
		
		
			
				
					
					|  |  |  | 		Operation("proxy" + strings.Title(method) + namespaced + kind + strings.Title(subresource) + operationSuffix). |  |  |  | 		Operation("proxy" + strings.Title(method) + namespaced + kind + strings.Title(subresource) + operationSuffix). | 
			
		
	
	
		
		
			
				
					
					|  |  |   |