mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 07:50:25 +08:00 
			
		
		
		
	实现完整的集群、域名同步
This commit is contained in:
		@@ -479,3 +479,41 @@ func (this *NodeClusterService) UpdateNodeClusterDNS(ctx context.Context, req *p
 | 
			
		||||
	}
 | 
			
		||||
	return rpcutils.Success()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 检查集群的DNS是否有变化
 | 
			
		||||
func (this *NodeClusterService) CheckNodeClusterDNSChanges(ctx context.Context, req *pb.CheckNodeClusterDNSChangesRequest) (*pb.CheckNodeClusterDNSChangesResponse, error) {
 | 
			
		||||
	// 校验请求
 | 
			
		||||
	_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	cluster, err := models.SharedNodeClusterDAO.FindClusterDNSInfo(req.NodeClusterId)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if cluster == nil || len(cluster.DnsName) == 0 || cluster.DnsDomainId <= 0 {
 | 
			
		||||
		return &pb.CheckNodeClusterDNSChangesResponse{IsChanged: false}, nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	domainId := int64(cluster.DnsDomainId)
 | 
			
		||||
	domain, err := models.SharedDNSDomainDAO.FindEnabledDNSDomain(domainId)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if domain == nil {
 | 
			
		||||
		return &pb.CheckNodeClusterDNSChangesResponse{IsChanged: false}, nil
 | 
			
		||||
	}
 | 
			
		||||
	records, err := domain.DecodeRecords()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	service := &DNSDomainService{}
 | 
			
		||||
	changes, _, _, _, _, err := service.findClusterDNSChanges(cluster, records, domain.Name)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return &pb.CheckNodeClusterDNSChangesResponse{IsChanged: len(changes) > 0}, nil
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user