48 lines
993 B
Go
48 lines
993 B
Go
package models
|
|
|
|
import (
|
|
"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
|
|
"github.com/iwind/TeaGo/dbs"
|
|
)
|
|
|
|
// ExtractHTTPDNSClusterTask 分解HTTPDNS节点集群任务
|
|
func (this *NodeTaskDAO) ExtractHTTPDNSClusterTask(tx *dbs.Tx, clusterId int64, taskType NodeTaskType) error {
|
|
nodes, err := SharedHTTPDNSNodeDAO.ListEnabledNodes(tx, clusterId)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
_, err = this.Query(tx).
|
|
Attr("role", nodeconfigs.NodeRoleHTTPDNS).
|
|
Attr("clusterId", clusterId).
|
|
Gt("nodeId", 0).
|
|
Attr("type", taskType).
|
|
Delete()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
for _, node := range nodes {
|
|
if !node.IsOn {
|
|
continue
|
|
}
|
|
|
|
err = this.CreateNodeTask(tx, nodeconfigs.NodeRoleHTTPDNS, clusterId, int64(node.Id), 0, 0, taskType)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
_, err = this.Query(tx).
|
|
Attr("role", nodeconfigs.NodeRoleHTTPDNS).
|
|
Attr("clusterId", clusterId).
|
|
Attr("nodeId", 0).
|
|
Attr("type", taskType).
|
|
Delete()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|