(recoverCtx *composeRecoverContext)
| 554 | } |
| 555 | |
| 556 | func stepLoadComposeRecoverMeta(recoverCtx *composeRecoverContext) error { |
| 557 | metaPath := path.Join(recoverCtx.tmpDir, "compose_meta.json") |
| 558 | if !recoverCtx.fileOp.Stat(metaPath) { |
| 559 | return fmt.Errorf("compose_meta.json not found in backup file") |
| 560 | } |
| 561 | metaBytes, err := os.ReadFile(metaPath) |
| 562 | if err != nil { |
| 563 | return err |
| 564 | } |
| 565 | if err := json.Unmarshal(metaBytes, &recoverCtx.meta); err != nil { |
| 566 | return fmt.Errorf("unmarshal compose_meta.json failed, err: %v", err) |
| 567 | } |
| 568 | recoverCtx.composeName = strings.TrimSpace(recoverCtx.req.Name) |
| 569 | if recoverCtx.composeName == "" { |
| 570 | recoverCtx.composeName = strings.TrimSpace(recoverCtx.meta.ComposeName) |
| 571 | } |
| 572 | if recoverCtx.composeName == "" { |
| 573 | return fmt.Errorf("compose name not found in recover request or backup file") |
| 574 | } |
| 575 | recoverCtx.targetDir = resolveComposeRecoverTargetDir(recoverCtx.meta, recoverCtx.composeName) |
| 576 | return nil |
| 577 | } |
| 578 | |
| 579 | func resolveComposeRecoverTargetDir(meta composeBackupMeta, composeName string) string { |
| 580 | composePath := strings.TrimSpace(meta.ComposePath) |
no test coverage detected