Files
EdgeAPI/internal/rpc/services/service_dns.go

54 lines
1.3 KiB
Go
Raw Normal View History

2020-11-14 21:28:07 +08:00
package services
import (
"context"
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
"github.com/TeaOSLab/EdgeAPI/internal/db/models/dns/dnsutils"
2020-11-14 21:28:07 +08:00
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
)
2021-06-07 10:02:07 +08:00
// DNSService DNS相关服务
2020-11-14 21:28:07 +08:00
type DNSService struct {
BaseService
2020-11-14 21:28:07 +08:00
}
2021-06-07 10:02:07 +08:00
// FindAllDNSIssues 查找问题
2020-11-14 21:28:07 +08:00
func (this *DNSService) FindAllDNSIssues(ctx context.Context, req *pb.FindAllDNSIssuesRequest) (*pb.FindAllDNSIssuesResponse, error) {
// 校验请求
2022-07-22 14:35:17 +08:00
_, err := this.ValidateAdmin(ctx)
2020-11-14 21:28:07 +08:00
if err != nil {
return nil, err
}
2021-06-07 10:02:07 +08:00
var result = []*pb.DNSIssue{}
var tx = this.NullTx()
var clusters []*models.NodeCluster
2020-11-14 21:28:07 +08:00
2021-06-07 10:02:07 +08:00
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}
2020-11-14 21:28:07 +08:00
}
for _, cluster := range clusters {
issues, err := dnsutils.CheckClusterDNS(tx, cluster, true)
2020-11-14 21:28:07 +08:00
if err != nil {
return nil, err
}
if len(issues) > 0 {
result = append(result, issues...)
}
}
return &pb.FindAllDNSIssuesResponse{Issues: result}, nil
}