初步实现多集群共享节点

This commit is contained in:
刘祥超
2021-07-31 22:23:11 +08:00
parent 87f032bebd
commit 9e1e57dfd8
15 changed files with 468 additions and 116 deletions

View File

@@ -380,7 +380,7 @@ func (this *NodeClusterDAO) FindAllEnabledClustersWithDNSDomainId(tx *dbs.Tx, dn
_, err = this.Query(tx).
State(NodeClusterStateEnabled).
Attr("dnsDomainId", dnsDomainId).
Result("id", "name", "dnsName", "dnsDomainId").
Result("id", "name", "dnsName", "dnsDomainId", "isOn").
Slice(&result).
FindAll()
return
@@ -391,7 +391,7 @@ func (this *NodeClusterDAO) FindAllEnabledClustersHaveDNSDomain(tx *dbs.Tx) (res
_, err = this.Query(tx).
State(NodeClusterStateEnabled).
Gt("dnsDomainId", 0).
Result("id", "name", "dnsName", "dnsDomainId").
Result("id", "name", "dnsName", "dnsDomainId", "isOn").
Slice(&result).
FindAll()
return
@@ -409,7 +409,7 @@ func (this *NodeClusterDAO) FindClusterGrantId(tx *dbs.Tx, clusterId int64) (int
func (this *NodeClusterDAO) FindClusterDNSInfo(tx *dbs.Tx, clusterId int64) (*NodeCluster, error) {
one, err := this.Query(tx).
Pk(clusterId).
Result("id", "name", "dnsName", "dnsDomainId", "dns").
Result("id", "name", "dnsName", "dnsDomainId", "dns", "isOn").
Find()
if err != nil {
return nil, err
@@ -499,7 +499,7 @@ func (this *NodeClusterDAO) CheckClusterDNS(tx *dbs.Tx, cluster *NodeCluster) (i
// TODO 检查域名是否已解析
// 检查节点
nodes, err := SharedNodeDAO.FindAllEnabledNodesDNSWithClusterId(tx, clusterId)
nodes, err := SharedNodeDAO.FindAllEnabledNodesDNSWithClusterId(tx, clusterId, true)
if err != nil {
return nil, err
}
@@ -837,6 +837,36 @@ func (this *NodeClusterDAO) FindLatestNodeClusters(tx *dbs.Tx, size int64) (resu
return
}
// CheckNodeClusterIsOn 获取集群是否正在启用状态
func (this *NodeClusterDAO) CheckNodeClusterIsOn(tx *dbs.Tx, clusterId int64) (bool, error) {
return this.Query(tx).
Pk(clusterId).
State(NodeClusterStateEnabled).
Attr("isOn", true).
Exist()
}
// FindEnabledNodeClustersWithIds 查找一组集群
func (this *NodeClusterDAO) FindEnabledNodeClustersWithIds(tx *dbs.Tx, clusterIds []int64) (result []*NodeCluster, err error) {
if len(clusterIds) == 0 {
return
}
for _, clusterId := range clusterIds {
cluster, err := this.Query(tx).
Pk(clusterId).
State(NodeClusterStateEnabled).
Find()
if err != nil {
return nil, err
}
if cluster == nil {
continue
}
result = append(result, cluster.(*NodeCluster))
}
return
}
// NotifyUpdate 通知更新
func (this *NodeClusterDAO) NotifyUpdate(tx *dbs.Tx, clusterId int64) error {
return SharedNodeTaskDAO.CreateClusterTask(tx, clusterId, NodeTaskTypeConfigChanged)