parent
d19332e854
commit
e3a56c9de9
1
go.mod
1
go.mod
|
|
@ -60,6 +60,7 @@ require (
|
||||||
github.com/swaggo/files v0.0.0-20210815190702-a29dd2bc99b2
|
github.com/swaggo/files v0.0.0-20210815190702-a29dd2bc99b2
|
||||||
github.com/swaggo/gin-swagger v1.3.1
|
github.com/swaggo/gin-swagger v1.3.1
|
||||||
github.com/swaggo/swag v1.7.1
|
github.com/swaggo/swag v1.7.1
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.20.0
|
||||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0
|
||||||
go.opentelemetry.io/otel v0.20.0
|
go.opentelemetry.io/otel v0.20.0
|
||||||
go.opentelemetry.io/otel/exporters/trace/jaeger v0.20.0
|
go.opentelemetry.io/otel/exporters/trace/jaeger v0.20.0
|
||||||
|
|
|
||||||
5
go.sum
5
go.sum
|
|
@ -198,6 +198,7 @@ github.com/gin-gonic/gin v1.3.0/go.mod h1:7cKuhb5qV2ggCFctp2fJQ+ErvciLZrIeoOSOm6
|
||||||
github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do=
|
github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do=
|
||||||
github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M=
|
github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M=
|
||||||
github.com/gin-gonic/gin v1.7.0/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY=
|
github.com/gin-gonic/gin v1.7.0/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY=
|
||||||
|
github.com/gin-gonic/gin v1.7.1/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY=
|
||||||
github.com/gin-gonic/gin v1.7.2 h1:Tg03T9yM2xa8j6I3Z3oqLaQRSmKvxPd6g/2HJ6zICFA=
|
github.com/gin-gonic/gin v1.7.2 h1:Tg03T9yM2xa8j6I3Z3oqLaQRSmKvxPd6g/2HJ6zICFA=
|
||||||
github.com/gin-gonic/gin v1.7.2/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY=
|
github.com/gin-gonic/gin v1.7.2/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY=
|
||||||
github.com/go-echarts/go-echarts/v2 v2.2.3 h1:H8oPdUpzuiV2K8S4xYZa1JRNjP3U0h7HVqvhPrmCk1A=
|
github.com/go-echarts/go-echarts/v2 v2.2.3 h1:H8oPdUpzuiV2K8S4xYZa1JRNjP3U0h7HVqvhPrmCk1A=
|
||||||
|
|
@ -842,8 +843,12 @@ go.opencensus.io v0.22.6 h1:BdkrbWrzDlV9dnbzoP7sfN+dHheJ4J9JOaYxcUDL+ok=
|
||||||
go.opencensus.io v0.22.6/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
|
go.opencensus.io v0.22.6/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
|
||||||
go.opentelemetry.io/contrib v0.20.0 h1:ubFQUn0VCZ0gPwIoJfBJVpeBlyRMxu8Mm/huKWYd9p0=
|
go.opentelemetry.io/contrib v0.20.0 h1:ubFQUn0VCZ0gPwIoJfBJVpeBlyRMxu8Mm/huKWYd9p0=
|
||||||
go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc=
|
go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc=
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.20.0 h1:R6rfVN+8Eqzd+E5L/i8rWpgZeWen/m6y4hSgn3avdf8=
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.20.0/go.mod h1:npLhGl0PxPw3jya83ffJ/CfZ8BPwyKUHHZsbgTdpvCs=
|
||||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0 h1:sO4WKdPAudZGKPcpZT4MJn6JaDmpyLrMPDGGyA1SttE=
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0 h1:sO4WKdPAudZGKPcpZT4MJn6JaDmpyLrMPDGGyA1SttE=
|
||||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E=
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E=
|
||||||
|
go.opentelemetry.io/contrib/propagators v0.20.0 h1:IrLQng5Z7AfzkS4sEsYaj2ejkO4FCkgKdAr1aYKOfNc=
|
||||||
|
go.opentelemetry.io/contrib/propagators v0.20.0/go.mod h1:yLmt93MeSiARUwrK57bOZ4FBruRN4taLiW1lcGfnOes=
|
||||||
go.opentelemetry.io/otel v0.11.0/go.mod h1:G8UCk+KooF2HLkgo8RHX9epABH/aRGYET7gQOqBVdB0=
|
go.opentelemetry.io/otel v0.11.0/go.mod h1:G8UCk+KooF2HLkgo8RHX9epABH/aRGYET7gQOqBVdB0=
|
||||||
go.opentelemetry.io/otel v0.15.0/go.mod h1:e4GKElweB8W2gWUqbghw0B8t5MCTccc9212eNHnOHwA=
|
go.opentelemetry.io/otel v0.15.0/go.mod h1:e4GKElweB8W2gWUqbghw0B8t5MCTccc9212eNHnOHwA=
|
||||||
go.opentelemetry.io/otel v0.17.0/go.mod h1:Oqtdxmf7UtEvL037ohlgnaYa1h7GtMh0NcSd9eqkC9s=
|
go.opentelemetry.io/otel v0.17.0/go.mod h1:Oqtdxmf7UtEvL037ohlgnaYa1h7GtMh0NcSd9eqkC9s=
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2020 The Dragonfly Authors
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package config
|
||||||
|
|
||||||
|
import "go.opentelemetry.io/otel/attribute"
|
||||||
|
|
||||||
|
const (
|
||||||
|
AttributeID = attribute.Key("d7y.manager.id")
|
||||||
|
)
|
||||||
|
|
@ -41,7 +41,7 @@ func (h *Handlers) CreateCDN(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
cdn, err := h.Service.CreateCDN(json)
|
cdn, err := h.service.CreateCDN(json)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -68,7 +68,7 @@ func (h *Handlers) DestroyCDN(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := h.Service.DestroyCDN(params.ID); err != nil {
|
if err := h.service.DestroyCDN(params.ID); err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -101,7 +101,7 @@ func (h *Handlers) UpdateCDN(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
cdn, err := h.Service.UpdateCDN(params.ID, json)
|
cdn, err := h.service.UpdateCDN(params.ID, json)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -128,7 +128,7 @@ func (h *Handlers) GetCDN(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
cdn, err := h.Service.GetCDN(params.ID)
|
cdn, err := h.service.GetCDN(params.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -157,13 +157,13 @@ func (h *Handlers) GetCDNs(ctx *gin.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
h.setPaginationDefault(&query.Page, &query.PerPage)
|
h.setPaginationDefault(&query.Page, &query.PerPage)
|
||||||
cdns, err := h.Service.GetCDNs(query)
|
cdns, err := h.service.GetCDNs(query)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
totalCount, err := h.Service.CDNTotalCount(query)
|
totalCount, err := h.service.CDNTotalCount(query)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ func (h *Handlers) CreateCDNCluster(ctx *gin.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if json.SecurityGroupDomain != "" {
|
if json.SecurityGroupDomain != "" {
|
||||||
cdn, err := h.Service.CreateCDNClusterWithSecurityGroupDomain(json)
|
cdn, err := h.service.CreateCDNClusterWithSecurityGroupDomain(json)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -52,7 +52,7 @@ func (h *Handlers) CreateCDNCluster(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
cdnCluster, err := h.Service.CreateCDNCluster(json)
|
cdnCluster, err := h.service.CreateCDNCluster(json)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -79,7 +79,7 @@ func (h *Handlers) DestroyCDNCluster(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := h.Service.DestroyCDNCluster(params.ID); err != nil {
|
if err := h.service.DestroyCDNCluster(params.ID); err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -113,7 +113,7 @@ func (h *Handlers) UpdateCDNCluster(ctx *gin.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if json.SecurityGroupDomain != "" {
|
if json.SecurityGroupDomain != "" {
|
||||||
cdn, err := h.Service.UpdateCDNClusterWithSecurityGroupDomain(params.ID, json)
|
cdn, err := h.service.UpdateCDNClusterWithSecurityGroupDomain(params.ID, json)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -123,7 +123,7 @@ func (h *Handlers) UpdateCDNCluster(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
cdnCluster, err := h.Service.UpdateCDNCluster(params.ID, json)
|
cdnCluster, err := h.service.UpdateCDNCluster(params.ID, json)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -150,7 +150,7 @@ func (h *Handlers) GetCDNCluster(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
cdnCluster, err := h.Service.GetCDNCluster(params.ID)
|
cdnCluster, err := h.service.GetCDNCluster(params.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -179,13 +179,13 @@ func (h *Handlers) GetCDNClusters(ctx *gin.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
h.setPaginationDefault(&query.Page, &query.PerPage)
|
h.setPaginationDefault(&query.Page, &query.PerPage)
|
||||||
cdns, err := h.Service.GetCDNClusters(query)
|
cdns, err := h.service.GetCDNClusters(query)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
totalCount, err := h.Service.CDNClusterTotalCount(query)
|
totalCount, err := h.service.CDNClusterTotalCount(query)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -214,7 +214,7 @@ func (h *Handlers) AddCDNToCDNCluster(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := h.Service.AddCDNToCDNCluster(params.ID, params.CDNID); err != nil {
|
if err := h.service.AddCDNToCDNCluster(params.ID, params.CDNID); err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -241,7 +241,7 @@ func (h *Handlers) AddSchedulerClusterToCDNCluster(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := h.Service.AddSchedulerClusterToCDNCluster(params.ID, params.SchedulerClusterID); err != nil {
|
if err := h.service.AddSchedulerClusterToCDNCluster(params.ID, params.SchedulerClusterID); err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,11 +26,13 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
type Handlers struct {
|
type Handlers struct {
|
||||||
Service service.REST
|
service service.REST
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(service service.REST) *Handlers {
|
func New(service service.REST) *Handlers {
|
||||||
return &Handlers{Service: service}
|
return &Handlers{
|
||||||
|
service: service,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *Handlers) setPaginationDefault(page, perPage *int) {
|
func (h *Handlers) setPaginationDefault(page, perPage *int) {
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ func (h *Handlers) CreateOauth(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
oauth, err := h.Service.CreateOauth(json)
|
oauth, err := h.service.CreateOauth(json)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -68,7 +68,7 @@ func (h *Handlers) DestroyOauth(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := h.Service.DestroyOauth(params.ID); err != nil {
|
if err := h.service.DestroyOauth(params.ID); err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -101,7 +101,7 @@ func (h *Handlers) UpdateOauth(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
oauth, err := h.Service.UpdateOauth(params.ID, json)
|
oauth, err := h.service.UpdateOauth(params.ID, json)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -128,7 +128,7 @@ func (h *Handlers) GetOauth(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
oauth, err := h.Service.GetOauth(params.ID)
|
oauth, err := h.service.GetOauth(params.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -157,13 +157,13 @@ func (h *Handlers) GetOauths(ctx *gin.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
h.setPaginationDefault(&query.Page, &query.PerPage)
|
h.setPaginationDefault(&query.Page, &query.PerPage)
|
||||||
oauth, err := h.Service.GetOauths(query)
|
oauth, err := h.service.GetOauths(query)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
totalCount, err := h.Service.OauthTotalCount(query)
|
totalCount, err := h.service.OauthTotalCount(query)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,6 @@ import (
|
||||||
// @Router /permissions [get]
|
// @Router /permissions [get]
|
||||||
func (h *Handlers) GetPermissions(g *gin.Engine) func(ctx *gin.Context) {
|
func (h *Handlers) GetPermissions(g *gin.Engine) func(ctx *gin.Context) {
|
||||||
return func(ctx *gin.Context) {
|
return func(ctx *gin.Context) {
|
||||||
ctx.JSON(http.StatusOK, h.Service.GetPermissions(g))
|
ctx.JSON(http.StatusOK, h.service.GetPermissions(g))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ func (h *Handlers) CreatePreheat(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
preheat, err := h.Service.CreatePreheat(json)
|
preheat, err := h.service.CreatePreheat(json)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -68,7 +68,7 @@ func (h *Handlers) GetPreheat(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
preheat, err := h.Service.GetPreheat(params.ID)
|
preheat, err := h.service.GetPreheat(params.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ func (h *Handlers) CreateRole(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := h.Service.CreateRole(json); err != nil {
|
if err := h.service.CreateRole(json); err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -65,7 +65,7 @@ func (h *Handlers) DestroyRole(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if ok, err := h.Service.DestroyRole(params.Role); err != nil {
|
if ok, err := h.service.DestroyRole(params.Role); err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
} else if !ok {
|
} else if !ok {
|
||||||
|
|
@ -93,7 +93,7 @@ func (h *Handlers) GetRole(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.JSON(http.StatusOK, h.Service.GetRole(params.Role))
|
ctx.JSON(http.StatusOK, h.service.GetRole(params.Role))
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Summary Get Roles
|
// @Summary Get Roles
|
||||||
|
|
@ -106,7 +106,7 @@ func (h *Handlers) GetRole(ctx *gin.Context) {
|
||||||
// @Failure 500
|
// @Failure 500
|
||||||
// @Router /roles [get]
|
// @Router /roles [get]
|
||||||
func (h *Handlers) GetRoles(ctx *gin.Context) {
|
func (h *Handlers) GetRoles(ctx *gin.Context) {
|
||||||
roles := h.Service.GetRoles()
|
roles := h.service.GetRoles()
|
||||||
ctx.JSON(http.StatusOK, roles)
|
ctx.JSON(http.StatusOK, roles)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -134,7 +134,7 @@ func (h *Handlers) AddPermissionForRole(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if ok, err := h.Service.AddPermissionForRole(params.Role, json); err != nil {
|
if ok, err := h.service.AddPermissionForRole(params.Role, json); err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
} else if !ok {
|
} else if !ok {
|
||||||
|
|
@ -169,7 +169,7 @@ func (h *Handlers) DeletePermissionForRole(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if ok, err := h.Service.DeletePermissionForRole(params.Role, json); err != nil {
|
if ok, err := h.service.DeletePermissionForRole(params.Role, json); err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
} else if !ok {
|
} else if !ok {
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ func (h *Handlers) CreateScheduler(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
scheduler, err := h.Service.CreateScheduler(json)
|
scheduler, err := h.service.CreateScheduler(json)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -68,7 +68,7 @@ func (h *Handlers) DestroyScheduler(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := h.Service.DestroyScheduler(params.ID); err != nil {
|
if err := h.service.DestroyScheduler(params.ID); err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -101,7 +101,7 @@ func (h *Handlers) UpdateScheduler(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
scheduler, err := h.Service.UpdateScheduler(params.ID, json)
|
scheduler, err := h.service.UpdateScheduler(params.ID, json)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -128,7 +128,7 @@ func (h *Handlers) GetScheduler(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
scheduler, err := h.Service.GetScheduler(params.ID)
|
scheduler, err := h.service.GetScheduler(params.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -157,13 +157,13 @@ func (h *Handlers) GetSchedulers(ctx *gin.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
h.setPaginationDefault(&query.Page, &query.PerPage)
|
h.setPaginationDefault(&query.Page, &query.PerPage)
|
||||||
schedulers, err := h.Service.GetSchedulers(query)
|
schedulers, err := h.service.GetSchedulers(query)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
totalCount, err := h.Service.SchedulerTotalCount(query)
|
totalCount, err := h.service.SchedulerTotalCount(query)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ func (h *Handlers) CreateSchedulerCluster(ctx *gin.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if json.SecurityGroupDomain != "" {
|
if json.SecurityGroupDomain != "" {
|
||||||
scheduler, err := h.Service.CreateSchedulerClusterWithSecurityGroupDomain(json)
|
scheduler, err := h.service.CreateSchedulerClusterWithSecurityGroupDomain(json)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -52,7 +52,7 @@ func (h *Handlers) CreateSchedulerCluster(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
schedulerCluster, err := h.Service.CreateSchedulerCluster(json)
|
schedulerCluster, err := h.service.CreateSchedulerCluster(json)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -79,7 +79,7 @@ func (h *Handlers) DestroySchedulerCluster(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := h.Service.DestroySchedulerCluster(params.ID); err != nil {
|
if err := h.service.DestroySchedulerCluster(params.ID); err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -113,7 +113,7 @@ func (h *Handlers) UpdateSchedulerCluster(ctx *gin.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if json.SecurityGroupDomain != "" {
|
if json.SecurityGroupDomain != "" {
|
||||||
scheduler, err := h.Service.UpdateSchedulerClusterWithSecurityGroupDomain(params.ID, json)
|
scheduler, err := h.service.UpdateSchedulerClusterWithSecurityGroupDomain(params.ID, json)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -123,7 +123,7 @@ func (h *Handlers) UpdateSchedulerCluster(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
schedulerCluster, err := h.Service.UpdateSchedulerCluster(params.ID, json)
|
schedulerCluster, err := h.service.UpdateSchedulerCluster(params.ID, json)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -150,7 +150,7 @@ func (h *Handlers) GetSchedulerCluster(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
schedulerCluster, err := h.Service.GetSchedulerCluster(params.ID)
|
schedulerCluster, err := h.service.GetSchedulerCluster(params.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -179,13 +179,13 @@ func (h *Handlers) GetSchedulerClusters(ctx *gin.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
h.setPaginationDefault(&query.Page, &query.PerPage)
|
h.setPaginationDefault(&query.Page, &query.PerPage)
|
||||||
schedulerClusters, err := h.Service.GetSchedulerClusters(query)
|
schedulerClusters, err := h.service.GetSchedulerClusters(query)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
totalCount, err := h.Service.SchedulerClusterTotalCount(query)
|
totalCount, err := h.service.SchedulerClusterTotalCount(query)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -214,7 +214,7 @@ func (h *Handlers) AddSchedulerToSchedulerCluster(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
err := h.Service.AddSchedulerToSchedulerCluster(params.ID, params.SchedulerID)
|
err := h.service.AddSchedulerToSchedulerCluster(params.ID, params.SchedulerID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ func (h *Handlers) CreateSecurityGroup(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
securityGroup, err := h.Service.CreateSecurityGroup(json)
|
securityGroup, err := h.service.CreateSecurityGroup(json)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -68,7 +68,7 @@ func (h *Handlers) DestroySecurityGroup(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := h.Service.DestroySecurityGroup(params.ID); err != nil {
|
if err := h.service.DestroySecurityGroup(params.ID); err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -101,7 +101,7 @@ func (h *Handlers) UpdateSecurityGroup(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
securityGroup, err := h.Service.UpdateSecurityGroup(params.ID, json)
|
securityGroup, err := h.service.UpdateSecurityGroup(params.ID, json)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -128,7 +128,7 @@ func (h *Handlers) GetSecurityGroup(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
securityGroup, err := h.Service.GetSecurityGroup(params.ID)
|
securityGroup, err := h.service.GetSecurityGroup(params.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -157,13 +157,13 @@ func (h *Handlers) GetSecurityGroups(ctx *gin.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
h.setPaginationDefault(&query.Page, &query.PerPage)
|
h.setPaginationDefault(&query.Page, &query.PerPage)
|
||||||
securityGroups, err := h.Service.GetSecurityGroups(query)
|
securityGroups, err := h.service.GetSecurityGroups(query)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
totalCount, err := h.Service.SecurityGroupTotalCount(query)
|
totalCount, err := h.service.SecurityGroupTotalCount(query)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -192,7 +192,7 @@ func (h *Handlers) AddSchedulerClusterToSecurityGroup(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
err := h.Service.AddSchedulerClusterToSecurityGroup(params.ID, params.SchedulerClusterID)
|
err := h.service.AddSchedulerClusterToSecurityGroup(params.ID, params.SchedulerClusterID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -220,7 +220,7 @@ func (h *Handlers) AddCDNClusterToSecurityGroup(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
err := h.Service.AddCDNClusterToSecurityGroup(params.ID, params.CDNClusterID)
|
err := h.service.AddCDNClusterToSecurityGroup(params.ID, params.CDNClusterID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ func (h *Handlers) GetUser(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
user, err := h.Service.GetUser(params.ID)
|
user, err := h.service.GetUser(params.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -68,7 +68,7 @@ func (h *Handlers) SignUp(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
user, err := h.Service.SignUp(json)
|
user, err := h.service.SignUp(json)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -100,7 +100,7 @@ func (h *Handlers) ResetPassword(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := h.Service.ResetPassword(params.ID, json); err != nil {
|
if err := h.service.ResetPassword(params.ID, json); err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -126,7 +126,7 @@ func (h *Handlers) OauthSignin(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
authURL, err := h.Service.OauthSignin(params.Name)
|
authURL, err := h.service.OauthSignin(params.Name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -159,7 +159,7 @@ func (h *Handlers) OauthSigninCallback(j *jwt.GinJWTMiddleware) func(*gin.Contex
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
user, err := h.Service.OauthSigninCallback(params.Name, query.Code)
|
user, err := h.service.OauthSigninCallback(params.Name, query.Code)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -186,7 +186,7 @@ func (h *Handlers) GetRolesForUser(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
roles, err := h.Service.GetRolesForUser(params.ID)
|
roles, err := h.service.GetRolesForUser(params.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
|
|
@ -213,7 +213,7 @@ func (h *Handlers) AddRoleToUser(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if ok, err := h.Service.AddRoleForUser(params); err != nil {
|
if ok, err := h.service.AddRoleForUser(params); err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
} else if !ok {
|
} else if !ok {
|
||||||
|
|
@ -242,7 +242,7 @@ func (h *Handlers) DeleteRoleForUser(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if ok, err := h.Service.DeleteRoleForUser(params); err != nil {
|
if ok, err := h.service.DeleteRoleForUser(params); err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
} else if !ok {
|
} else if !ok {
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@ import (
|
||||||
"d7y.io/dragonfly/v2/manager/service"
|
"d7y.io/dragonfly/v2/manager/service"
|
||||||
"d7y.io/dragonfly/v2/pkg/rpc"
|
"d7y.io/dragonfly/v2/pkg/rpc"
|
||||||
"d7y.io/dragonfly/v2/pkg/rpc/manager"
|
"d7y.io/dragonfly/v2/pkg/rpc/manager"
|
||||||
|
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -87,7 +88,7 @@ func New(cfg *config.Config) (*Server, error) {
|
||||||
|
|
||||||
// Initialize REST server
|
// Initialize REST server
|
||||||
restService := service.NewREST(db, cache, job, enforcer)
|
restService := service.NewREST(db, cache, job, enforcer)
|
||||||
router, err := router.Init(cfg.Console, cfg.Verbose, cfg.Server.PublicPath, restService, enforcer)
|
router, err := router.Init(cfg, restService, enforcer)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
@ -104,7 +105,12 @@ func New(cfg *config.Config) (*Server, error) {
|
||||||
|
|
||||||
// Initialize GRPC server
|
// Initialize GRPC server
|
||||||
grpcService := service.NewGRPC(db, cache, searcher)
|
grpcService := service.NewGRPC(db, cache, searcher)
|
||||||
grpcServer := grpc.NewServer()
|
var opts []grpc.ServerOption
|
||||||
|
if cfg.Options.Telemetry.Jaeger != "" {
|
||||||
|
opts = append(opts, grpc.UnaryInterceptor(otelgrpc.UnaryServerInterceptor()), grpc.StreamInterceptor(otelgrpc.StreamServerInterceptor()))
|
||||||
|
}
|
||||||
|
|
||||||
|
grpcServer := grpc.NewServer(opts...)
|
||||||
manager.RegisterManagerServer(grpcServer, grpcService)
|
manager.RegisterManagerServer(grpcServer, grpcService)
|
||||||
|
|
||||||
return &Server{
|
return &Server{
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2020 The Dragonfly Authors
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package middlewares
|
||||||
|
|
||||||
|
import (
|
||||||
|
"d7y.io/dragonfly/v2/manager/config"
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
"go.opentelemetry.io/otel"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
TracerName = "dragonfly-manager-rest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Tracer() gin.HandlerFunc {
|
||||||
|
return func(c *gin.Context) {
|
||||||
|
tracer := otel.Tracer(TracerName)
|
||||||
|
_, span := tracer.Start(c.Request.Context(), c.HandlerName())
|
||||||
|
span.SetAttributes(config.AttributeID.Float64(c.GetFloat64("id")))
|
||||||
|
defer span.End()
|
||||||
|
c.Next()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -22,6 +22,7 @@ import (
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
"d7y.io/dragonfly/v2/internal/dfpath"
|
"d7y.io/dragonfly/v2/internal/dfpath"
|
||||||
|
"d7y.io/dragonfly/v2/manager/config"
|
||||||
"d7y.io/dragonfly/v2/manager/handlers"
|
"d7y.io/dragonfly/v2/manager/handlers"
|
||||||
"d7y.io/dragonfly/v2/manager/middlewares"
|
"d7y.io/dragonfly/v2/manager/middlewares"
|
||||||
"d7y.io/dragonfly/v2/manager/service"
|
"d7y.io/dragonfly/v2/manager/service"
|
||||||
|
|
@ -32,20 +33,23 @@ import (
|
||||||
ginprometheus "github.com/mcuadros/go-gin-prometheus"
|
ginprometheus "github.com/mcuadros/go-gin-prometheus"
|
||||||
swaggerFiles "github.com/swaggo/files"
|
swaggerFiles "github.com/swaggo/files"
|
||||||
ginSwagger "github.com/swaggo/gin-swagger"
|
ginSwagger "github.com/swaggo/gin-swagger"
|
||||||
|
"go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
GinLogFileName = "gin.log"
|
GinLogFileName = "gin.log"
|
||||||
|
PrometheusSubsystemName = "dragonfly_manager"
|
||||||
|
OtelServiceName = "dragonfly-manager"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Init(console bool, verbose bool, publicPath string, service service.REST, enforcer *casbin.Enforcer) (*gin.Engine, error) {
|
func Init(cfg *config.Config, service service.REST, enforcer *casbin.Enforcer) (*gin.Engine, error) {
|
||||||
// Set mode
|
// Set mode
|
||||||
if !verbose {
|
if !cfg.Verbose {
|
||||||
gin.SetMode(gin.ReleaseMode)
|
gin.SetMode(gin.ReleaseMode)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Logging to a file
|
// Logging to a file
|
||||||
if !console {
|
if !cfg.Console {
|
||||||
gin.DisableConsoleColor()
|
gin.DisableConsoleColor()
|
||||||
logDir := filepath.Join(dfpath.LogDir, "manager")
|
logDir := filepath.Join(dfpath.LogDir, "manager")
|
||||||
f, _ := os.Create(filepath.Join(logDir, GinLogFileName))
|
f, _ := os.Create(filepath.Join(logDir, GinLogFileName))
|
||||||
|
|
@ -56,9 +60,14 @@ func Init(console bool, verbose bool, publicPath string, service service.REST, e
|
||||||
h := handlers.New(service)
|
h := handlers.New(service)
|
||||||
|
|
||||||
// Prometheus
|
// Prometheus
|
||||||
p := ginprometheus.NewPrometheus("dragonfly_manager")
|
p := ginprometheus.NewPrometheus(PrometheusSubsystemName)
|
||||||
p.Use(r)
|
p.Use(r)
|
||||||
|
|
||||||
|
// Opentelemetry
|
||||||
|
if cfg.Options.Telemetry.Jaeger != "" {
|
||||||
|
r.Use(otelgin.Middleware(OtelServiceName))
|
||||||
|
}
|
||||||
|
|
||||||
// CORS
|
// CORS
|
||||||
corsConfig := cors.DefaultConfig()
|
corsConfig := cors.DefaultConfig()
|
||||||
corsConfig.AllowAllOrigins = true
|
corsConfig.AllowAllOrigins = true
|
||||||
|
|
@ -76,27 +85,27 @@ func Init(console bool, verbose bool, publicPath string, service service.REST, e
|
||||||
}
|
}
|
||||||
|
|
||||||
// Manager View
|
// Manager View
|
||||||
r.Use(static.Serve("/", static.LocalFile(publicPath, true)))
|
r.Use(static.Serve("/", static.LocalFile(cfg.Server.PublicPath, true)))
|
||||||
|
|
||||||
// Router
|
// Router
|
||||||
apiv1 := r.Group("/api/v1")
|
apiv1 := r.Group("/api/v1")
|
||||||
|
|
||||||
// User
|
// User
|
||||||
u := apiv1.Group("/users")
|
u := apiv1.Group("/users")
|
||||||
u.GET("/:id", jwt.MiddlewareFunc(), rbac, h.GetUser)
|
u.GET("/:id", jwt.MiddlewareFunc(), middlewares.Tracer(), rbac, h.GetUser)
|
||||||
u.POST("/signin", jwt.LoginHandler)
|
u.POST("/signin", middlewares.Tracer(), jwt.LoginHandler)
|
||||||
u.POST("/signout", jwt.LogoutHandler)
|
u.POST("/signout", middlewares.Tracer(), jwt.LogoutHandler)
|
||||||
u.POST("/signup", h.SignUp)
|
u.POST("/signup", middlewares.Tracer(), h.SignUp)
|
||||||
u.GET("/signin/:name", h.OauthSignin)
|
u.GET("/signin/:name", middlewares.Tracer(), h.OauthSignin)
|
||||||
u.GET("/signin/:name/callback", h.OauthSigninCallback(jwt))
|
u.GET("/signin/:name/callback", middlewares.Tracer(), h.OauthSigninCallback(jwt))
|
||||||
u.POST("/refresh_token", jwt.RefreshHandler)
|
u.POST("/refresh_token", middlewares.Tracer(), jwt.RefreshHandler)
|
||||||
u.POST("/:id/reset_password", h.ResetPassword)
|
u.POST("/:id/reset_password", middlewares.Tracer(), h.ResetPassword)
|
||||||
u.GET("/:id/roles", jwt.MiddlewareFunc(), rbac, h.GetRolesForUser)
|
u.GET("/:id/roles", jwt.MiddlewareFunc(), middlewares.Tracer(), rbac, h.GetRolesForUser)
|
||||||
u.PUT("/:id/roles/:role", jwt.MiddlewareFunc(), rbac, h.AddRoleToUser)
|
u.PUT("/:id/roles/:role", jwt.MiddlewareFunc(), middlewares.Tracer(), rbac, h.AddRoleToUser)
|
||||||
u.DELETE("/:id/roles/:role", jwt.MiddlewareFunc(), rbac, h.DeleteRoleForUser)
|
u.DELETE("/:id/roles/:role", jwt.MiddlewareFunc(), middlewares.Tracer(), rbac, h.DeleteRoleForUser)
|
||||||
|
|
||||||
// Role
|
// Role
|
||||||
re := apiv1.Group("/roles", jwt.MiddlewareFunc(), rbac)
|
re := apiv1.Group("/roles", jwt.MiddlewareFunc(), middlewares.Tracer(), rbac)
|
||||||
re.POST("", h.CreateRole)
|
re.POST("", h.CreateRole)
|
||||||
re.DELETE("/:role", h.DestroyRole)
|
re.DELETE("/:role", h.DestroyRole)
|
||||||
re.GET("/:role", h.GetRole)
|
re.GET("/:role", h.GetRole)
|
||||||
|
|
@ -105,11 +114,11 @@ func Init(console bool, verbose bool, publicPath string, service service.REST, e
|
||||||
re.DELETE("/:role/permissions", h.DeletePermissionForRole)
|
re.DELETE("/:role/permissions", h.DeletePermissionForRole)
|
||||||
|
|
||||||
// Permission
|
// Permission
|
||||||
pm := apiv1.Group("/permissions", jwt.MiddlewareFunc(), rbac)
|
pm := apiv1.Group("/permissions", jwt.MiddlewareFunc(), middlewares.Tracer(), rbac)
|
||||||
pm.GET("", h.GetPermissions(r))
|
pm.GET("", h.GetPermissions(r))
|
||||||
|
|
||||||
// Oauth
|
// Oauth
|
||||||
oa := apiv1.Group("/oauth", jwt.MiddlewareFunc(), rbac)
|
oa := apiv1.Group("/oauth", jwt.MiddlewareFunc(), middlewares.Tracer(), rbac)
|
||||||
oa.POST("", h.CreateOauth)
|
oa.POST("", h.CreateOauth)
|
||||||
oa.DELETE(":id", h.DestroyOauth)
|
oa.DELETE(":id", h.DestroyOauth)
|
||||||
oa.PATCH(":id", h.UpdateOauth)
|
oa.PATCH(":id", h.UpdateOauth)
|
||||||
|
|
@ -117,7 +126,7 @@ func Init(console bool, verbose bool, publicPath string, service service.REST, e
|
||||||
oa.GET("", h.GetOauths)
|
oa.GET("", h.GetOauths)
|
||||||
|
|
||||||
// Scheduler Cluster
|
// Scheduler Cluster
|
||||||
sc := apiv1.Group("/scheduler-clusters", jwt.MiddlewareFunc(), rbac)
|
sc := apiv1.Group("/scheduler-clusters", jwt.MiddlewareFunc(), middlewares.Tracer(), rbac, middlewares.Tracer())
|
||||||
sc.POST("", h.CreateSchedulerCluster)
|
sc.POST("", h.CreateSchedulerCluster)
|
||||||
sc.DELETE(":id", h.DestroySchedulerCluster)
|
sc.DELETE(":id", h.DestroySchedulerCluster)
|
||||||
sc.PATCH(":id", h.UpdateSchedulerCluster)
|
sc.PATCH(":id", h.UpdateSchedulerCluster)
|
||||||
|
|
@ -126,7 +135,7 @@ func Init(console bool, verbose bool, publicPath string, service service.REST, e
|
||||||
sc.PUT(":id/schedulers/:scheduler_id", h.AddSchedulerToSchedulerCluster)
|
sc.PUT(":id/schedulers/:scheduler_id", h.AddSchedulerToSchedulerCluster)
|
||||||
|
|
||||||
// Scheduler
|
// Scheduler
|
||||||
s := apiv1.Group("/schedulers", jwt.MiddlewareFunc(), rbac)
|
s := apiv1.Group("/schedulers", jwt.MiddlewareFunc(), middlewares.Tracer(), rbac)
|
||||||
s.POST("", h.CreateScheduler)
|
s.POST("", h.CreateScheduler)
|
||||||
s.DELETE(":id", h.DestroyScheduler)
|
s.DELETE(":id", h.DestroyScheduler)
|
||||||
s.PATCH(":id", h.UpdateScheduler)
|
s.PATCH(":id", h.UpdateScheduler)
|
||||||
|
|
@ -134,7 +143,7 @@ func Init(console bool, verbose bool, publicPath string, service service.REST, e
|
||||||
s.GET("", h.GetSchedulers)
|
s.GET("", h.GetSchedulers)
|
||||||
|
|
||||||
// CDN Cluster
|
// CDN Cluster
|
||||||
cc := apiv1.Group("/cdn-clusters", jwt.MiddlewareFunc(), rbac)
|
cc := apiv1.Group("/cdn-clusters", jwt.MiddlewareFunc(), middlewares.Tracer(), rbac)
|
||||||
cc.POST("", h.CreateCDNCluster)
|
cc.POST("", h.CreateCDNCluster)
|
||||||
cc.DELETE(":id", h.DestroyCDNCluster)
|
cc.DELETE(":id", h.DestroyCDNCluster)
|
||||||
cc.PATCH(":id", h.UpdateCDNCluster)
|
cc.PATCH(":id", h.UpdateCDNCluster)
|
||||||
|
|
@ -144,7 +153,7 @@ func Init(console bool, verbose bool, publicPath string, service service.REST, e
|
||||||
cc.PUT(":id/scheduler-clusters/:scheduler_cluster_id", h.AddSchedulerClusterToCDNCluster)
|
cc.PUT(":id/scheduler-clusters/:scheduler_cluster_id", h.AddSchedulerClusterToCDNCluster)
|
||||||
|
|
||||||
// CDN
|
// CDN
|
||||||
c := apiv1.Group("/cdns", jwt.MiddlewareFunc(), rbac)
|
c := apiv1.Group("/cdns", jwt.MiddlewareFunc(), middlewares.Tracer(), rbac)
|
||||||
c.POST("", h.CreateCDN)
|
c.POST("", h.CreateCDN)
|
||||||
c.DELETE(":id", h.DestroyCDN)
|
c.DELETE(":id", h.DestroyCDN)
|
||||||
c.PATCH(":id", h.UpdateCDN)
|
c.PATCH(":id", h.UpdateCDN)
|
||||||
|
|
@ -152,7 +161,7 @@ func Init(console bool, verbose bool, publicPath string, service service.REST, e
|
||||||
c.GET("", h.GetCDNs)
|
c.GET("", h.GetCDNs)
|
||||||
|
|
||||||
// Security Group
|
// Security Group
|
||||||
sg := apiv1.Group("/security-groups", jwt.MiddlewareFunc(), rbac)
|
sg := apiv1.Group("/security-groups", jwt.MiddlewareFunc(), middlewares.Tracer(), rbac)
|
||||||
sg.POST("", h.CreateSecurityGroup)
|
sg.POST("", h.CreateSecurityGroup)
|
||||||
sg.DELETE(":id", h.DestroySecurityGroup)
|
sg.DELETE(":id", h.DestroySecurityGroup)
|
||||||
sg.PATCH(":id", h.UpdateSecurityGroup)
|
sg.PATCH(":id", h.UpdateSecurityGroup)
|
||||||
|
|
@ -162,7 +171,7 @@ func Init(console bool, verbose bool, publicPath string, service service.REST, e
|
||||||
sg.PUT(":id/cdn-clusters/:cdn_cluster_id", h.AddCDNClusterToSecurityGroup)
|
sg.PUT(":id/cdn-clusters/:cdn_cluster_id", h.AddCDNClusterToSecurityGroup)
|
||||||
|
|
||||||
// Preheat
|
// Preheat
|
||||||
ph := apiv1.Group("/preheats")
|
ph := apiv1.Group("/preheats", middlewares.Tracer())
|
||||||
ph.POST("", h.CreatePreheat)
|
ph.POST("", h.CreatePreheat)
|
||||||
ph.GET(":id", h.GetPreheat)
|
ph.GET(":id", h.GetPreheat)
|
||||||
|
|
||||||
|
|
@ -175,7 +184,7 @@ func Init(console bool, verbose bool, publicPath string, service service.REST, e
|
||||||
|
|
||||||
// Fallback To Manager View
|
// Fallback To Manager View
|
||||||
r.NoRoute(func(c *gin.Context) {
|
r.NoRoute(func(c *gin.Context) {
|
||||||
c.File(filepath.Join(publicPath, "index.html"))
|
c.File(filepath.Join(cfg.Server.PublicPath, "index.html"))
|
||||||
})
|
})
|
||||||
|
|
||||||
return r, nil
|
return r, nil
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue