Builds and is staged on top of #7104. This introduces a BlueprintStorageEditor that handles disks and datasets together, and attempts to address the API issues described by #7080:
Adding a zone also adds its datasets
Adding a disk also adds its Debug and Zone Root datasets
Expunging a disk expunges any datasets that were on it
Expunging a dataset expunges any zones that were on it
This should allow BlueprintBuilder clients who don't or can't call sled_ensure_{disks,datasets} (like reconfigurator-cli and some tests) to construct valid blueprints.
Thanks for the quick reviews! Merging with the changes with EditCounts etc. in #7104 and then changing this PR to be more in that style was nontrivial - maybe worth a second look? Particularly 2eef785 and 8573d08
Builds and is staged on top of #7104. This introduces a
BlueprintStorageEditor
that handles disks and datasets together, and attempts to address the API issues described by #7080:This should allow
BlueprintBuilder
clients who don't or can't callsled_ensure_{disks,datasets}
(like reconfigurator-cli and some tests) to construct valid blueprints.