Files
zosstorage/TODO.md

7.4 KiB

TODO checklist

Project status: first-draft preview is implemented and committed. This checklist tracks remaining work to reach end-to-end provisioning (apply mode), plus follow-ups and QA.

Conventions:

  • Completed
  • [-] In progress
  • Pending

Core execution

Discovery, idempotency, safety

  • Device discovery with removable policy: exclude /sys/class/block/*/removable == 1 by default; allow via --allow-removable src/device/discovery.rs
  • Idempotency detection via blkid; filesystem label / PARTLABEL checks src/idempotency/mod.rs
  • Emptiness checks (idempotency::is_empty_disk) and skip during preview mode src/orchestrator/run.rs
  • Optional: additional include/exclude helpers (e.g. path allowlist) and stronger heuristics for device class selection (NVMe/SATA only, etc.)

CLI, config, defaults

Orchestrator tracing and spans

Logging/utilities

  • which_tool/run_cmd/run_cmd_capture/udev_settle implemented src/util/mod.rs
  • Optional: enrich debug spans around all shell-outs (command-line echo with redactions if needed)
  • Confirm file logging idempotence and guard path creation src/logging/mod.rs

Docs and tests

  • Exhaustive README with usage and JSON shapes README.md
  • Audit rustdoc coverage for all public functions and important helpers; beef up where minimal
  • Topology planning tests (unit-level) for single/dual/raid1/ssd+hdd setups src/partition/plan.rs
  • Filesystem planning tests for RAID1 aggregation and bcachefs mapping src/fs/plan.rs
  • Orchestrator preview tests (JSON contains filesystems_planned/mount section) src/orchestrator/run.rs
  • Integration tests in QEMU/KVM matrix; exercise /dev/vd* topologies and ensure safe abort on unexpected signatures

Packaging and integration

  • Provide build profile for static musl and Alpine initramfs integration (Cargo config + CI)
  • Add minimal init script / docs for integrating into early boot

Stretch goals and polish

  • Dry-run mode that outputs proposed sgdisk/mkfs/mount commands in detail with “why” annotations
  • Richer structured report schema (typed disks/partitions/filesystems/mounts) and tooling to diff reports across runs
  • Optional telemetry hooks / metrics (phase durations, device counts) behind features

Stale TODOs to review/remove