mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-11-09 19:20:56 +08:00
fix: Fix the problem of recovering application and website task logs (#8281)
This commit is contained in:
parent
ac722054d2
commit
302877771c
11 changed files with 46 additions and 10 deletions
|
|
@ -204,7 +204,7 @@ func handleAppRecover(install *model.AppInstall, parentTask *task.Task, recoverF
|
|||
fileOp := files.NewFileOp()
|
||||
if !isRollback {
|
||||
rollbackFile = path.Join(global.Dir.TmpDir, fmt.Sprintf("app/%s_%s.tar.gz", install.Name, time.Now().Format(constant.DateTimeSlimLayout)))
|
||||
if err := handleAppBackup(install, nil, path.Dir(rollbackFile), path.Base(rollbackFile), "", "", ""); err != nil {
|
||||
if err := handleAppBackup(install, recoverTask, path.Dir(rollbackFile), path.Base(rollbackFile), "", "", taskID); err != nil {
|
||||
t.Log(fmt.Sprintf("backup app %s for rollback before recover failed, err: %v", install.Name, err))
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ func (u *BackupService) WebsiteBackup(req dto.CommonBackup) error {
|
|||
fileName := fmt.Sprintf("%s_%s.tar.gz", website.Alias, timeNow+common.RandStrAndNum(5))
|
||||
|
||||
go func() {
|
||||
if err = handleWebsiteBackup(&website, backupDir, fileName, "", req.Secret, req.TaskID); err != nil {
|
||||
if err = handleWebsiteBackup(&website, nil, backupDir, fileName, "", req.Secret, req.TaskID); err != nil {
|
||||
global.LOG.Errorf("backup website %s failed, err: %v", website.Alias, err)
|
||||
return
|
||||
}
|
||||
|
|
@ -82,7 +82,7 @@ func handleWebsiteRecover(website *model.Website, recoverFile string, isRollback
|
|||
isOk := false
|
||||
if !isRollback {
|
||||
rollbackFile := path.Join(global.Dir.TmpDir, fmt.Sprintf("website/%s_%s.tar.gz", website.Alias, time.Now().Format(constant.DateTimeSlimLayout)))
|
||||
if err := handleWebsiteBackup(website, path.Dir(rollbackFile), path.Base(rollbackFile), "", "", ""); err != nil {
|
||||
if err := handleWebsiteBackup(website, recoverTask, path.Dir(rollbackFile), path.Base(rollbackFile), "", "", taskID); err != nil {
|
||||
return fmt.Errorf("backup website %s for rollback before recover failed, err: %v", website.Alias, err)
|
||||
}
|
||||
defer func() {
|
||||
|
|
@ -202,12 +202,20 @@ func handleWebsiteRecover(website *model.Website, recoverFile string, isRollback
|
|||
return recoverTask.Execute()
|
||||
}
|
||||
|
||||
func handleWebsiteBackup(website *model.Website, backupDir, fileName, excludes, secret, taskID string) error {
|
||||
backupTask, err := task.NewTaskWithOps(website.Alias, task.TaskBackup, task.TaskScopeWebsite, taskID, website.ID)
|
||||
if err != nil {
|
||||
return err
|
||||
func handleWebsiteBackup(website *model.Website, parentTask *task.Task, backupDir, fileName, excludes, secret, taskID string) error {
|
||||
var (
|
||||
err error
|
||||
backupTask *task.Task
|
||||
)
|
||||
backupTask = parentTask
|
||||
if parentTask == nil {
|
||||
backupTask, err = task.NewTaskWithOps(website.Alias, task.TaskBackup, task.TaskScopeWebsite, taskID, website.ID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
backupTask.AddSubTask(task.GetTaskName(website.Alias, task.TaskBackup, task.TaskScopeWebsite), func(t *task.Task) error {
|
||||
|
||||
backupWebsite := func(t *task.Task) error {
|
||||
fileOp := files.NewFileOp()
|
||||
tmpDir := fmt.Sprintf("%s/%s", backupDir, strings.ReplaceAll(fileName, ".tar.gz", ""))
|
||||
if !fileOp.Stat(tmpDir) {
|
||||
|
|
@ -273,7 +281,11 @@ func handleWebsiteBackup(website *model.Website, backupDir, fileName, excludes,
|
|||
}
|
||||
t.Log(i18n.GetWithName("CompressFileSuccess", fileName))
|
||||
return nil
|
||||
}, nil)
|
||||
}
|
||||
backupTask.AddSubTask(task.GetTaskName(website.Alias, task.TaskBackup, task.TaskScopeApp), backupWebsite, nil)
|
||||
if parentTask != nil {
|
||||
return backupWebsite(parentTask)
|
||||
}
|
||||
return backupTask.Execute()
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ func (u *CronjobService) handleWebsite(cronjob model.Cronjob, startTime time.Tim
|
|||
record.DownloadAccountID, record.SourceAccountIDs = cronjob.DownloadAccountID, cronjob.SourceAccountIDs
|
||||
backupDir := path.Join(global.Dir.TmpDir, fmt.Sprintf("website/%s", web.Alias))
|
||||
record.FileName = fmt.Sprintf("website_%s_%s.tar.gz", web.Alias, startTime.Format(constant.DateTimeSlimLayout)+common.RandStrAndNum(5))
|
||||
if err := handleWebsiteBackup(&web, backupDir, record.FileName, cronjob.ExclusionRules, cronjob.Secret, taskID); err != nil {
|
||||
if err := handleWebsiteBackup(&web, nil, backupDir, record.FileName, cronjob.ExclusionRules, cronjob.Secret, taskID); err != nil {
|
||||
return err
|
||||
}
|
||||
downloadPath, err := u.uploadCronjobBackFile(cronjob, accountMap, path.Join(backupDir, record.FileName))
|
||||
|
|
|
|||
|
|
@ -43,6 +43,9 @@ ErrBackupPublic: "Detected that this backup account is not public, please check
|
|||
ErrOSSConn: "Unable to get the latest version, please check the server's external network connectivity."
|
||||
|
||||
#license
|
||||
LicenseCheck: 'Check if the license is available'
|
||||
ErrLicenseInUsed: 'The license is already bound. Please check and try again!'
|
||||
ErrLicenseExpired: 'The license has expired. Please check and try again!'
|
||||
ErrLicense: "License format error, please check and retry!"
|
||||
ErrLicenseCheck: "License validation failed, please check and retry!"
|
||||
ErrXpackVersion: "License validation failed, this license is version-limited, cannot import, please check and retry!"
|
||||
|
|
|
|||
|
|
@ -44,6 +44,9 @@ ErrOSSConn: "最新バージョンを取得できません。外部ネットワ
|
|||
|
||||
|
||||
#license
|
||||
LicenseCheck: 'ライセンスが利用可能か確認する'
|
||||
ErrLicenseInUsed: 'このライセンスは既に紐付けられています。確認して再試行してください!'
|
||||
ErrLicenseExpired: 'このライセンスは期限切れです。確認して再試行してください!'
|
||||
ErrLicense: "ライセンスフォーマットエラー、確認して再試行してください!"
|
||||
ErrLicenseCheck: "ライセンスの確認に失敗しました、確認して再試行してください!"
|
||||
ErrXpackVersion: "ライセンスの確認に失敗しました、このライセンスはバージョン制限があり、正常にインポートできません、確認して再試行してください!"
|
||||
|
|
|
|||
|
|
@ -43,6 +43,9 @@ ErrBackupPublic: "이 백업 계정이 공개된 것으로 감지되지 않았
|
|||
ErrOSSConn: "최신 버전을 가져올 수 없습니다. 외부 네트워크 연결을 확인하십시오."
|
||||
|
||||
#license
|
||||
LicenseCheck: '라이선스 사용 가능 여부 확인'
|
||||
ErrLicenseInUsed: '해당 라이선스가 이미 연결되었습니다. 확인 후 다시 시도하세요!'
|
||||
ErrLicenseExpired: '해당 라이선스가 만료되었습니다. 확인 후 다시 시도하세요!'
|
||||
ErrLicense: "라이선스 형식이 잘못되었습니다. 다시 확인하고 시도해 주세요!"
|
||||
ErrLicenseCheck: "라이선스 검증 실패. 다시 확인하고 시도해 주세요!"
|
||||
ErrXpackVersion: "라이선스 검증 실패, 이 라이선스는 버전 제한이 있습니다. 성공적으로 가져올 수 없습니다. 다시 확인하고 시도해 주세요!"
|
||||
|
|
|
|||
|
|
@ -43,6 +43,9 @@ ErrBackupPublic: "Akaun sandaran ini dikesan tidak awam, sila semak semula dan c
|
|||
ErrOSSConn: "Tidak dapat mendapatkan versi terkini, sila semak sambungan rangkaian luar pelayan."
|
||||
|
||||
#license
|
||||
LicenseCheck: 'Periksa sama ada lesen tersedia'
|
||||
ErrLicenseInUsed: 'Lesen ini telah terikat. Sila periksa dan cuba lagi!'
|
||||
ErrLicenseExpired: 'Lesen ini telah tamat tempoh. Sila periksa dan cuba lagi!'
|
||||
ErrLicense: "Format lesen tidak sah, sila semak dan cuba lagi!"
|
||||
ErrLicenseCheck: "Pengesahan lesen gagal, sila semak dan cuba lagi!"
|
||||
ErrXpackVersion: "Pengesahan lesen gagal, lesen ini terhad kepada versi tertentu, sila semak dan cuba lagi!"
|
||||
|
|
|
|||
|
|
@ -43,6 +43,9 @@ ErrBackupPublic: "A conta de backup detectada não é pública, por favor verifi
|
|||
ErrOSSConn: "Não foi possível obter a versão mais recente, verifique a conectividade externa do servidor."
|
||||
|
||||
#license
|
||||
LicenseCheck: 'Verificar se a licença está disponível'
|
||||
ErrLicenseInUsed: 'Esta licença já está vinculada. Por favor, verifique e tente novamente!'
|
||||
ErrLicenseExpired: 'Esta licença expirou. Por favor, verifique e tente novamente!'
|
||||
ErrLicense: "Formato de licença inválido, por favor verifique e tente novamente!"
|
||||
ErrLicenseCheck: "Falha na verificação da licença, por favor verifique e tente novamente!"
|
||||
ErrXpackVersion: "Falha na verificação da licença, esta licença é restrita a uma versão específica, por favor verifique e tente novamente!"
|
||||
|
|
|
|||
|
|
@ -43,6 +43,9 @@ ErrBackupPublic: "Обнаружено, что эта учетная запис
|
|||
ErrOSSConn: "Не удалось получить последнюю версию, проверьте подключение сервера к внешней сети."
|
||||
|
||||
#license
|
||||
LicenseCheck: 'Проверить доступность лицензии'
|
||||
ErrLicenseInUsed: 'Лицензия уже привязана. Пожалуйста, проверьте и повторите попытку!'
|
||||
ErrLicenseExpired: 'Срок действия лицензии истек. Пожалуйста, проверьте и повторите попытку!'
|
||||
ErrLicense: "Неверный формат лицензии, проверьте и повторите попытку!"
|
||||
ErrLicenseCheck: "Ошибка проверки лицензии, проверьте и повторите попытку!"
|
||||
ErrXpackVersion: "Ошибка проверки лицензии, лицензия ограничена по версии, проверьте и повторите попытку!"
|
||||
|
|
|
|||
|
|
@ -43,6 +43,9 @@ ErrBackupPublic: "檢測到該備份帳號為非公用,請檢查後再試!"
|
|||
ErrOSSConn: "無法獲取最新版本,請確認伺服器是否能夠連接外部網路。"
|
||||
|
||||
#license
|
||||
LicenseCheck: '檢查許可證是否可用'
|
||||
ErrLicenseInUsed: '檢測到該許可證已被綁定,請檢查後重試!'
|
||||
ErrLicenseExpired: '檢測到該許可證已過期,請檢查後重試!'
|
||||
ErrLicense: "許可證格式錯誤,請檢查後重試!"
|
||||
ErrLicenseCheck: "許可證校驗失敗,請檢查後重試!"
|
||||
ErrXpackVersion: "許可證校驗失敗,該許可證受版本限制,無法成功導入,請檢查後重試!"
|
||||
|
|
|
|||
|
|
@ -44,6 +44,9 @@ ErrBackupPublic: "检测到该备份账号为非公用,请检查后重试!"
|
|||
ErrOSSConn: "无法获取最新版本,请确认服务器是否能够连接外部网络。"
|
||||
|
||||
#license
|
||||
LicenseCheck: '检查许可证是否可用'
|
||||
ErrLicenseInUsed: '检查到该许可证已被绑定,请检查后重试!'
|
||||
ErrLicenseExpired: '检查到该许可证已过期,请检查后重试!'
|
||||
ErrLicense: "许可证格式错误,请检查后重试!"
|
||||
ErrLicenseCheck: "许可证校验失败,请检查后重试!"
|
||||
ErrXpackVersion: "许可证校验失败,该许可证受版本限制,无法成功导入,请检查后重试!"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue