alunduil / alunduil/zfs-replicate
Operators can replicate multiple local→remote pairs in one invocation
- Lenguaje dominante
- Python
- Estrellas
- 24
- Forks
- 6
- Merge medio
- 3 h 11 min
- PR fusionados (30 d)
- 49
Descripción
## User story
As an **operator with multiple pools or multiple destination roots**, I want to **describe several `LOCAL_FS → REMOTE_FS` pairs in a single `zfs-replicate` run** so that **my scheduler runs one unit of work instead of a shell loop around the CLI**.
## Why
Today the CLI takes a single `(HOST, REMOTE_FS, LOCAL_FS)` triple. NixOS packaging bolts external loops around it. #92 (2020) has been open for this. Supporting repeated `--pair LOCAL:REMOTE` (keeping the current positional form for back-compat) removes the external loop without breaking existing invocations.
## Acceptance criteria
- [ ] A new repeatable CLI flag `--pair LOCAL_FS:REMOTE_FS` exists.
- [ ] The existing positional `HOST REMOTE_FS LOCAL_FS` form continues to work unchanged.
- [ ] When `--pair` is given, each pair runs against the supplied `HOST` with the shared SSH/compression/send/receive options.
- [ ] Pairs run in a deterministic order when `--jobs 1`; run concurrently when `--jobs > 1`.
- [ ] Exit code is non-zero if any pair fails; successful pairs still complete.
- [ ] `--help` documents the flag and gives an example.
- [ ] README gains a "Replicating multiple datasets" section.
- [ ] CHANGELOG entry under "Added".
## Out of scope
- Per-pair overrides for compression/cipher/options — tracked in the config-file issue.
## Notes
- Target release: **v4.4.0** (minor — additive flag; positional form preserved)
- Closes the user need from #92.
- Pairs naturally with `-j/--jobs`.
- Source: modernization assessment §3.6.
Guía de contribución
Evaluación
Este issue todavía no se ha evaluado.