move install of version handler to genericapiserver

pull/6/head
jianhuiz 2016-04-26 18:51:37 -07:00
parent 7e430f543b
commit fdfe42ea44
6 changed files with 22 additions and 25 deletions

View File

@ -1,14 +1,14 @@
{
"swaggerVersion": "1.2",
"apis": [
{
"path": "/apis",
"description": "get available API versions"
},
{
"path": "/version",
"description": "git code version from which this is built"
},
{
"path": "/apis",
"description": "get available API versions"
},
{
"path": "/api/v1",
"description": "API at /api/v1"

View File

@ -92,6 +92,7 @@ func TestRun(t *testing.T) {
t.Fatalf("%v", err)
}
testSwaggerSpec(t)
testSupport(t)
testAPIGroupList(t)
testAPIGroup(t)
testAPIResourceList(t)
@ -131,6 +132,14 @@ func testSwaggerSpec(t *testing.T) {
}
}
func testSupport(t *testing.T) {
serverURL := serverIP + "/version"
_, err := readResponse(serverURL)
if err != nil {
t.Fatalf("%v", err)
}
}
func findGroup(groups []unversioned.APIGroup, groupName string) *unversioned.APIGroup {
for _, group := range groups {
if group.Name == groupName {

View File

@ -36,7 +36,6 @@ import (
"k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/apiserver/metrics"
"k8s.io/kubernetes/pkg/healthz"
"k8s.io/kubernetes/pkg/runtime"
utilerrors "k8s.io/kubernetes/pkg/util/errors"
"k8s.io/kubernetes/pkg/util/flushwriter"
@ -163,10 +162,8 @@ func (g *APIGroupVersion) newInstaller() *APIInstaller {
}
// TODO: document all handlers
// InstallSupport registers the APIServer support functions
func InstallSupport(mux Mux, checks ...healthz.HealthzChecker) []*restful.WebService {
// TODO: convert healthz and metrics to restful and remove container arg
healthz.InstallHandler(mux, checks...)
// InstallVersionHandler registers the APIServer's `/version` handler
func InstallVersionHandler(mux Mux, container *restful.Container) {
// Set up a service to return the git code version.
versionWS := new(restful.WebService)
@ -179,7 +176,7 @@ func InstallSupport(mux Mux, checks ...healthz.HealthzChecker) []*restful.WebSer
Produces(restful.MIME_JSON).
Consumes(restful.MIME_JSON))
return []*restful.WebService{versionWS}
container.Add(versionWS)
}
// InstallLogsSupport registers the APIServer log support function into a mux.

View File

@ -317,10 +317,8 @@ func handleInternal(storage map[string]rest.Storage, admissionControl admission.
}
}
webservices := InstallSupport(mux)
for i := range webservices {
container.Add(webservices[i])
}
InstallVersionHandler(mux, container)
return &defaultAPIServer{mux, container}
}
@ -3263,10 +3261,7 @@ func TestXGSubresource(t *testing.T) {
panic(fmt.Sprintf("unable to install container %s: %v", group.GroupVersion, err))
}
webservices := InstallSupport(mux)
for i := range webservices {
container.Add(webservices[i])
}
InstallVersionHandler(mux, container)
handler := defaultAPIServer{mux, container}
server := httptest.NewServer(handler)

View File

@ -454,6 +454,8 @@ func (s *GenericAPIServer) init(c *Config) {
s.mux.HandleFunc("/debug/pprof/symbol", pprof.Symbol)
}
apiserver.InstallVersionHandler(s.MuxHelper, s.HandlerContainer)
handler := http.Handler(s.mux.(*http.ServeMux))
// TODO: handle CORS and auth using go-restful

View File

@ -226,9 +226,7 @@ func (m *Master) InstallAPIs(c *Config) {
Help: "The time since the last successful synchronization of the SSH tunnels for proxy requests.",
}, func() float64 { return float64(m.tunneler.SecondsSinceSync()) })
}
// TODO(nikhiljindal): Refactor generic parts of support services (like /versions) to genericapiserver.
webservices := apiserver.InstallSupport(m.MuxHelper, healthzChecks...)
healthz.InstallHandler(m.MuxHelper, healthzChecks...)
if c.EnableProfiling {
m.MuxHelper.HandleFunc("/metrics", MetricsWithReset)
@ -236,10 +234,6 @@ func (m *Master) InstallAPIs(c *Config) {
m.MuxHelper.HandleFunc("/metrics", defaultMetricsHandler)
}
for i := range webservices {
m.HandlerContainer.Add(webservices[i])
}
// allGroups records all supported groups at /apis
allGroups := []unversioned.APIGroup{}