diff --git a/internal/db/models/dns_domain_dao.go b/internal/db/models/dns_domain_dao.go new file mode 100644 index 00000000..474dbd86 --- /dev/null +++ b/internal/db/models/dns_domain_dao.go @@ -0,0 +1,170 @@ +package models + +import ( + "github.com/TeaOSLab/EdgeAPI/internal/errors" + _ "github.com/go-sql-driver/mysql" + "github.com/iwind/TeaGo/Tea" + "github.com/iwind/TeaGo/dbs" + "github.com/iwind/TeaGo/types" +) + +const ( + DNSDomainStateEnabled = 1 // 已启用 + DNSDomainStateDisabled = 0 // 已禁用 +) + +type DNSDomainDAO dbs.DAO + +func NewDNSDomainDAO() *DNSDomainDAO { + return dbs.NewDAO(&DNSDomainDAO{ + DAOObject: dbs.DAOObject{ + DB: Tea.Env, + Table: "edgeDNSDomains", + Model: new(DNSDomain), + PkName: "id", + }, + }).(*DNSDomainDAO) +} + +var SharedDNSDomainDAO *DNSDomainDAO + +func init() { + dbs.OnReady(func() { + SharedDNSDomainDAO = NewDNSDomainDAO() + }) +} + +// 启用条目 +func (this *DNSDomainDAO) EnableDNSDomain(id int64) error { + _, err := this.Query(). + Pk(id). + Set("state", DNSDomainStateEnabled). + Update() + return err +} + +// 禁用条目 +func (this *DNSDomainDAO) DisableDNSDomain(id int64) error { + _, err := this.Query(). + Pk(id). + Set("state", DNSDomainStateDisabled). + Update() + return err +} + +// 查找启用中的条目 +func (this *DNSDomainDAO) FindEnabledDNSDomain(id int64) (*DNSDomain, error) { + result, err := this.Query(). + Pk(id). + Attr("state", DNSDomainStateEnabled). + Find() + if result == nil { + return nil, err + } + return result.(*DNSDomain), err +} + +// 根据主键查找名称 +func (this *DNSDomainDAO) FindDNSDomainName(id int64) (string, error) { + return this.Query(). + Pk(id). + Result("name"). + FindStringCol("") +} + +// 创建域名 +func (this *DNSDomainDAO) CreateDomain(providerId int64, name string) (int64, error) { + op := NewDNSDomainOperator() + op.ProviderId = providerId + op.Name = name + op.State = DNSDomainStateEnabled + op.IsOn = true + _, err := this.Save(op) + if err != nil { + return 0, err + } + return types.Int64(op.Id), nil +} + +// 修改域名 +func (this *DNSDomainDAO) UpdateDomain(domainId int64, name string, isOn bool) error { + if domainId <= 0 { + return errors.New("invalid domainId") + } + op := NewDNSDomainOperator() + op.Id = domainId + op.Name = name + op.IsOn = isOn + _, err := this.Save(op) + if err != nil { + return err + } + return nil +} + +// 查询一个服务商下面的所有域名 +func (this *DNSDomainDAO) FindAllEnabledDomainsWithProviderId(providerId int64) (result []*DNSDomain, err error) { + _, err = this.Query(). + State(DNSDomainStateEnabled). + Attr("providerId", providerId). + AscPk(). + Slice(&result). + FindAll() + return +} + +// 计算某个服务商下的域名数量 +func (this *DNSDomainDAO) CountAllEnabledDomainsWithProviderId(providerId int64) (int64, error) { + return this.Query(). + State(DNSDomainStateEnabled). + Attr("providerId", providerId). + Count() +} + +// 更新域名数据 +func (this *DNSDomainDAO) UpdateDomainData(domainId int64, data string) error { + if domainId <= 0 { + return errors.New("invalid domainId") + } + op := NewDNSDomainOperator() + op.Id = domainId + op.Data = data + _, err := this.Save(op) + return err +} + +// 更新服务相关域名 +func (this *DNSDomainDAO) UpdateServerDomains(domainId int64, serverDomainsJSON []byte) error { + if domainId <= 0 { + return errors.New("invalid domainId") + } + op := NewDNSDomainOperator() + op.Id = domainId + op.ServerDomains = serverDomainsJSON + _, err := this.Save(op) + return err +} + +// 更新集群相关域名 +func (this *DNSDomainDAO) UpdateClusterDomains(domainId int64, clusterDomainJSON []byte) error { + if domainId <= 0 { + return errors.New("invalid domainId") + } + op := NewDNSDomainOperator() + op.Id = domainId + op.ClusterDomains = clusterDomainJSON + _, err := this.Save(op) + return err +} + +// 更新线路 +func (this *DNSDomainDAO) UpdateRoutes(domainId int64, routesJSON []byte) error { + if domainId <= 0 { + return errors.New("invalid domainId") + } + op := NewDNSDomainOperator() + op.Id = domainId + op.Routes = routesJSON + _, err := this.Save(op) + return err +} diff --git a/internal/db/models/dns_domain_dao_test.go b/internal/db/models/dns_domain_dao_test.go new file mode 100644 index 00000000..97c24b56 --- /dev/null +++ b/internal/db/models/dns_domain_dao_test.go @@ -0,0 +1,5 @@ +package models + +import ( + _ "github.com/go-sql-driver/mysql" +) diff --git a/internal/db/models/dns_domain_model.go b/internal/db/models/dns_domain_model.go new file mode 100644 index 00000000..e47cfa4c --- /dev/null +++ b/internal/db/models/dns_domain_model.go @@ -0,0 +1,36 @@ +package models + +// 管理的域名 +type DNSDomain struct { + Id uint32 `field:"id"` // ID + AdminId uint32 `field:"adminId"` // 管理员ID + ProviderId uint32 `field:"providerId"` // 服务商ID + IsOn uint8 `field:"isOn"` // 是否可用 + Name string `field:"name"` // 域名 + CreatedAt uint64 `field:"createdAt"` // 创建时间 + DataUpdatedAt uint64 `field:"dataUpdatedAt"` // 数据更新时间 + Data string `field:"data"` // 原始数据信息 + ServerDomains string `field:"serverDomains"` // 服务相关子域名 + ClusterDomains string `field:"clusterDomains"` // 集群相关域名 + Routes string `field:"routes"` // 线路数据 + State uint8 `field:"state"` // 状态 +} + +type DNSDomainOperator struct { + Id interface{} // ID + AdminId interface{} // 管理员ID + ProviderId interface{} // 服务商ID + IsOn interface{} // 是否可用 + Name interface{} // 域名 + CreatedAt interface{} // 创建时间 + DataUpdatedAt interface{} // 数据更新时间 + Data interface{} // 原始数据信息 + ServerDomains interface{} // 服务相关子域名 + ClusterDomains interface{} // 集群相关域名 + Routes interface{} // 线路数据 + State interface{} // 状态 +} + +func NewDNSDomainOperator() *DNSDomainOperator { + return &DNSDomainOperator{} +} diff --git a/internal/db/models/dns_domain_model_ext.go b/internal/db/models/dns_domain_model_ext.go new file mode 100644 index 00000000..2640e7f9 --- /dev/null +++ b/internal/db/models/dns_domain_model_ext.go @@ -0,0 +1 @@ +package models diff --git a/internal/db/models/dns_provider_dao.go b/internal/db/models/dns_provider_dao.go index 1a5ff03d..00a89343 100644 --- a/internal/db/models/dns_provider_dao.go +++ b/internal/db/models/dns_provider_dao.go @@ -6,7 +6,6 @@ import ( "github.com/iwind/TeaGo/Tea" "github.com/iwind/TeaGo/dbs" "github.com/iwind/TeaGo/types" - "time" ) const ( @@ -66,18 +65,14 @@ func (this *DNSProviderDAO) FindEnabledDNSProvider(id int64) (*DNSProvider, erro } // 创建服务商 -func (this *DNSProviderDAO) CreateDNSProvider(providerType string, name string, apiParamsJSON []byte, routesJSON []byte) (int64, error) { +func (this *DNSProviderDAO) CreateDNSProvider(providerType string, name string, apiParamsJSON []byte) (int64, error) { op := NewDNSProviderOperator() op.Type = providerType op.Name = name if len(apiParamsJSON) > 0 { op.ApiParams = apiParamsJSON } - if len(routesJSON) > 0 { - op.Routes = routesJSON - } op.State = DNSProviderStateEnabled - op.DataUpdatedAt = time.Now().Unix() _, err := this.Save(op) if err != nil { return 0, err @@ -86,7 +81,7 @@ func (this *DNSProviderDAO) CreateDNSProvider(providerType string, name string, } // 修改服务商 -func (this *DNSProviderDAO) UpdateDNSProvider(dnsProviderId int64, name string, apiParamsJSON []byte, routesJSON []byte) error { +func (this *DNSProviderDAO) UpdateDNSProvider(dnsProviderId int64, name string, apiParamsJSON []byte) error { if dnsProviderId <= 0 { return errors.New("invalid dnsProviderId") } @@ -100,12 +95,6 @@ func (this *DNSProviderDAO) UpdateDNSProvider(dnsProviderId int64, name string, op.ApiParams = apiParamsJSON } - // 如果留空则表示不修改 - if len(routesJSON) > 0 { - op.Routes = routesJSON - } - - op.DataUpdatedAt = time.Now().Unix() _, err := this.Save(op) if err != nil { return err diff --git a/internal/db/models/dns_provider_model.go b/internal/db/models/dns_provider_model.go index cdeb43f1..6496eb01 100644 --- a/internal/db/models/dns_provider_model.go +++ b/internal/db/models/dns_provider_model.go @@ -9,7 +9,6 @@ type DNSProvider struct { ApiParams string `field:"apiParams"` // API参数 CreatedAt uint64 `field:"createdAt"` // 创建时间 State uint8 `field:"state"` // 状态 - Routes string `field:"routes"` // 可以使用的线路 DataUpdatedAt uint64 `field:"dataUpdatedAt"` // 数据同步时间 } @@ -21,7 +20,6 @@ type DNSProviderOperator struct { ApiParams interface{} // API参数 CreatedAt interface{} // 创建时间 State interface{} // 状态 - Routes interface{} // 可以使用的线路 DataUpdatedAt interface{} // 数据同步时间 } diff --git a/internal/db/models/node_cluster_dao.go b/internal/db/models/node_cluster_dao.go index 0a65bdbe..d97aa96f 100644 --- a/internal/db/models/node_cluster_dao.go +++ b/internal/db/models/node_cluster_dao.go @@ -272,7 +272,8 @@ func (this *NodeClusterDAO) FindAllEnabledClustersWithGrantId(grantId int64) (re func (this *NodeClusterDAO) CountAllEnabledClustersWithDNSProviderId(dnsProviderId int64) (int64, error) { return this.Query(). State(NodeClusterStateEnabled). - Attr("dnsProviderId", dnsProviderId). + Where("dnsDomainId IN (SELECT id FROM "+SharedDNSDomainDAO.Table+" WHERE state=1 AND providerId=:providerId)"). + Param("providerId", dnsProviderId). Count() } @@ -280,13 +281,22 @@ func (this *NodeClusterDAO) CountAllEnabledClustersWithDNSProviderId(dnsProvider func (this *NodeClusterDAO) FindAllEnabledClustersWithDNSProviderId(dnsProviderId int64) (result []*NodeCluster, err error) { _, err = this.Query(). State(NodeClusterStateEnabled). - Attr("dnsProviderId", dnsProviderId). + Where("dnsDomainId IN (SELECT id FROM "+SharedDNSDomainDAO.Table+" WHERE state=1 AND providerId=:providerId)"). + Param("providerId", dnsProviderId). Slice(&result). DescPk(). FindAll() return } +// 计算使用某个DNS域名的集群数量 +func (this *NodeClusterDAO) CountAllEnabledClustersWithDNSDomainId(dnsDomainId int64) (int64, error) { + return this.Query(). + State(NodeClusterStateEnabled). + Attr("dnsDomainId", dnsDomainId). + Count() +} + // 查找集群的认证ID func (this *NodeClusterDAO) FindClusterGrantId(clusterId int64) (int64, error) { return this.Query(). diff --git a/internal/db/models/node_cluster_model.go b/internal/db/models/node_cluster_model.go index 1bb6100a..3d6dc667 100644 --- a/internal/db/models/node_cluster_model.go +++ b/internal/db/models/node_cluster_model.go @@ -17,9 +17,8 @@ type NodeCluster struct { UniqueId string `field:"uniqueId"` // 唯一ID Secret string `field:"secret"` // 密钥 HealthCheck string `field:"healthCheck"` // 健康检查 - DnsProviderId uint32 `field:"dnsProviderId"` // 当前使用的DNS供应商 DnsName string `field:"dnsName"` // DNS名称 - DnsDomain string `field:"dnsDomain"` // DNS域 + DnsDomainId uint32 `field:"dnsDomainId"` // 域名ID } type NodeClusterOperator struct { @@ -38,9 +37,8 @@ type NodeClusterOperator struct { UniqueId interface{} // 唯一ID Secret interface{} // 密钥 HealthCheck interface{} // 健康检查 - DnsProviderId interface{} // 当前使用的DNS供应商 DnsName interface{} // DNS名称 - DnsDomain interface{} // DNS域 + DnsDomainId interface{} // 域名ID } func NewNodeClusterOperator() *NodeClusterOperator { diff --git a/internal/dnsproviders/provider_dnspod.go b/internal/dnsproviders/provider_dnspod.go new file mode 100644 index 00000000..56f43656 --- /dev/null +++ b/internal/dnsproviders/provider_dnspod.go @@ -0,0 +1,106 @@ +package dnsproviders + +import ( + "encoding/json" + "errors" + "github.com/iwind/TeaGo/maps" + "github.com/iwind/TeaGo/types" + "io/ioutil" + "net/http" + "net/url" + "strings" +) + +type DNSPodProvider struct { + apiId string + apiToken string +} + +// 认证 +func (this *DNSPodProvider) Auth(params maps.Map) error { + this.apiId = params.GetString("id") + this.apiToken = params.GetString("token") + + if len(this.apiId) == 0 { + return errors.New("'id' should be not empty") + } + if len(this.apiToken) == 0 { + return errors.New("'token' should not be empty") + } + return nil +} + +// 读取线路数据 +func (this *DNSPodProvider) GetRoutes(domain string) ([][]string, error) { + infoResp, err := this.post("/Domain.info", map[string]string{ + "domain": domain, + }) + if err != nil { + return nil, err + } + domainInfo := infoResp.GetMap("domain") + grade := domainInfo.GetString("grade") + + linesResp, err := this.post("/Record.Line", map[string]string{ + "domain": domain, + "domain_grade": grade, + }) + if err != nil { + return nil, err + } + + lines := linesResp.GetSlice("lines") + if len(lines) == 0 { + return nil, nil + } + lineStrings := []string{} + for _, line := range lines { + lineStrings = append(lineStrings, types.String(line)) + } + + return [][]string{lineStrings}, nil +} + +// 发送请求 +func (this *DNSPodProvider) post(path string, params map[string]string) (maps.Map, error) { + apiHost := "https://dnsapi.cn" + query := url.Values{ + "login_token": []string{this.apiId + "," + this.apiToken}, + "format": []string{"json"}, + } + for p, v := range params { + query[p] = []string{v} + } + req, err := http.NewRequest(http.MethodPost, apiHost+path, strings.NewReader(query.Encode())) + if err != nil { + return nil, err + } + req.Header.Set("Content-Type", "application/x-www-form-urlencoded") + req.Header.Set("User-Agent", "GoEdge Client/1.0.0 (iwind.liu@gmail.com)") + + client := http.Client{} + resp, err := client.Do(req) + if err != nil { + return nil, err + } + defer func() { + _ = resp.Body.Close() + client.CloseIdleConnections() + }() + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return nil, err + } + m := maps.Map{} + err = json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + status := m.GetMap("status") + code := status.GetString("code") + if code != "1" { + return nil, errors.New("code: " + code + ", message: " + status.GetString("message")) + } + + return m, nil +} diff --git a/internal/dnsproviders/provider_dnspod_test.go b/internal/dnsproviders/provider_dnspod_test.go new file mode 100644 index 00000000..676d3b68 --- /dev/null +++ b/internal/dnsproviders/provider_dnspod_test.go @@ -0,0 +1,22 @@ +package dnsproviders + +import ( + "github.com/iwind/TeaGo/maps" + "testing" +) + +func TestDNSPodProvider_GetRoutes(t *testing.T) { + provider := &DNSPodProvider{} + err := provider.Auth(maps.Map{ + "id": "191996", + "token": "366964e0f8ed4d8990a7f5d4b3cdec60", + }) + if err != nil { + t.Fatal(err) + } + routes, err := provider.GetRoutes("yun4s.cn") + if err != nil { + t.Fatal(err) + } + t.Log(routes) +} diff --git a/internal/dnsproviders/provider_interface.go b/internal/dnsproviders/provider_interface.go index 299e91e9..337f5070 100644 --- a/internal/dnsproviders/provider_interface.go +++ b/internal/dnsproviders/provider_interface.go @@ -1,7 +1,12 @@ package dnsproviders +import "github.com/iwind/TeaGo/maps" + // DNS操作接口 type ProviderInterface interface { - // 检查账号 + // 认证 + Auth(params maps.Map) error + // 读取线路数据 + GetRoutes(domain string) ([][]string, error) } diff --git a/internal/dnsproviders/types.go b/internal/dnsproviders/types.go index df9ac8e1..d848e646 100644 --- a/internal/dnsproviders/types.go +++ b/internal/dnsproviders/types.go @@ -4,15 +4,27 @@ import "github.com/iwind/TeaGo/maps" type ProviderType = string +// 服务商代号 const ( ProviderTypeDNSPod ProviderType = "dnspod" + ProviderTypeAliyun ProviderType = "aliyun" + ProviderTypeDNSCom ProviderType = "dnscom" ) +// 所有的服务商类型 var AllProviderTypes = []maps.Map{ { "name": "DNSPod", "code": ProviderTypeDNSPod, }, + { + "name": "阿里云", + "code": ProviderTypeAliyun, + }, + { + "name": "帝恩思", + "code": ProviderTypeDNSCom, + }, } func FindProviderTypeName(providerType string) string { diff --git a/internal/nodes/api_node.go b/internal/nodes/api_node.go index 43726a2a..f2505fb2 100644 --- a/internal/nodes/api_node.go +++ b/internal/nodes/api_node.go @@ -182,6 +182,7 @@ func (this *APINode) listenRPC(listener net.Listener, tlsConfig *tls.Config) err pb.RegisterIPItemServiceServer(rpcServer, &services.IPItemService{}) pb.RegisterLogServiceServer(rpcServer, &services.LogService{}) pb.RegisterDNSProviderServiceServer(rpcServer, &services.DNSProviderService{}) + pb.RegisterDNSDomainServiceServer(rpcServer, &services.DNSDomainService{}) err := rpcServer.Serve(listener) if err != nil { return errors.New("[API]start rpc failed: " + err.Error()) diff --git a/internal/rpc/services/service_api_node.go b/internal/rpc/services/service_api_node.go index 36fe6f02..28155b88 100644 --- a/internal/rpc/services/service_api_node.go +++ b/internal/rpc/services/service_api_node.go @@ -94,7 +94,7 @@ func (this *APINodeService) FindAllEnabledAPINodes(ctx context.Context, req *pb. } // 计算API节点数量 -func (this *APINodeService) CountAllEnabledAPINodes(ctx context.Context, req *pb.CountAllEnabledAPINodesRequest) (*pb.CountAllEnabledAPINodesResponse, error) { +func (this *APINodeService) CountAllEnabledAPINodes(ctx context.Context, req *pb.CountAllEnabledAPINodesRequest) (*pb.RPCCountResponse, error) { _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) if err != nil { return nil, err @@ -105,7 +105,7 @@ func (this *APINodeService) CountAllEnabledAPINodes(ctx context.Context, req *pb return nil, err } - return &pb.CountAllEnabledAPINodesResponse{Count: count}, nil + return &pb.RPCCountResponse{Count: count}, nil } // 列出单页的API节点 diff --git a/internal/rpc/services/service_db_node.go b/internal/rpc/services/service_db_node.go index 82c089ef..9f8702cb 100644 --- a/internal/rpc/services/service_db_node.go +++ b/internal/rpc/services/service_db_node.go @@ -55,7 +55,7 @@ func (this *DBNodeService) DeleteDBNode(ctx context.Context, req *pb.DeleteDBNod } // 计算可用的数据库节点数量 -func (this *DBNodeService) CountAllEnabledDBNodes(ctx context.Context, req *pb.CountAllEnabledDBNodesRequest) (*pb.CountAllEnabledDBNodesResponse, error) { +func (this *DBNodeService) CountAllEnabledDBNodes(ctx context.Context, req *pb.CountAllEnabledDBNodesRequest) (*pb.RPCCountResponse, error) { // 校验请求 _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) if err != nil { @@ -65,7 +65,7 @@ func (this *DBNodeService) CountAllEnabledDBNodes(ctx context.Context, req *pb.C if err != nil { return nil, err } - return &pb.CountAllEnabledDBNodesResponse{Count: count}, nil + return &pb.RPCCountResponse{Count: count}, nil } // 列出单页的数据库节点 diff --git a/internal/rpc/services/service_dns_domain.go b/internal/rpc/services/service_dns_domain.go new file mode 100644 index 00000000..a712f245 --- /dev/null +++ b/internal/rpc/services/service_dns_domain.go @@ -0,0 +1,98 @@ +package services + +import ( + "context" + "github.com/TeaOSLab/EdgeAPI/internal/db/models" + rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" +) + +// DNS域名相关服务 +type DNSDomainService struct { +} + +// 创建域名 +func (this *DNSDomainService) CreateDNSDomain(ctx context.Context, req *pb.CreateDNSDomainRequest) (*pb.CreateDNSDomainResponse, error) { + // 校验请求 + _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) + if err != nil { + return nil, err + } + + domainId, err := models.SharedDNSDomainDAO.CreateDomain(req.DnsProviderId, req.Name) + if err != nil { + return nil, err + } + return &pb.CreateDNSDomainResponse{DnsDomainId: domainId}, nil +} + +// 修改域名 +func (this *DNSDomainService) UpdateDNSDomain(ctx context.Context, req *pb.UpdateDNSDomainRequest) (*pb.RPCUpdateSuccess, error) { + // 校验请求 + _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) + if err != nil { + return nil, err + } + + err = models.SharedDNSDomainDAO.UpdateDomain(req.DnsDomainId, req.Name, req.IsOn) + if err != nil { + return nil, err + } + return rpcutils.RPCUpdateSuccess() +} + +// 删除域名 +func (this *DNSDomainService) DeleteDNSDomain(ctx context.Context, req *pb.DeleteDNSDomainRequest) (*pb.RPCDeleteSuccess, error) { + // 校验请求 + _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) + if err != nil { + return nil, err + } + + err = models.SharedDNSDomainDAO.DisableDNSDomain(req.DnsDomainId) + if err != nil { + return nil, err + } + return rpcutils.RPCDeleteSuccess() +} + +// 计算服务商下的域名数量 +func (this *DNSDomainService) CountAllEnabledDNSDomainsWithDNSProviderId(ctx context.Context, req *pb.CountAllEnabledDNSDomainsWithDNSProviderIdRequest) (*pb.RPCCountResponse, error) { + // 校验请求 + _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) + if err != nil { + return nil, err + } + + count, err := models.SharedDNSDomainDAO.CountAllEnabledDomainsWithProviderId(req.DnsProviderId) + if err != nil { + return nil, err + } + return &pb.RPCCountResponse{Count: count}, nil +} + +// 列出服务商下的所有域名 +func (this *DNSDomainService) FindAllEnabledDNSDomainsWithDNSProviderId(ctx context.Context, req *pb.FindAllEnabledDNSDomainsWithDNSProviderIdRequest) (*pb.FindAllEnabledDNSDomainsWithDNSProviderIdResponse, error) { + // 校验请求 + _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) + if err != nil { + return nil, err + } + + domains, err := models.SharedDNSDomainDAO.FindAllEnabledDomainsWithProviderId(req.DnsProviderId) + if err != nil { + return nil, err + } + + result := []*pb.DNSDomain{} + for _, domain := range domains { + result = append(result, &pb.DNSDomain{ + Id: int64(domain.Id), + Name: domain.Name, + IsOn: domain.IsOn == 1, + DataUpdatedAt: int64(domain.DataUpdatedAt), + }) + } + + return &pb.FindAllEnabledDNSDomainsWithDNSProviderIdResponse{DnsDomains: result}, nil +} diff --git a/internal/rpc/services/service_dns_provider.go b/internal/rpc/services/service_dns_provider.go index a42391c5..070d47c3 100644 --- a/internal/rpc/services/service_dns_provider.go +++ b/internal/rpc/services/service_dns_provider.go @@ -20,7 +20,7 @@ func (this *DNSProviderService) CreateDNSProvider(ctx context.Context, req *pb.C return nil, err } - providerId, err := models.SharedDNSProviderDAO.CreateDNSProvider(req.Type, req.Name, req.ApiParamsJSON, req.RoutesJSON) + providerId, err := models.SharedDNSProviderDAO.CreateDNSProvider(req.Type, req.Name, req.ApiParamsJSON) if err != nil { return nil, err } @@ -36,7 +36,7 @@ func (this *DNSProviderService) UpdateDNSProvider(ctx context.Context, req *pb.U return nil, err } - err = models.SharedDNSProviderDAO.UpdateDNSProvider(req.DnsProviderId, req.Name, req.ApiParamsJSON, req.RoutesJSON) + err = models.SharedDNSProviderDAO.UpdateDNSProvider(req.DnsProviderId, req.Name, req.ApiParamsJSON) if err != nil { return nil, err } @@ -44,7 +44,7 @@ func (this *DNSProviderService) UpdateDNSProvider(ctx context.Context, req *pb.U } // 计算服务商数量 -func (this *DNSProviderService) CountAllEnabledDNSProviders(ctx context.Context, req *pb.CountAllEnabledDNSProvidersRequest) (*pb.CountAllEnabledDNSProvidersResponse, error) { +func (this *DNSProviderService) CountAllEnabledDNSProviders(ctx context.Context, req *pb.CountAllEnabledDNSProvidersRequest) (*pb.RPCCountResponse, error) { // 校验请求 _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) if err != nil { @@ -55,7 +55,7 @@ func (this *DNSProviderService) CountAllEnabledDNSProviders(ctx context.Context, if err != nil { return nil, err } - return &pb.CountAllEnabledDNSProvidersResponse{Count: count}, nil + return &pb.RPCCountResponse{Count: count}, nil } // 列出单页服务商信息 @@ -78,7 +78,6 @@ func (this *DNSProviderService) ListEnabledDNSProviders(ctx context.Context, req Type: provider.Type, TypeName: dnsproviders.FindProviderTypeName(provider.Type), ApiParamsJSON: []byte(provider.ApiParams), - RoutesJSON: []byte(provider.Routes), DataUpdatedAt: int64(provider.DataUpdatedAt), }) } @@ -122,7 +121,6 @@ func (this *DNSProviderService) FindEnabledDNSProvider(ctx context.Context, req Type: provider.Type, TypeName: dnsproviders.FindProviderTypeName(provider.Type), ApiParamsJSON: []byte(provider.ApiParams), - RoutesJSON: []byte(provider.Routes), DataUpdatedAt: int64(provider.DataUpdatedAt), }}, nil } @@ -144,3 +142,16 @@ func (this *DNSProviderService) FindAllDNSProviderTypes(ctx context.Context, req } return &pb.FindAllDNSProviderTypesResponse{ProviderTypes: result}, nil } + +// 更新数据 +func (this *DNSProviderService) UpdateDNSProviderData(ctx context.Context, req *pb.UpdateDNSProviderDataRequest) (*pb.UpdateDNSProviderDataResponse, error) { + // 校验请求 + _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) + if err != nil { + return nil, err + } + + // TODO 需要实现 + + return &pb.UpdateDNSProviderDataResponse{IsOk: true}, nil +} diff --git a/internal/rpc/services/service_http_cache_policy.go b/internal/rpc/services/service_http_cache_policy.go index cd13d04a..d78c9828 100644 --- a/internal/rpc/services/service_http_cache_policy.go +++ b/internal/rpc/services/service_http_cache_policy.go @@ -82,7 +82,7 @@ func (this *HTTPCachePolicyService) DeleteHTTPCachePolicy(ctx context.Context, r } // 计算缓存策略数量 -func (this *HTTPCachePolicyService) CountAllEnabledHTTPCachePolicies(ctx context.Context, req *pb.CountAllEnabledHTTPCachePoliciesRequest) (*pb.CountAllEnabledHTTPCachePoliciesResponse, error) { +func (this *HTTPCachePolicyService) CountAllEnabledHTTPCachePolicies(ctx context.Context, req *pb.CountAllEnabledHTTPCachePoliciesRequest) (*pb.RPCCountResponse, error) { // 校验请求 _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) if err != nil { @@ -93,7 +93,7 @@ func (this *HTTPCachePolicyService) CountAllEnabledHTTPCachePolicies(ctx context if err != nil { return nil, err } - return &pb.CountAllEnabledHTTPCachePoliciesResponse{Count: count}, nil + return &pb.RPCCountResponse{Count: count}, nil } // 列出单页的缓存策略 diff --git a/internal/rpc/services/service_http_firewall_policy.go b/internal/rpc/services/service_http_firewall_policy.go index 82f48637..33be1256 100644 --- a/internal/rpc/services/service_http_firewall_policy.go +++ b/internal/rpc/services/service_http_firewall_policy.go @@ -268,7 +268,7 @@ func (this *HTTPFirewallPolicyService) UpdateHTTPFirewallInboundConfig(ctx conte } // 计算可用的防火墙策略数量 -func (this *HTTPFirewallPolicyService) CountAllEnabledFirewallPolicies(ctx context.Context, req *pb.CountAllEnabledFirewallPoliciesRequest) (*pb.CountAllEnabledFirewallPoliciesResponse, error) { +func (this *HTTPFirewallPolicyService) CountAllEnabledFirewallPolicies(ctx context.Context, req *pb.CountAllEnabledFirewallPoliciesRequest) (*pb.RPCCountResponse, error) { // 校验请求 _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) if err != nil { @@ -279,7 +279,7 @@ func (this *HTTPFirewallPolicyService) CountAllEnabledFirewallPolicies(ctx conte if err != nil { return nil, err } - return &pb.CountAllEnabledFirewallPoliciesResponse{Count: count}, nil + return &pb.RPCCountResponse{Count: count}, nil } // 列出单页的防火墙策略 diff --git a/internal/rpc/services/service_ip_item.go b/internal/rpc/services/service_ip_item.go index 765550e9..9685236d 100644 --- a/internal/rpc/services/service_ip_item.go +++ b/internal/rpc/services/service_ip_item.go @@ -60,7 +60,7 @@ func (this *IPItemService) DeleteIPItem(ctx context.Context, req *pb.DeleteIPIte } // 计算IP数量 -func (this *IPItemService) CountIPItemsWithListId(ctx context.Context, req *pb.CountIPItemsWithListIdRequest) (*pb.CountIPItemsWithListIdResponse, error) { +func (this *IPItemService) CountIPItemsWithListId(ctx context.Context, req *pb.CountIPItemsWithListIdRequest) (*pb.RPCCountResponse, error) { // 校验请求 _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) if err != nil { @@ -71,7 +71,7 @@ func (this *IPItemService) CountIPItemsWithListId(ctx context.Context, req *pb.C if err != nil { return nil, err } - return &pb.CountIPItemsWithListIdResponse{Count: count}, nil + return &pb.RPCCountResponse{Count: count}, nil } // 列出单页的IP diff --git a/internal/rpc/services/service_log.go b/internal/rpc/services/service_log.go index 79c98c15..145585ae 100644 --- a/internal/rpc/services/service_log.go +++ b/internal/rpc/services/service_log.go @@ -27,7 +27,7 @@ func (this *LogService) CreateLog(ctx context.Context, req *pb.CreateLogRequest) } // 计算日志数量 -func (this *LogService) CountLogs(ctx context.Context, req *pb.CountLogRequest) (*pb.CountLogResponse, error) { +func (this *LogService) CountLogs(ctx context.Context, req *pb.CountLogRequest) (*pb.RPCCountResponse, error) { // 校验请求 _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) if err != nil { @@ -38,7 +38,7 @@ func (this *LogService) CountLogs(ctx context.Context, req *pb.CountLogRequest) if err != nil { return nil, err } - return &pb.CountLogResponse{Count: count}, nil + return &pb.RPCCountResponse{Count: count}, nil } // 列出单页日志 diff --git a/internal/rpc/services/service_message.go b/internal/rpc/services/service_message.go index f762a38a..86fa3847 100644 --- a/internal/rpc/services/service_message.go +++ b/internal/rpc/services/service_message.go @@ -12,7 +12,7 @@ type MessageService struct { } // 计算未读消息数 -func (this *MessageService) CountUnreadMessages(ctx context.Context, req *pb.CountUnreadMessagesRequest) (*pb.CountUnreadMessagesResponse, error) { +func (this *MessageService) CountUnreadMessages(ctx context.Context, req *pb.CountUnreadMessagesRequest) (*pb.RPCCountResponse, error) { // 校验请求 _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) if err != nil { @@ -23,7 +23,7 @@ func (this *MessageService) CountUnreadMessages(ctx context.Context, req *pb.Cou if err != nil { return nil, err } - return &pb.CountUnreadMessagesResponse{Count: count}, nil + return &pb.RPCCountResponse{Count: count}, nil } // 列出单页未读消息 diff --git a/internal/rpc/services/service_node.go b/internal/rpc/services/service_node.go index cf6fe828..4d58a390 100644 --- a/internal/rpc/services/service_node.go +++ b/internal/rpc/services/service_node.go @@ -81,7 +81,7 @@ func (this *NodeService) RegisterClusterNode(ctx context.Context, req *pb.Regist } // 计算节点数量 -func (this *NodeService) CountAllEnabledNodes(ctx context.Context, req *pb.CountAllEnabledNodesRequest) (*pb.CountAllEnabledNodesResponse, error) { +func (this *NodeService) CountAllEnabledNodes(ctx context.Context, req *pb.CountAllEnabledNodesRequest) (*pb.RPCCountResponse, error) { // 校验请求 _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) if err != nil { @@ -93,11 +93,11 @@ func (this *NodeService) CountAllEnabledNodes(ctx context.Context, req *pb.Count return nil, err } - return &pb.CountAllEnabledNodesResponse{Count: count}, nil + return &pb.RPCCountResponse{Count: count}, nil } // 计算匹配的节点数量 -func (this *NodeService) CountAllEnabledNodesMatch(ctx context.Context, req *pb.CountAllEnabledNodesMatchRequest) (*pb.CountAllEnabledNodesMatchResponse, error) { +func (this *NodeService) CountAllEnabledNodesMatch(ctx context.Context, req *pb.CountAllEnabledNodesMatchRequest) (*pb.RPCCountResponse, error) { _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) if err != nil { return nil, err @@ -106,7 +106,7 @@ func (this *NodeService) CountAllEnabledNodesMatch(ctx context.Context, req *pb. if err != nil { return nil, err } - return &pb.CountAllEnabledNodesMatchResponse{Count: count}, nil + return &pb.RPCCountResponse{Count: count}, nil } // 列出单页的节点 @@ -539,7 +539,7 @@ func (this *NodeService) UpdateNodeConnectedAPINodes(ctx context.Context, req *p } // 计算使用某个认证的节点数量 -func (this *NodeService) CountAllEnabledNodesWithGrantId(ctx context.Context, req *pb.CountAllEnabledNodesWithGrantIdRequest) (*pb.CountAllEnabledNodesWithGrantIdResponse, error) { +func (this *NodeService) CountAllEnabledNodesWithGrantId(ctx context.Context, req *pb.CountAllEnabledNodesWithGrantIdRequest) (*pb.RPCCountResponse, error) { // 校验请求 _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) if err != nil { @@ -550,7 +550,7 @@ func (this *NodeService) CountAllEnabledNodesWithGrantId(ctx context.Context, re if err != nil { return nil, err } - return &pb.CountAllEnabledNodesWithGrantIdResponse{Count: count}, nil + return &pb.RPCCountResponse{Count: count}, nil } // 查找使用某个认证的所有节点 @@ -824,7 +824,7 @@ func (this *NodeService) UpdateNodeLogin(ctx context.Context, req *pb.UpdateNode } // 计算某个节点分组内的节点数量 -func (this *NodeService) CountAllEnabledNodesWithGroupId(ctx context.Context, req *pb.CountAllEnabledNodesWithGroupIdRequest) (*pb.CountAllEnabledNodesWithGroupIdResponse, error) { +func (this *NodeService) CountAllEnabledNodesWithGroupId(ctx context.Context, req *pb.CountAllEnabledNodesWithGroupIdRequest) (*pb.RPCCountResponse, error) { // 校验请求 _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) if err != nil { @@ -835,5 +835,5 @@ func (this *NodeService) CountAllEnabledNodesWithGroupId(ctx context.Context, re if err != nil { return nil, err } - return &pb.CountAllEnabledNodesWithGroupIdResponse{Count: count}, nil + return &pb.RPCCountResponse{Count: count}, nil } diff --git a/internal/rpc/services/service_node_cluster.go b/internal/rpc/services/service_node_cluster.go index fc024b9a..da5601e4 100644 --- a/internal/rpc/services/service_node_cluster.go +++ b/internal/rpc/services/service_node_cluster.go @@ -206,7 +206,7 @@ func (this *NodeClusterService) FindAllChangedNodeClusters(ctx context.Context, } // 计算所有集群数量 -func (this *NodeClusterService) CountAllEnabledNodeClusters(ctx context.Context, req *pb.CountAllEnabledNodeClustersRequest) (*pb.CountAllEnabledNodeClustersResponse, error) { +func (this *NodeClusterService) CountAllEnabledNodeClusters(ctx context.Context, req *pb.CountAllEnabledNodeClustersRequest) (*pb.RPCCountResponse, error) { _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) if err != nil { return nil, err @@ -217,7 +217,7 @@ func (this *NodeClusterService) CountAllEnabledNodeClusters(ctx context.Context, return nil, err } - return &pb.CountAllEnabledNodeClustersResponse{Count: count}, nil + return &pb.RPCCountResponse{Count: count}, nil } // 列出单页集群 @@ -312,7 +312,7 @@ func (this *NodeClusterService) ExecuteNodeClusterHealthCheck(ctx context.Contex } // 计算使用某个认证的集群数量 -func (this *NodeClusterService) CountAllEnabledNodeClustersWithGrantId(ctx context.Context, req *pb.CountAllEnabledNodeClustersWithGrantIdRequest) (*pb.CountAllEnabledNodeClustersWithGrantIdResponse, error) { +func (this *NodeClusterService) CountAllEnabledNodeClustersWithGrantId(ctx context.Context, req *pb.CountAllEnabledNodeClustersWithGrantIdRequest) (*pb.RPCCountResponse, error) { // 校验请求 _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) if err != nil { @@ -323,7 +323,7 @@ func (this *NodeClusterService) CountAllEnabledNodeClustersWithGrantId(ctx conte if err != nil { return nil, err } - return &pb.CountAllEnabledNodeClustersWithGrantIdResponse{Count: count}, nil + return &pb.RPCCountResponse{Count: count}, nil } // 查找使用某个认证的所有集群 @@ -367,12 +367,36 @@ func (this *NodeClusterService) FindEnabledNodeClusterDNS(ctx context.Context, r if dnsInfo == nil { return &pb.FindEnabledNodeClusterDNSResponse{ Name: "", - Domain: "", + Domain: nil, + Provider: nil, + }, nil + } + if dnsInfo.DnsDomainId == 0 { + return &pb.FindEnabledNodeClusterDNSResponse{ + Name: dnsInfo.DnsName, + Domain: nil, Provider: nil, }, nil } - provider, err := models.SharedDNSProviderDAO.FindEnabledDNSProvider(int64(dnsInfo.DnsProviderId)) + domain, err := models.SharedDNSDomainDAO.FindEnabledDNSDomain(int64(dnsInfo.DnsDomainId)) + if err != nil { + return nil, err + } + if domain == nil { + return &pb.FindEnabledNodeClusterDNSResponse{ + Name: dnsInfo.DnsName, + Domain: nil, + Provider: nil, + }, nil + } + pbDomain := &pb.DNSDomain{ + Id: int64(domain.Id), + Name: domain.Name, + IsOn: domain.IsOn == 1, + } + + provider, err := models.SharedDNSProviderDAO.FindEnabledDNSProvider(int64(domain.ProviderId)) if err != nil { return nil, err } @@ -388,13 +412,13 @@ func (this *NodeClusterService) FindEnabledNodeClusterDNS(ctx context.Context, r return &pb.FindEnabledNodeClusterDNSResponse{ Name: dnsInfo.DnsName, - Domain: dnsInfo.DnsDomain, + Domain: pbDomain, Provider: pbProvider, }, nil } // 计算使用某个DNS服务商的集群数量 -func (this *NodeClusterService) CountAllEnabledNodeClustersWithDNSProviderId(ctx context.Context, req *pb.CountAllEnabledNodeClustersWithDNSProviderIdRequest) (*pb.CountAllEnabledNodeClustersWithDNSProviderIdResponse, error) { +func (this *NodeClusterService) CountAllEnabledNodeClustersWithDNSProviderId(ctx context.Context, req *pb.CountAllEnabledNodeClustersWithDNSProviderIdRequest) (*pb.RPCCountResponse, error) { // 校验请求 _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) if err != nil { @@ -405,5 +429,20 @@ func (this *NodeClusterService) CountAllEnabledNodeClustersWithDNSProviderId(ctx if err != nil { return nil, err } - return &pb.CountAllEnabledNodeClustersWithDNSProviderIdResponse{Count: count}, nil + return &pb.RPCCountResponse{Count: count}, nil +} + +// 计算使用某个DNS域名的集群数量 +func (this *NodeClusterService) CountAllEnabledNodeClustersWithDNSDomainId(ctx context.Context, req *pb.CountAllEnabledNodeClustersWithDNSDomainIdRequest) (*pb.RPCCountResponse, error) { + // 校验请求 + _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) + if err != nil { + return nil, err + } + + count, err := models.SharedNodeClusterDAO.CountAllEnabledClustersWithDNSDomainId(req.DnsDomainId) + if err != nil { + return nil, err + } + return &pb.RPCCountResponse{Count: count}, nil } diff --git a/internal/rpc/services/service_node_grant.go b/internal/rpc/services/service_node_grant.go index 3e487576..f6fa1143 100644 --- a/internal/rpc/services/service_node_grant.go +++ b/internal/rpc/services/service_node_grant.go @@ -50,7 +50,7 @@ func (this *NodeGrantService) DisableNodeGrant(ctx context.Context, req *pb.Disa return &pb.DisableNodeGrantResponse{}, err } -func (this *NodeGrantService) CountAllEnabledNodeGrants(ctx context.Context, req *pb.CountAllEnabledNodeGrantsRequest) (*pb.CountAllEnabledNodeGrantsResponse, error) { +func (this *NodeGrantService) CountAllEnabledNodeGrants(ctx context.Context, req *pb.CountAllEnabledNodeGrantsRequest) (*pb.RPCCountResponse, error) { _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) if err != nil { return nil, err @@ -59,7 +59,7 @@ func (this *NodeGrantService) CountAllEnabledNodeGrants(ctx context.Context, req if err != nil { return nil, err } - return &pb.CountAllEnabledNodeGrantsResponse{Count: count}, nil + return &pb.RPCCountResponse{Count: count}, nil } func (this *NodeGrantService) ListEnabledNodeGrants(ctx context.Context, req *pb.ListEnabledNodeGrantsRequest) (*pb.ListEnabledNodeGrantsResponse, error) { diff --git a/internal/rpc/services/service_node_log.go b/internal/rpc/services/service_node_log.go index df4de2a6..8664dd94 100644 --- a/internal/rpc/services/service_node_log.go +++ b/internal/rpc/services/service_node_log.go @@ -28,7 +28,7 @@ func (this *NodeLogService) CreateNodeLogs(ctx context.Context, req *pb.CreateNo } // 查询日志数量 -func (this *NodeLogService) CountNodeLogs(ctx context.Context, req *pb.CountNodeLogsRequest) (*pb.CountNodeLogsResponse, error) { +func (this *NodeLogService) CountNodeLogs(ctx context.Context, req *pb.CountNodeLogsRequest) (*pb.RPCCountResponse, error) { _, _, err := rpcutils.ValidateRequest(ctx) if err != nil { return nil, err @@ -38,7 +38,7 @@ func (this *NodeLogService) CountNodeLogs(ctx context.Context, req *pb.CountNode if err != nil { return nil, err } - return &pb.CountNodeLogsResponse{Count: count}, nil + return &pb.RPCCountResponse{Count: count}, nil } // 列出单页日志 diff --git a/internal/rpc/services/service_server.go b/internal/rpc/services/service_server.go index 0c16bc59..33167d25 100644 --- a/internal/rpc/services/service_server.go +++ b/internal/rpc/services/service_server.go @@ -348,7 +348,7 @@ func (this *ServerService) UpdateServerNames(ctx context.Context, req *pb.Update } // 计算服务数量 -func (this *ServerService) CountAllEnabledServersMatch(ctx context.Context, req *pb.CountAllEnabledServersMatchRequest) (*pb.CountAllEnabledServersMatchResponse, error) { +func (this *ServerService) CountAllEnabledServersMatch(ctx context.Context, req *pb.CountAllEnabledServersMatchRequest) (*pb.RPCCountResponse, error) { // 校验请求 _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) if err != nil { @@ -359,7 +359,7 @@ func (this *ServerService) CountAllEnabledServersMatch(ctx context.Context, req return nil, err } - return &pb.CountAllEnabledServersMatchResponse{Count: count}, nil + return &pb.RPCCountResponse{Count: count}, nil } // 列出单页服务 @@ -639,7 +639,7 @@ func (this *ServerService) FindAndInitServerWebConfig(ctx context.Context, req * } // 计算使用某个SSL证书的服务数量 -func (this *ServerService) CountAllEnabledServersWithSSLCertId(ctx context.Context, req *pb.CountAllEnabledServersWithSSLCertIdRequest) (*pb.CountAllEnabledServersWithSSLCertIdResponse, error) { +func (this *ServerService) CountAllEnabledServersWithSSLCertId(ctx context.Context, req *pb.CountAllEnabledServersWithSSLCertIdRequest) (*pb.RPCCountResponse, error) { // 校验请求 _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) if err != nil { @@ -652,7 +652,7 @@ func (this *ServerService) CountAllEnabledServersWithSSLCertId(ctx context.Conte } if len(policyIds) == 0 { - return &pb.CountAllEnabledServersWithSSLCertIdResponse{Count: 0}, nil + return &pb.RPCCountResponse{Count: 0}, nil } count, err := models.SharedServerDAO.CountAllEnabledServersWithSSLPolicyIds(policyIds) @@ -660,7 +660,7 @@ func (this *ServerService) CountAllEnabledServersWithSSLCertId(ctx context.Conte return nil, err } - return &pb.CountAllEnabledServersWithSSLCertIdResponse{Count: count}, nil + return &pb.RPCCountResponse{Count: count}, nil } // 查找使用某个SSL证书的所有服务 @@ -696,7 +696,7 @@ func (this *ServerService) FindAllEnabledServersWithSSLCertId(ctx context.Contex } // 计算使用某个缓存策略的服务数量 -func (this *ServerService) CountAllEnabledServersWithCachePolicyId(ctx context.Context, req *pb.CountAllEnabledServersWithCachePolicyIdRequest) (*pb.CountAllEnabledServersWithCachePolicyIdResponse, error) { +func (this *ServerService) CountAllEnabledServersWithCachePolicyId(ctx context.Context, req *pb.CountAllEnabledServersWithCachePolicyIdRequest) (*pb.RPCCountResponse, error) { // 校验请求 _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) if err != nil { @@ -708,14 +708,14 @@ func (this *ServerService) CountAllEnabledServersWithCachePolicyId(ctx context.C return nil, err } if len(webIds) == 0 { - return &pb.CountAllEnabledServersWithCachePolicyIdResponse{Count: 0}, nil + return &pb.RPCCountResponse{Count: 0}, nil } countServers, err := models.SharedServerDAO.CountEnabledServersWithWebIds(webIds) if err != nil { return nil, err } - return &pb.CountAllEnabledServersWithCachePolicyIdResponse{Count: countServers}, nil + return &pb.RPCCountResponse{Count: countServers}, nil } // 查找使用某个缓存策略的所有服务 @@ -752,7 +752,7 @@ func (this *ServerService) FindAllEnabledServersWithCachePolicyId(ctx context.Co } // 计算使用某个WAF策略的服务数量 -func (this *ServerService) CountAllEnabledServersWithHTTPFirewallPolicyId(ctx context.Context, req *pb.CountAllEnabledServersWithHTTPFirewallPolicyIdRequest) (*pb.CountAllEnabledServersWithHTTPFirewallPolicyIdResponse, error) { +func (this *ServerService) CountAllEnabledServersWithHTTPFirewallPolicyId(ctx context.Context, req *pb.CountAllEnabledServersWithHTTPFirewallPolicyIdRequest) (*pb.RPCCountResponse, error) { // 校验请求 _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) if err != nil { @@ -765,14 +765,14 @@ func (this *ServerService) CountAllEnabledServersWithHTTPFirewallPolicyId(ctx co } if len(webIds) == 0 { - return &pb.CountAllEnabledServersWithHTTPFirewallPolicyIdResponse{Count: 0}, nil + return &pb.RPCCountResponse{Count: 0}, nil } countServers, err := models.SharedServerDAO.CountEnabledServersWithWebIds(webIds) if err != nil { return nil, err } - return &pb.CountAllEnabledServersWithHTTPFirewallPolicyIdResponse{Count: countServers}, nil + return &pb.RPCCountResponse{Count: countServers}, nil } // 查找使用某个WAF策略的所有服务 @@ -810,7 +810,7 @@ func (this *ServerService) FindAllEnabledServersWithHTTPFirewallPolicyId(ctx con } // 计算运行在某个集群上的所有服务数量 -func (this *ServerService) CountAllEnabledServersWithNodeClusterId(ctx context.Context, req *pb.CountAllEnabledServersWithNodeClusterIdRequest) (*pb.CountAllEnabledServersWithNodeClusterIdResponse, error) { +func (this *ServerService) CountAllEnabledServersWithNodeClusterId(ctx context.Context, req *pb.CountAllEnabledServersWithNodeClusterIdRequest) (*pb.RPCCountResponse, error) { // 校验请求 _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) if err != nil { @@ -821,11 +821,11 @@ func (this *ServerService) CountAllEnabledServersWithNodeClusterId(ctx context.C if err != nil { return nil, err } - return &pb.CountAllEnabledServersWithNodeClusterIdResponse{Count: count}, nil + return &pb.RPCCountResponse{Count: count}, nil } // 计算使用某个分组的服务数量 -func (this *ServerService) CountAllEnabledServersWithGroupId(ctx context.Context, req *pb.CountAllEnabledServersWithGroupIdRequest) (*pb.CountAllEnabledServersWithGroupIdResponse, error) { +func (this *ServerService) CountAllEnabledServersWithGroupId(ctx context.Context, req *pb.CountAllEnabledServersWithGroupIdRequest) (*pb.RPCCountResponse, error) { // 校验请求 _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) if err != nil { @@ -836,7 +836,7 @@ func (this *ServerService) CountAllEnabledServersWithGroupId(ctx context.Context if err != nil { return nil, err } - return &pb.CountAllEnabledServersWithGroupIdResponse{ + return &pb.RPCCountResponse{ Count: count, }, nil } diff --git a/internal/rpc/services/service_ssl_cert.go b/internal/rpc/services/service_ssl_cert.go index 0f9c2209..cc67cb3d 100644 --- a/internal/rpc/services/service_ssl_cert.go +++ b/internal/rpc/services/service_ssl_cert.go @@ -82,7 +82,7 @@ func (this *SSLCertService) DeleteSSLCert(ctx context.Context, req *pb.DeleteSSL } // 计算匹配的Cert数量 -func (this *SSLCertService) CountSSLCerts(ctx context.Context, req *pb.CountSSLCertRequest) (*pb.CountSSLCertResponse, error) { +func (this *SSLCertService) CountSSLCerts(ctx context.Context, req *pb.CountSSLCertRequest) (*pb.RPCCountResponse, error) { // 校验请求 _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) if err != nil { @@ -94,7 +94,7 @@ func (this *SSLCertService) CountSSLCerts(ctx context.Context, req *pb.CountSSLC return nil, err } - return &pb.CountSSLCertResponse{ + return &pb.RPCCountResponse{ Count: count, }, nil }