From 291d35cf937a1d6b22aebe649388bc20178cf25c Mon Sep 17 00:00:00 2001 From: johnniang Date: Thu, 24 Feb 2022 17:31:55 +0800 Subject: [PATCH] Refactor DevOps API proxy Signed-off-by: johnniang --- pkg/kapis/devops/register.go | 13 ++++++++----- pkg/kapis/devops/register_test.go | 7 ++++--- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/pkg/kapis/devops/register.go b/pkg/kapis/devops/register.go index 95ad1fe05..e7adf48ed 100644 --- a/pkg/kapis/devops/register.go +++ b/pkg/kapis/devops/register.go @@ -18,18 +18,21 @@ package devops import ( "github.com/emicklei/go-restful" + "k8s.io/apimachinery/pkg/runtime/schema" "kubesphere.io/kubesphere/pkg/kapis/generic" ) -const groupName = "devops.kubesphere.io" - -var versions = []string{"v1alpha1", "v1alpha2", "v1alpha3"} +var devopsGroupVersions = []schema.GroupVersion{ + {Group: "devops.kubesphere.io", Version: "v1alpha2"}, + {Group: "devops.kubesphere.io", Version: "v1alpha3"}, + // TODO Add other group versions here, like cd.devops.kubesphere.io +} // AddToContainer registers DevOps proxies to the container. func AddToContainer(container *restful.Container, endpoint string) error { - for _, version := range versions { - proxy, err := generic.NewGenericProxy(endpoint, groupName, version) + for _, groupVersion := range devopsGroupVersions { + proxy, err := generic.NewGenericProxy(endpoint, groupVersion.Group, groupVersion.Version) if err != nil { return err } diff --git a/pkg/kapis/devops/register_test.go b/pkg/kapis/devops/register_test.go index 253864fbe..d289d7869 100644 --- a/pkg/kapis/devops/register_test.go +++ b/pkg/kapis/devops/register_test.go @@ -27,6 +27,7 @@ import ( func TestAddToContainer(t *testing.T) { fakeResponse := "fake DevOps APIServer response" + notFoundResponse := "404 page not found\n" type args struct { target string mockAPIPattern string @@ -44,7 +45,7 @@ func TestAddToContainer(t *testing.T) { mockAPIPattern: "/v1alpha1/resources", mockResponse: fakeResponse, }, - wantResponse: fakeResponse, + wantResponse: notFoundResponse, }, { name: "Should proxy v1alpha2 API properly", args: args{ @@ -67,14 +68,14 @@ func TestAddToContainer(t *testing.T) { target: "/kapis/devops.kubesphere.io/v1alpha3/resources", mockAPIPattern: "/v1alpha4/resources", }, - wantResponse: "404 page not found\n", + wantResponse: notFoundResponse, }, { name: "Should not proxy v1alpha123 API properly event if pattern matched", args: args{ target: "/kapis/devops.kubesphere.io/v1alpha123/resources", mockAPIPattern: "/v1alpha123/resources", }, - wantResponse: "404 page not found\n", + wantResponse: notFoundResponse, }, } for _, tt := range tests {