(req dto.CommonRecover, parentTask *task.Task)
| 190 | } |
| 191 | |
| 192 | func 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), |
no test coverage detected