mirror of
https://hubproxy.babadafafafafa.cn/https://github.com/1Panel-dev/1Panel.git
synced 2026-09-20 08:03:55 +08:00
101 lines
2.2 KiB
Go
101 lines
2.2 KiB
Go
package global
|
|
|
|
import (
|
|
"context"
|
|
"sync"
|
|
|
|
badger_db "github.com/1Panel-dev/1Panel/agent/init/cache/db"
|
|
"github.com/go-playground/validator/v10"
|
|
"github.com/nicksnyder/go-i18n/v2/i18n"
|
|
"github.com/robfig/cron/v3"
|
|
"github.com/sirupsen/logrus"
|
|
"github.com/spf13/viper"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
var (
|
|
DB *gorm.DB
|
|
MonitorDB *gorm.DB
|
|
GPUMonitorDB *gorm.DB
|
|
TaskDB *gorm.DB
|
|
CoreDB *gorm.DB
|
|
AlertDB *gorm.DB
|
|
|
|
LOG *logrus.Logger
|
|
CONF ServerConfig
|
|
VALID *validator.Validate
|
|
CACHE *badger_db.Cache
|
|
Viper *viper.Viper
|
|
|
|
Dir SystemDir
|
|
|
|
Cron *cron.Cron
|
|
MonitorCronID cron.EntryID
|
|
|
|
IsMaster bool
|
|
|
|
I18n *i18n.Localizer
|
|
|
|
AlertBaseJobID cron.EntryID
|
|
AlertResourceJobID cron.EntryID
|
|
|
|
TaskCtxMap = make(map[string]context.CancelFunc)
|
|
taskCtxMu sync.RWMutex
|
|
)
|
|
|
|
func RegisterTaskCancel(taskID string, cancel context.CancelFunc) {
|
|
taskCtxMu.Lock()
|
|
defer taskCtxMu.Unlock()
|
|
TaskCtxMap[taskID] = cancel
|
|
}
|
|
|
|
func LoadTaskCancel(taskID string) (context.CancelFunc, bool) {
|
|
taskCtxMu.RLock()
|
|
defer taskCtxMu.RUnlock()
|
|
cancel, ok := TaskCtxMap[taskID]
|
|
return cancel, ok
|
|
}
|
|
|
|
func RemoveTaskCancel(taskID string) {
|
|
taskCtxMu.Lock()
|
|
defer taskCtxMu.Unlock()
|
|
delete(TaskCtxMap, taskID)
|
|
}
|
|
|
|
func RepoURL() string {
|
|
if CONF.Base.IsEnterprise {
|
|
return "https://resource.fit2cloud.com/1panel/package/enterprise"
|
|
}
|
|
if CONF.Base.IsFxplay {
|
|
return "https://resource.fit2cloud.com/1panel/package/fusionxplay"
|
|
}
|
|
if CONF.Base.Edition != "intl" {
|
|
return "https://resource.fit2cloud.com/1panel/package/v2"
|
|
}
|
|
return "https://resource.1panel.pro/v2"
|
|
}
|
|
func ResourceURL() string {
|
|
if CONF.Base.IsEnterprise {
|
|
return "https://resource.fit2cloud.com/1panel/resource/v2"
|
|
}
|
|
if CONF.Base.IsFxplay {
|
|
return "https://resource.fit2cloud.com/1panel/resource/v2"
|
|
}
|
|
if CONF.Base.Edition != "intl" {
|
|
return "https://resource.fit2cloud.com/1panel/resource/v2"
|
|
}
|
|
return "https://resource.1panel.pro/v2/resource"
|
|
}
|
|
func AppRepoURL() string {
|
|
if CONF.Base.IsEnterprise {
|
|
return "https://apps-assets.fit2cloud.com"
|
|
}
|
|
if CONF.Base.IsFxplay {
|
|
return "https://apps-assets.fit2cloud.com"
|
|
}
|
|
if CONF.Base.Edition != "intl" {
|
|
return "https://apps-assets.fit2cloud.com"
|
|
}
|
|
return "https://apps.1panel.pro"
|
|
}
|