From 2eb81b52a005622430fca008dac1e23e163794fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Sun, 15 Nov 2020 16:28:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E9=9B=86=E7=BE=A4=E7=9A=84?= =?UTF-8?q?=E6=97=B6=E5=80=99=E5=8F=AF=E4=BB=A5=E5=A1=AB=E5=86=99DNS?= =?UTF-8?q?=E4=BF=A1=E6=81=AF/=E9=9B=86=E7=BE=A4=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E9=A1=B5=E5=A2=9E=E5=8A=A0DNS=E8=AE=BE=E7=BD=AE=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/db/models/dns_domain_dao.go | 16 ++++++++++++++++ internal/db/models/node_cluster_dao.go | 4 +++- internal/rpc/services/service_dns_domain.go | 15 +++++++++++++++ internal/rpc/services/service_node_cluster.go | 2 +- 4 files changed, 35 insertions(+), 2 deletions(-) diff --git a/internal/db/models/dns_domain_dao.go b/internal/db/models/dns_domain_dao.go index 77d8bcfc..7ca935b3 100644 --- a/internal/db/models/dns_domain_dao.go +++ b/internal/db/models/dns_domain_dao.go @@ -195,3 +195,19 @@ func (this *DNSDomainDAO) FindDomainRouteName(domainId int64, routeCode string) } return "", nil } + +// 判断是否有域名可选 +func (this *DNSDomainDAO) ExistAvailableDomains() (bool, error) { + subQuery, err := SharedDNSProviderDAO.Query(). + Where("state=1"). // 这里要使用非变量 + ResultPk(). + AsSQL() + if err != nil { + return false, err + } + return this.Query(). + State(DNSDomainStateEnabled). + Attr("isOn", true). + Where("providerId IN (" + subQuery + ")"). + Exist() +} diff --git a/internal/db/models/node_cluster_dao.go b/internal/db/models/node_cluster_dao.go index 5b8c506a..2d9e53c9 100644 --- a/internal/db/models/node_cluster_dao.go +++ b/internal/db/models/node_cluster_dao.go @@ -100,7 +100,7 @@ func (this *NodeClusterDAO) FindAllEnableClusters() (result []*NodeCluster, err } // 创建集群 -func (this *NodeClusterDAO) CreateCluster(name string, grantId int64, installDir string) (clusterId int64, err error) { +func (this *NodeClusterDAO) CreateCluster(name string, grantId int64, installDir string, dnsDomainId int64, dnsName string) (clusterId int64, err error) { uniqueId, err := this.genUniqueId() if err != nil { return 0, err @@ -116,6 +116,8 @@ func (this *NodeClusterDAO) CreateCluster(name string, grantId int64, installDir op.Name = name op.GrantId = grantId op.InstallDir = installDir + op.DnsDomainId = dnsDomainId + op.DnsName = dnsName op.UseAllAPINodes = 1 op.ApiNodes = "[]" op.UniqueId = uniqueId diff --git a/internal/rpc/services/service_dns_domain.go b/internal/rpc/services/service_dns_domain.go index 648361e1..3931b9ac 100644 --- a/internal/rpc/services/service_dns_domain.go +++ b/internal/rpc/services/service_dns_domain.go @@ -416,6 +416,21 @@ func (this *DNSDomainService) FindAllDNSDomainRoutes(ctx context.Context, req *p return &pb.FindAllDNSDomainRoutesResponse{Routes: pbRoutes}, nil } +// 判断是否有域名可选 +func (this *DNSDomainService) ExistAvailableDomains(ctx context.Context, req *pb.ExistAvailableDomainsRequest) (*pb.ExistAvailableDomainsResponse, error) { + // 校验请求 + _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) + if err != nil { + return nil, err + } + + exist, err := models.SharedDNSDomainDAO.ExistAvailableDomains() + if err != nil { + return nil, err + } + return &pb.ExistAvailableDomainsResponse{Exist: exist}, nil +} + // 转换域名信息 func (this *DNSDomainService) convertDomainToPB(domain *models.DNSDomain) (*pb.DNSDomain, error) { domainId := int64(domain.Id) diff --git a/internal/rpc/services/service_node_cluster.go b/internal/rpc/services/service_node_cluster.go index e18cb690..7e54a875 100644 --- a/internal/rpc/services/service_node_cluster.go +++ b/internal/rpc/services/service_node_cluster.go @@ -23,7 +23,7 @@ func (this *NodeClusterService) CreateNodeCluster(ctx context.Context, req *pb.C return nil, err } - clusterId, err := models.SharedNodeClusterDAO.CreateCluster(req.Name, req.GrantId, req.InstallDir) + clusterId, err := models.SharedNodeClusterDAO.CreateCluster(req.Name, req.GrantId, req.InstallDir, req.DnsDomainId, req.DnsName) if err != nil { return nil, err }