50 lines
1.2 KiB
Go
50 lines
1.2 KiB
Go
package httpdns
|
|
|
|
import (
|
|
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
|
"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
|
|
"github.com/iwind/TeaGo/dbs"
|
|
)
|
|
|
|
func notifyHTTPDNSClusterTask(tx *dbs.Tx, clusterId int64, taskType models.NodeTaskType) error {
|
|
if clusterId <= 0 {
|
|
return nil
|
|
}
|
|
return models.SharedNodeTaskDAO.CreateClusterTask(tx, nodeconfigs.NodeRoleHTTPDNS, clusterId, 0, 0, taskType)
|
|
}
|
|
|
|
func notifyHTTPDNSAppTasksByApp(tx *dbs.Tx, app *models.HTTPDNSApp, taskType models.NodeTaskType) error {
|
|
if app == nil {
|
|
return nil
|
|
}
|
|
|
|
primaryClusterId := int64(app.PrimaryClusterId)
|
|
backupClusterId := int64(app.BackupClusterId)
|
|
|
|
err := notifyHTTPDNSClusterTask(tx, primaryClusterId, taskType)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
if backupClusterId > 0 && backupClusterId != primaryClusterId {
|
|
err = notifyHTTPDNSClusterTask(tx, backupClusterId, taskType)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func notifyHTTPDNSAppTasksByAppDbId(tx *dbs.Tx, appDbId int64, taskType models.NodeTaskType) error {
|
|
if appDbId <= 0 {
|
|
return nil
|
|
}
|
|
|
|
app, err := models.SharedHTTPDNSAppDAO.FindEnabledApp(tx, appDbId)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return notifyHTTPDNSAppTasksByApp(tx, app, taskType)
|
|
}
|