diff --git a/pkg/apiserver/apiserver.go b/pkg/apiserver/apiserver.go index b49fc907f7b..2aa82881c43 100644 --- a/pkg/apiserver/apiserver.go +++ b/pkg/apiserver/apiserver.go @@ -210,13 +210,13 @@ func logStackOnRecover(s runtime.NegotiatedSerializer, panicReason interface{}, errorNegotiated(apierrors.NewGenericServerResponse(http.StatusInternalServerError, "", api.Resource(""), "", "", 0, false), s, unversioned.GroupVersion{}, w, &http.Request{Header: headers}) } -func InstallServiceErrorHandler(s runtime.NegotiatedSerializer, container *restful.Container, requestResolver *RequestInfoResolver, apiVersions []string) { +func InstallServiceErrorHandler(s runtime.NegotiatedSerializer, container *restful.Container) { container.ServiceErrorHandler(func(serviceErr restful.ServiceError, request *restful.Request, response *restful.Response) { - serviceErrorHandler(s, requestResolver, apiVersions, serviceErr, request, response) + serviceErrorHandler(s, serviceErr, request, response) }) } -func serviceErrorHandler(s runtime.NegotiatedSerializer, requestResolver *RequestInfoResolver, apiVersions []string, serviceErr restful.ServiceError, request *restful.Request, response *restful.Response) { +func serviceErrorHandler(s runtime.NegotiatedSerializer, serviceErr restful.ServiceError, request *restful.Request, response *restful.Response) { errorNegotiated( apierrors.NewGenericServerResponse(serviceErr.Code, "", api.Resource(""), "", serviceErr.Message, 0, false), s, diff --git a/pkg/genericapiserver/config.go b/pkg/genericapiserver/config.go index aabcf1f0b63..3c4113f20b0 100644 --- a/pkg/genericapiserver/config.go +++ b/pkg/genericapiserver/config.go @@ -346,6 +346,8 @@ func (c Config) New() (*GenericAPIServer, error) { // makes it into all of our supported go versions (only in v1.7.1 now). mime.AddExtensionType(".svg", "image/svg+xml") + apiserver.InstallServiceErrorHandler(s.Serializer, s.HandlerContainer) + s.installAPI(&c) s.Handler, s.InsecureHandler = s.buildHandlerChains(&c, http.Handler(s.Mux.BaseMux().(*http.ServeMux))) diff --git a/pkg/genericapiserver/genericapiserver.go b/pkg/genericapiserver/genericapiserver.go index 97be64da9ab..f7432b41e9d 100644 --- a/pkg/genericapiserver/genericapiserver.go +++ b/pkg/genericapiserver/genericapiserver.go @@ -398,7 +398,6 @@ func (s *GenericAPIServer) InstallAPIGroup(apiGroupInfo *APIGroupInfo) error { s.AddAPIGroupForDiscovery(apiGroup) s.HandlerContainer.Add(apiserver.NewGroupWebService(s.Serializer, apiPrefix+"/"+apiGroup.Name, apiGroup)) } - apiserver.InstallServiceErrorHandler(s.Serializer, s.HandlerContainer, s.NewRequestInfoResolver(), apiVersions) return nil } diff --git a/pkg/master/master.go b/pkg/master/master.go index 7ff46b6affe..f68bdfd3434 100644 --- a/pkg/master/master.go +++ b/pkg/master/master.go @@ -761,7 +761,6 @@ func (m *Master) InstallThirdPartyResource(rsrc *extensions.ThirdPartyResource) m.HandlerContainer.Add(apiserver.NewGroupWebService(api.Codecs, path, apiGroup)) m.addThirdPartyResourceStorage(path, plural.Resource, thirdparty.Storage[plural.Resource].(*thirdpartyresourcedataetcd.REST), apiGroup) - apiserver.InstallServiceErrorHandler(api.Codecs, m.HandlerContainer, m.NewRequestInfoResolver(), []string{thirdparty.GroupVersion.String()}) return nil }