Initial commit (code only without large binaries)
This commit is contained in:
53
EdgeAPI/internal/rpc/services/service_dns.go
Normal file
53
EdgeAPI/internal/rpc/services/service_dns.go
Normal file
@@ -0,0 +1,53 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models/dns/dnsutils"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||
)
|
||||
|
||||
// DNSService DNS相关服务
|
||||
type DNSService struct {
|
||||
BaseService
|
||||
}
|
||||
|
||||
// FindAllDNSIssues 查找问题
|
||||
func (this *DNSService) FindAllDNSIssues(ctx context.Context, req *pb.FindAllDNSIssuesRequest) (*pb.FindAllDNSIssuesResponse, error) {
|
||||
// 校验请求
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var result = []*pb.DNSIssue{}
|
||||
var tx = this.NullTx()
|
||||
var clusters []*models.NodeCluster
|
||||
|
||||
if req.NodeClusterId <= 0 {
|
||||
clusters, err = models.SharedNodeClusterDAO.FindAllEnabledClustersHaveDNSDomain(tx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
cluster, err := models.SharedNodeClusterDAO.FindEnabledNodeCluster(tx, req.NodeClusterId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if cluster == nil {
|
||||
return &pb.FindAllDNSIssuesResponse{Issues: nil}, nil
|
||||
}
|
||||
clusters = []*models.NodeCluster{cluster}
|
||||
}
|
||||
for _, cluster := range clusters {
|
||||
issues, err := dnsutils.CheckClusterDNS(tx, cluster, true)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(issues) > 0 {
|
||||
result = append(result, issues...)
|
||||
}
|
||||
}
|
||||
|
||||
return &pb.FindAllDNSIssuesResponse{Issues: result}, nil
|
||||
}
|
||||
Reference in New Issue
Block a user