MCPcopy Create free account
hub / github.com/1Panel-dev/1Panel / handleComposeRecover

Function handleComposeRecover

agent/app/service/backup_compose.go:192–306  ·  view source on GitHub ↗
(req dto.CommonRecover, parentTask *task.Task)

Source from the content-addressed store, hash-verified

190}
191
192func handleComposeRecover(req dto.CommonRecover, parentTask *task.Task) error {
193 var recoverCtx *composeRecoverContext
194
195 recoverTask := parentTask
196 var err error
197 if recoverTask == nil {
198 if isImportRecover(req) {
199 taskName := i18n.GetMsgByKey("TaskImport") + i18n.GetMsgByKey("Compose")
200 recoverTask, err = task.NewTask(taskName, task.TaskImport, task.TaskScopeBackup, req.TaskID, 1)
201 if err != nil {
202 return err
203 }
204 } else {
205 taskName := req.Name
206 if taskName == "" {
207 taskName = "compose"
208 }
209 recoverTask, err = task.NewTaskWithOps(taskName, task.TaskRecover, task.TaskScopeBackup, req.TaskID, 1)
210 if err != nil {
211 return err
212 }
213 }
214 }
215
216 timeout := loadRecoverTimeout(req.Timeout)
217 recoverTask.AddSubTaskWithOps(i18n.GetMsgByKey("ComposeRecoverPrepare"), func(t *task.Task) error {
218 ctx, err := newComposeRecoverContext(req)
219 if err != nil {
220 return err
221 }
222 recoverCtx = ctx
223 if err := stepPrepareComposeRecover(recoverCtx); err != nil {
224 recoverCtx.close()
225 recoverCtx = nil
226 return err
227 }
228 return nil
229 }, func(t *task.Task) {
230 if recoverCtx != nil {
231 recoverCtx.close()
232 recoverCtx = nil
233 }
234 }, 3, timeout)
235 recoverTask.AddSubTaskWithOps(i18n.GetMsgByKey("ComposeRecoverExtract"), func(t *task.Task) error { return stepExtractComposeRecover(recoverCtx) }, nil, 3, timeout)
236 recoverTask.AddSubTaskWithOps(i18n.GetMsgByKey("ComposeRecoverMeta"), func(t *task.Task) error {
237 if err := stepLoadComposeRecoverMeta(recoverCtx); err != nil {
238 return err
239 }
240 t.Log(i18n.GetMsgWithMap("ComposeRecoverMetaLogName", map[string]interface{}{
241 "name": recoverCtx.composeName,
242 }))
243 t.Log(i18n.GetMsgWithMap("ComposeRecoverMetaLogPath", map[string]interface{}{
244 "backupPath": recoverCtx.meta.ComposePath,
245 "targetDir": recoverCtx.targetDir,
246 }))
247 t.Log(i18n.GetMsgWithMap("ComposeRecoverMetaLogCount", map[string]interface{}{
248 "files": len(recoverCtx.meta.Files),
249 "containers": len(recoverCtx.meta.Containers),

Callers 1

ComposeRecoverMethod · 0.85

Calls 15

closeMethod · 0.95
isImportRecoverFunction · 0.85
loadRecoverTimeoutFunction · 0.85
newComposeRecoverContextFunction · 0.85
stepRestoreComposeFilesFunction · 0.85
safeJoinWithinBaseFunction · 0.85
handleContainerRecoverFunction · 0.85
stepSaveComposeRecordFunction · 0.85
AddSubTaskWithOpsMethod · 0.45

Tested by

no test coverage detected