[ADD] api to list labels

This commit is contained in:
huangrh 2019-03-28 15:35:00 +08:00
parent 71af2cfe2f
commit 4ab66499b2
5 changed files with 53 additions and 1 deletions

View File

@ -142,7 +142,12 @@ type Gatewayer interface {
RuleConfig(w http.ResponseWriter, r *http.Request)
}
// ThirdPartyServicer is a interface for defining methods for third-party service.
// ThirdPartyServicer is an interface for defining methods for third-party service.
type ThirdPartyServicer interface {
Endpoints(w http.ResponseWriter, r *http.Request)
}
// Labeler is an interface for defining methods to get information of labels.
type Labeler interface {
Labels(w http.ResponseWriter, r *http.Request)
}

View File

@ -226,6 +226,7 @@ func (v2 *V2) clusterRouter() chi.Router {
func (v2 *V2) resourcesRouter() chi.Router {
r := chi.NewRouter()
r.Get("/labels", controller.GetManager().Labels)
r.Post("/tenants", controller.GetManager().TenantResources)
r.Post("/services", controller.GetManager().ServiceResources)
r.Get("/tenants/sum", controller.GetManager().SumTenants)

42
api/controller/labels.go Normal file
View File

@ -0,0 +1,42 @@
// RAINBOND, Application Management Platform
// Copyright (C) 2014-2017 Goodrain Co., Ltd.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version. For any non-GPL usage of Rainbond,
// one or multiple Commercial Licenses authorized by Goodrain Co., Ltd.
// must be obtained first.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
package controller
import (
"github.com/goodrain/rainbond/cmd/api/option"
httputil "github.com/goodrain/rainbond/util/http"
"net/http"
)
// LabelController implements Labeler.
type LabelController struct {
optconfig *option.Config
}
// Labels - get -> list labels
func (l *LabelController) Labels(w http.ResponseWriter, r *http.Request) {
switch r.Method {
case "GET":
l.listLabels(w, r)
}
}
func (l *LabelController) listLabels(w http.ResponseWriter, r *http.Request) {
httputil.ReturnSuccess(r, w, l.optconfig.EnableFeature)
}

View File

@ -48,6 +48,7 @@ type V2Manager interface {
api.AppInterface
api.Gatewayer
api.ThirdPartyServicer
api.Labeler
}
var defaultV2Manager V2Manager
@ -79,5 +80,7 @@ func NewManager(conf option.Config, statusCli *client.AppRuntimeSyncClient) (*V2
v2r.GatewayStruct.MQClient = mqClient
v2r.GatewayStruct.cfg = &conf
v2r.LabelController.optconfig = &conf
return &v2r, nil
}

View File

@ -52,6 +52,7 @@ type V2Routes struct {
AppStruct
GatewayStruct
ThirdPartyServiceController
LabelController
}
//Show test