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 } clusterIds := models.SharedHTTPDNSAppDAO.ReadAppClusterIds(app) notified := map[int64]bool{} for _, clusterId := range clusterIds { if clusterId <= 0 || notified[clusterId] { continue } notified[clusterId] = true err := notifyHTTPDNSClusterTask(tx, clusterId, 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) }