From 89d20d0ab13c069d4a502ca7f7ca0bcfc5ceeaf8 Mon Sep 17 00:00:00 2001 From: nikhiljindal Date: Wed, 3 Feb 2016 22:39:18 -0800 Subject: [PATCH] Moving installing swagger spec to generic api server --- apiserver/apiserver.go | 9 +++++---- apiserver/apiserver_test.go | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 4 deletions(-) diff --git a/apiserver/apiserver.go b/apiserver/apiserver.go index e515f349..f83c4c9f 100644 --- a/apiserver/apiserver.go +++ b/apiserver/apiserver.go @@ -48,10 +48,11 @@ func newStorageDestinations(groupName string, groupMeta *apimachinery.GroupMeta) func Run() error { config := genericapiserver.Config{ - EnableIndex: true, - APIPrefix: "/api", - APIGroupPrefix: "/apis", - Serializer: api.Codecs, + EnableIndex: true, + EnableSwaggerSupport: true, + APIPrefix: "/api", + APIGroupPrefix: "/apis", + Serializer: api.Codecs, } s, err := genericapiserver.New(&config) if err != nil { diff --git a/apiserver/apiserver_test.go b/apiserver/apiserver_test.go index 6f74dedd..4d9971dd 100644 --- a/apiserver/apiserver_test.go +++ b/apiserver/apiserver_test.go @@ -34,6 +34,11 @@ var serverIP = "http://localhost:8080" var groupVersion = v1.SchemeGroupVersion +var groupVersionForDiscovery = unversioned.GroupVersionForDiscovery{ + GroupVersion: groupVersion.String(), + Version: groupVersion.Version, +} + func TestRun(t *testing.T) { go func() { if err := Run(); err != nil { @@ -43,6 +48,8 @@ func TestRun(t *testing.T) { if err := waitForApiserverUp(); err != nil { t.Fatalf("%v", err) } + testSwaggerSpec(t) + testAPIGroupList(t) testAPIGroup(t) testAPIResourceList(t) } @@ -63,6 +70,9 @@ func readResponse(serverURL string) ([]byte, error) { return nil, fmt.Errorf("Error in fetching %s: %v", serverURL, err) } defer response.Body.Close() + if response.StatusCode != http.StatusOK { + return nil, fmt.Errorf("unexpected status: %d for URL: %s, expected status: %d", response.StatusCode, serverURL, http.StatusOK) + } contents, err := ioutil.ReadAll(response.Body) if err != nil { return nil, fmt.Errorf("Error reading response from %s: %v", serverURL, err) @@ -70,6 +80,32 @@ func readResponse(serverURL string) ([]byte, error) { return contents, nil } +func testSwaggerSpec(t *testing.T) { + serverURL := serverIP + "/swaggerapi" + _, err := readResponse(serverURL) + if err != nil { + t.Fatalf("%v", err) + } +} + +func testAPIGroupList(t *testing.T) { + serverURL := serverIP + "/apis" + contents, err := readResponse(serverURL) + if err != nil { + t.Fatalf("%v", err) + } + var apiGroupList unversioned.APIGroupList + err = json.Unmarshal(contents, &apiGroupList) + if err != nil { + t.Fatalf("Error in unmarshalling response from server %s: %v", serverURL, err) + } + assert.Equal(t, 1, len(apiGroupList.Groups)) + assert.Equal(t, apiGroupList.Groups[0].Name, groupVersion.Group) + assert.Equal(t, 1, len(apiGroupList.Groups[0].Versions)) + assert.Equal(t, apiGroupList.Groups[0].Versions[0], groupVersionForDiscovery) + assert.Equal(t, apiGroupList.Groups[0].PreferredVersion, groupVersionForDiscovery) +} + func testAPIGroup(t *testing.T) { serverURL := serverIP + "/apis/testgroup" contents, err := readResponse(serverURL)