查询节点DNS信息时可以区分节点是否已安装

This commit is contained in:
刘祥超
2023-03-18 16:05:10 +08:00
parent 2c17675b6a
commit 8c4d2e7301
6 changed files with 50 additions and 12 deletions

View File

@@ -105,7 +105,7 @@ func CheckClusterDNS(tx *dbs.Tx, cluster *models.NodeCluster, checkNodeIssues bo
// 检查节点 // 检查节点
if checkNodeIssues { if checkNodeIssues {
nodes, err := models.SharedNodeDAO.FindAllEnabledNodesDNSWithClusterId(tx, clusterId, true, clusterDNSConfig != nil && clusterDNSConfig.IncludingLnNodes) nodes, err := models.SharedNodeDAO.FindAllEnabledNodesDNSWithClusterId(tx, clusterId, true, clusterDNSConfig != nil && clusterDNSConfig.IncludingLnNodes, true)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@@ -840,7 +840,24 @@ func (this *NodeDAO) UpdateNodeStatus(tx *dbs.Tx, nodeId int64, nodeStatus *node
Set("isActive", true). Set("isActive", true).
Set("status", nodeStatusJSON). Set("status", nodeStatusJSON).
Update() Update()
return err if err != nil {
return err
}
// 自动设置安装状态
isInstalled, err := this.Query(tx).
Pk(nodeId).
Result("isInstalled").
FindBoolCol()
if err != nil {
return err
}
if !isInstalled {
return this.UpdateNodeIsInstalled(tx, nodeId, true)
}
return nil
} }
// FindNodeStatus 获取节点状态 // FindNodeStatus 获取节点状态
@@ -885,7 +902,10 @@ func (this *NodeDAO) UpdateNodeIsInstalled(tx *dbs.Tx, nodeId int64, isInstalled
Set("isInstalled", isInstalled). Set("isInstalled", isInstalled).
Set("installStatus", "null"). // 重置安装状态 Set("installStatus", "null"). // 重置安装状态
Update() Update()
return err if err != nil {
return err
}
return this.NotifyDNSUpdate(tx, nodeId)
} }
// FindNodeInstallStatus 查询节点的安装状态 // FindNodeInstallStatus 查询节点的安装状态
@@ -1495,7 +1515,7 @@ func (this *NodeDAO) UpdateNodeRegionId(tx *dbs.Tx, nodeId int64, regionId int64
} }
// FindAllEnabledNodesDNSWithClusterId 获取一个集群的节点DNS信息 // FindAllEnabledNodesDNSWithClusterId 获取一个集群的节点DNS信息
func (this *NodeDAO) FindAllEnabledNodesDNSWithClusterId(tx *dbs.Tx, clusterId int64, includeSecondaryNodes bool, includingLnNodes bool) (result []*Node, err error) { func (this *NodeDAO) FindAllEnabledNodesDNSWithClusterId(tx *dbs.Tx, clusterId int64, includeSecondaryNodes bool, includingLnNodes bool, isInstalled bool) (result []*Node, err error) {
if clusterId <= 0 { if clusterId <= 0 {
return nil, nil return nil, nil
} }
@@ -1514,6 +1534,7 @@ func (this *NodeDAO) FindAllEnabledNodesDNSWithClusterId(tx *dbs.Tx, clusterId i
State(NodeStateEnabled). State(NodeStateEnabled).
Attr("isOn", true). Attr("isOn", true).
Attr("isUp", true). Attr("isUp", true).
Attr("isInstalled", isInstalled).
Result("id", "name", "dnsRoutes", "isOn"). Result("id", "name", "dnsRoutes", "isOn").
DescPk(). DescPk().
Slice(&result). Slice(&result).

View File

@@ -454,7 +454,7 @@ func (this *DNSDomainService) findClusterDNSChanges(cluster *models.NodeCluster,
} }
// 节点域名 // 节点域名
nodes, err := models.SharedNodeDAO.FindAllEnabledNodesDNSWithClusterId(tx, clusterId, true, dnsConfig != nil && dnsConfig.IncludingLnNodes) nodes, err := models.SharedNodeDAO.FindAllEnabledNodesDNSWithClusterId(tx, clusterId, true, dnsConfig != nil && dnsConfig.IncludingLnNodes, true)
if err != nil { if err != nil {
return nil, nil, nil, 0, 0, false, false, err return nil, nil, nil, 0, 0, false, false, err
} }

View File

@@ -812,6 +812,7 @@ func (this *NodeService) UpdateNodeStatus(ctx context.Context, req *pb.UpdateNod
if err != nil { if err != nil {
return nil, err return nil, err
} }
return this.Success() return this.Success()
} }
@@ -1321,7 +1322,7 @@ func (this *NodeService) FindAllEnabledNodesDNSWithNodeClusterId(ctx context.Con
return nil, err return nil, err
} }
nodes, err := models.SharedNodeDAO.FindAllEnabledNodesDNSWithClusterId(tx, req.NodeClusterId, true, dnsConfig != nil && dnsConfig.IncludingLnNodes) nodes, err := models.SharedNodeDAO.FindAllEnabledNodesDNSWithClusterId(tx, req.NodeClusterId, true, dnsConfig != nil && dnsConfig.IncludingLnNodes, req.IsInstalled)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@@ -642,12 +642,28 @@ func (this *NodeClusterService) FindAllEnabledNodeClustersWithDNSDomainId(ctx co
result := []*pb.NodeCluster{} result := []*pb.NodeCluster{}
for _, cluster := range clusters { for _, cluster := range clusters {
// 默认线路
domainId := int64(cluster.DnsDomainId)
domain, err := dns.SharedDNSDomainDAO.FindEnabledDNSDomain(tx, domainId, nil)
if err != nil {
return nil, err
}
if domain == nil {
continue
}
defaultRoute, err := dnsutils.FindDefaultDomainRoute(tx, domain)
if err != nil {
return nil, err
}
result = append(result, &pb.NodeCluster{ result = append(result, &pb.NodeCluster{
Id: int64(cluster.Id), Id: int64(cluster.Id),
Name: cluster.Name, Name: cluster.Name,
DnsName: cluster.DnsName, DnsName: cluster.DnsName,
DnsDomainId: int64(cluster.DnsDomainId), DnsDomainId: int64(cluster.DnsDomainId),
IsOn: cluster.IsOn, DnsDefaultRoute: defaultRoute,
IsOn: cluster.IsOn,
}) })
} }
return &pb.FindAllEnabledNodeClustersWithDNSDomainIdResponse{NodeClusters: result}, nil return &pb.FindAllEnabledNodeClustersWithDNSDomainIdResponse{NodeClusters: result}, nil

View File

@@ -363,7 +363,7 @@ func (this *DNSTaskExecutor) doCluster(taskId int64, clusterId int64) error {
// 当前的节点记录 // 当前的节点记录
var newRecordKeys = []string{} var newRecordKeys = []string{}
nodes, err := models.SharedNodeDAO.FindAllEnabledNodesDNSWithClusterId(tx, clusterId, true, dnsConfig != nil && dnsConfig.IncludingLnNodes) nodes, err := models.SharedNodeDAO.FindAllEnabledNodesDNSWithClusterId(tx, clusterId, true, dnsConfig != nil && dnsConfig.IncludingLnNodes, true)
if err != nil { if err != nil {
return err return err
} }