1
0
mirror of https://github.com/1Panel-dev/1Panel.git synced 2025-03-16 18:54:43 +08:00

feat: 备份恢复应用增加任务日志 (#6619)

This commit is contained in:
zhengkunwang 2024-09-29 18:03:46 +08:00 committed by GitHub
parent 4d560a3764
commit 5beb93dde2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -38,25 +38,36 @@ func (u *BackupService) AppBackup(req dto.CommonBackup) (*model.BackupRecord, er
backupDir := path.Join(global.CONF.System.Backup, itemDir) backupDir := path.Join(global.CONF.System.Backup, itemDir)
fileName := fmt.Sprintf("%s_%s.tar.gz", req.DetailName, timeNow+common.RandStrAndNum(5)) fileName := fmt.Sprintf("%s_%s.tar.gz", req.DetailName, timeNow+common.RandStrAndNum(5))
if err := handleAppBackup(&install, nil, backupDir, fileName, "", req.Secret, req.TaskID); err != nil {
return nil, err backupApp := func() (*model.BackupRecord, error) {
if err = handleAppBackup(&install, nil, backupDir, fileName, "", req.Secret, req.TaskID); err != nil {
global.LOG.Errorf("backup app %s failed, err: %v", req.DetailName, err)
return nil, err
}
record := &model.BackupRecord{
Type: "app",
Name: req.Name,
DetailName: req.DetailName,
SourceAccountIDs: "1",
DownloadAccountID: 1,
FileDir: itemDir,
FileName: fileName,
}
if err := backupRepo.CreateRecord(record); err != nil {
global.LOG.Errorf("save backup record failed, err: %v", err)
return nil, err
}
return record, nil
} }
record := &model.BackupRecord{ if req.TaskID != "" {
Type: "app", go func() {
Name: req.Name, _, _ = backupApp()
DetailName: req.DetailName, }()
SourceAccountIDs: "1", } else {
DownloadAccountID: 1, return backupApp()
FileDir: itemDir,
FileName: fileName,
} }
return nil, nil
if err := backupRepo.CreateRecord(record); err != nil {
global.LOG.Errorf("save backup record failed, err: %v", err)
return nil, err
}
return record, nil
} }
func (u *BackupService) AppRecover(req dto.CommonRecover) error { func (u *BackupService) AppRecover(req dto.CommonRecover) error {
@ -76,9 +87,11 @@ func (u *BackupService) AppRecover(req dto.CommonRecover) error {
if _, err := compose.Down(install.GetComposePath()); err != nil { if _, err := compose.Down(install.GetComposePath()); err != nil {
return err return err
} }
if err := handleAppRecover(&install, nil, req.File, false, req.Secret, req.TaskID); err != nil { go func() {
return err if err := handleAppRecover(&install, nil, req.File, false, req.Secret, req.TaskID); err != nil {
} global.LOG.Errorf("recover app %s failed, err: %v", req.DetailName, err)
}
}()
return nil return nil
} }
@ -338,11 +351,11 @@ func handleAppRecover(install *model.AppInstall, parentTask *task.Task, recoverF
} }
} }
recoverTask.AddSubTask(task.GetTaskName(install.Name, task.TaskBackup, task.TaskScopeApp), recoverApp, rollBackApp) recoverTask.AddSubTask(task.GetTaskName(install.Name, task.TaskRecover, task.TaskScopeApp), recoverApp, rollBackApp)
if parentTask != nil { if parentTask != nil {
return recoverApp(parentTask) return recoverApp(parentTask)
} }
return nil return recoverTask.Execute()
} }
func reCreateDB(dbID uint, database model.Database, oldEnv string) (*model.DatabaseMysql, map[string]interface{}, error) { func reCreateDB(dbID uint, database model.Database, oldEnv string) (*model.DatabaseMysql, map[string]interface{}, error) {