EdgeDNS支持内置线路

This commit is contained in:
GoEdgeLab
2021-08-09 13:56:11 +08:00
parent bf16170da4
commit 75a349b8c3
10 changed files with 138 additions and 81 deletions

View File

@@ -54,7 +54,7 @@ func (this *CreatePopupAction) RunPost(params struct {
Value string
Ttl int32
Description string
RouteIds []int64
RouteCodes []string
Must *actions.Must
CSRF *actionutils.CSRF
@@ -76,13 +76,13 @@ func (this *CreatePopupAction) RunPost(params struct {
}
createResp, err := this.RPC().NSRecordRPC().CreateNSRecord(this.AdminContext(), &pb.CreateNSRecordRequest{
NsDomainId: params.DomainId,
Description: params.Description,
Name: params.Name,
Type: params.Type,
Value: params.Value,
Ttl: params.Ttl,
NsRouteIds: params.RouteIds,
NsDomainId: params.DomainId,
Description: params.Description,
Name: params.Name,
Type: params.Type,
Value: params.Value,
Ttl: params.Ttl,
NsRouteCodes: params.RouteCodes,
})
if err != nil {
this.ErrorPage(err)

View File

@@ -22,7 +22,7 @@ func (this *IndexAction) RunGet(params struct {
DomainId int64
Type string
Keyword string
RouteId int64
RouteCode string
}) {
// 初始化域名信息
err := domainutils.InitDomain(this.Parent(), params.DomainId)
@@ -33,14 +33,14 @@ func (this *IndexAction) RunGet(params struct {
this.Data["type"] = params.Type
this.Data["keyword"] = params.Keyword
this.Data["routeId"] = params.RouteId
this.Data["routeCode"] = params.RouteCode
// 记录
countResp, err := this.RPC().NSRecordRPC().CountAllEnabledNSRecords(this.AdminContext(), &pb.CountAllEnabledNSRecordsRequest{
NsDomainId: params.DomainId,
Type: params.Type,
NsRouteId: params.RouteId,
Keyword: params.Keyword,
NsDomainId: params.DomainId,
Type: params.Type,
NsRouteCode: params.RouteCode,
Keyword: params.Keyword,
})
if err != nil {
this.ErrorPage(err)
@@ -51,12 +51,12 @@ func (this *IndexAction) RunGet(params struct {
this.Data["page"] = page.AsHTML()
recordsResp, err := this.RPC().NSRecordRPC().ListEnabledNSRecords(this.AdminContext(), &pb.ListEnabledNSRecordsRequest{
NsDomainId: params.DomainId,
Type: params.Type,
NsRouteId: params.RouteId,
Keyword: params.Keyword,
Offset: page.Offset,
Size: page.Size,
NsDomainId: params.DomainId,
Type: params.Type,
NsRouteCode: params.RouteCode,
Keyword: params.Keyword,
Offset: page.Offset,
Size: page.Size,
})
if err != nil {
this.ErrorPage(err)

View File

@@ -33,11 +33,6 @@ func (this *UpdatePopupAction) RunGet(params struct {
return
}
routeIds := []int64{}
for _, route := range record.NsRoutes {
routeIds = append(routeIds, route.Id)
}
this.Data["record"] = maps.Map{
"id": record.Id,
"name": record.Name,
@@ -47,7 +42,7 @@ func (this *UpdatePopupAction) RunGet(params struct {
"weight": record.Weight,
"description": record.Description,
"isOn": record.IsOn,
"routeIds": routeIds,
"routes": record.NsRoutes,
}
// 域名信息
@@ -83,7 +78,7 @@ func (this *UpdatePopupAction) RunPost(params struct {
Ttl int32
Description string
IsOn bool
RouteIds []int64
RouteCodes []string
Must *actions.Must
CSRF *actionutils.CSRF
@@ -102,14 +97,14 @@ func (this *UpdatePopupAction) RunPost(params struct {
}
_, err := this.RPC().NSRecordRPC().UpdateNSRecord(this.AdminContext(), &pb.UpdateNSRecordRequest{
NsRecordId: params.RecordId,
Description: params.Description,
Name: params.Name,
Type: params.Type,
Value: params.Value,
Ttl: params.Ttl,
IsOn: params.IsOn,
NsRouteIds: params.RouteIds,
NsRecordId: params.RecordId,
Description: params.Description,
Name: params.Name,
Type: params.Type,
Value: params.Value,
Ttl: params.Ttl,
IsOn: params.IsOn,
NsRouteCodes: params.RouteCodes,
})
if err != nil {
this.ErrorPage(err)

View File

@@ -4,8 +4,10 @@ package clusters
import (
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
"github.com/TeaOSLab/EdgeCommon/pkg/dnsconfigs"
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
"github.com/iwind/TeaGo/maps"
"github.com/iwind/TeaGo/types"
)
type OptionsAction struct {
@@ -17,6 +19,18 @@ func (this *OptionsAction) RunPost(params struct {
DomainId int64
UserId int64
}) {
var routeMaps = []maps.Map{}
// 默认线路
for _, route := range dnsconfigs.AllDefaultRoutes {
routeMaps = append(routeMaps, maps.Map{
"name": route.Name,
"code": route.Code,
"type": "default",
})
}
// 自定义
routesResp, err := this.RPC().NSRouteRPC().FindAllEnabledNSRoutes(this.AdminContext(), &pb.FindAllEnabledNSRoutesRequest{
NsClusterId: params.ClusterId,
NsDomainId: params.DomainId,
@@ -27,13 +41,45 @@ func (this *OptionsAction) RunPost(params struct {
return
}
routeMaps := []maps.Map{}
for _, route := range routesResp.NsRoutes {
if len(route.Code) == 0 {
route.Code = "id:" + types.String(route.Id)
}
routeMaps = append(routeMaps, maps.Map{
"id": route.Id,
"name": route.Name,
"code": route.Code,
"type": "user",
})
}
// 运营商
for _, route := range dnsconfigs.AllDefaultISPRoutes {
routeMaps = append(routeMaps, maps.Map{
"name": route.Name,
"code": route.Code,
"type": "isp",
})
}
// 中国
for _, route := range dnsconfigs.AllDefaultChinaProvinceRoutes {
routeMaps = append(routeMaps, maps.Map{
"name": route.Name,
"code": route.Code,
"type": "china",
})
}
// 全球
for _, route := range dnsconfigs.AllDefaultWorldRegionRoutes {
routeMaps = append(routeMaps, maps.Map{
"name": route.Name,
"code": route.Code,
"type": "world",
})
}
this.Data["routes"] = routeMaps
this.Success()