mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-07 02:20:24 +08:00
同步域名解析时自动剔除相同的节点A记录
This commit is contained in:
@@ -470,6 +470,7 @@ func (this *DNSDomainService) findClusterDNSChanges(cluster *models.NodeCluster,
|
|||||||
|
|
||||||
// 新增的节点域名
|
// 新增的节点域名
|
||||||
var nodeKeys = []string{}
|
var nodeKeys = []string{}
|
||||||
|
var addingNodeRecordKeysMap = map[string]bool{} // clusterDnsName_type_ip_route
|
||||||
for _, node := range nodes {
|
for _, node := range nodes {
|
||||||
ipAddresses, err := models.SharedNodeIPAddressDAO.FindNodeAccessAndUpIPAddresses(tx, int64(node.Id), nodeconfigs.NodeRoleNode)
|
ipAddresses, err := models.SharedNodeIPAddressDAO.FindNodeAccessAndUpIPAddresses(tx, int64(node.Id), nodeconfigs.NodeRoleNode)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -499,7 +500,7 @@ func (this *DNSDomainService) findClusterDNSChanges(cluster *models.NodeCluster,
|
|||||||
if net.ParseIP(ip) == nil {
|
if net.ParseIP(ip) == nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
key := ip + "_" + route
|
var key = ip + "_" + route
|
||||||
nodeKeys = append(nodeKeys, key)
|
nodeKeys = append(nodeKeys, key)
|
||||||
record, ok := nodeRecordMapping[key]
|
record, ok := nodeRecordMapping[key]
|
||||||
if !ok {
|
if !ok {
|
||||||
@@ -507,6 +508,14 @@ func (this *DNSDomainService) findClusterDNSChanges(cluster *models.NodeCluster,
|
|||||||
if utils.IsIPv6(ip) {
|
if utils.IsIPv6(ip) {
|
||||||
recordType = dnstypes.RecordTypeAAAA
|
recordType = dnstypes.RecordTypeAAAA
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 避免添加重复的记录
|
||||||
|
var fullKey = clusterDnsName + "_" + recordType + "_" + ip + "_" + route
|
||||||
|
if addingNodeRecordKeysMap[fullKey] {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
addingNodeRecordKeysMap[fullKey] = true
|
||||||
|
|
||||||
result = append(result, maps.Map{
|
result = append(result, maps.Map{
|
||||||
"action": "create",
|
"action": "create",
|
||||||
"record": &dnstypes.Record{
|
"record": &dnstypes.Record{
|
||||||
|
|||||||
@@ -361,6 +361,7 @@ func (this *DNSTaskExecutor) doCluster(taskId int64, clusterId int64) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
var isChanged = false
|
var isChanged = false
|
||||||
|
var addingNodeRecordKeysMap = map[string]bool{} // clusterDnsName_type_ip_route
|
||||||
for _, node := range nodes {
|
for _, node := range nodes {
|
||||||
routes, err := node.DNSRouteCodesForDomainId(domainId)
|
routes, err := node.DNSRouteCodesForDomainId(domainId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -398,6 +399,14 @@ func (this *DNSTaskExecutor) doCluster(taskId int64, clusterId int64) error {
|
|||||||
if utils.IsIPv6(ip) {
|
if utils.IsIPv6(ip) {
|
||||||
recordType = dnstypes.RecordTypeAAAA
|
recordType = dnstypes.RecordTypeAAAA
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 避免添加重复的记录
|
||||||
|
var fullKey = clusterDNSName + "_" + recordType + "_" + ip + "_" + route
|
||||||
|
if addingNodeRecordKeysMap[fullKey] {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
addingNodeRecordKeysMap[fullKey] = true
|
||||||
|
|
||||||
err = manager.AddRecord(domain, &dnstypes.Record{
|
err = manager.AddRecord(domain, &dnstypes.Record{
|
||||||
Id: "",
|
Id: "",
|
||||||
Name: clusterDNSName,
|
Name: clusterDNSName,
|
||||||
|
|||||||
Reference in New Issue
Block a user