[sled-storage] Automatically clean up test zpools, storage #7111
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
StorageManagerTestHarness
is a utility which allows sled agent tests to use real zpools and datasets atop temporary file-backed storage. This provides a decent test fidelity for storage-based parts of the sled agent.This harness previously took a liberal attitude towards zpool creation, but a conservative perspective on their deletion: rather than automatically destroying zpools on test failure, it would print commands for "how to delete these zpools yourself". This tendency was mostly borne out of fear: deleting zpools is a dangerous operation which should be done with caution.
When working with the
StorageManagerTestHarness
, especially while iterating on tests with many expected failures, I've decided this is an Enormous Pain In The Butt. This PR changes the aforementioned tendency, and just attempts to delete all provisioned zpools we created in our tests. If we fail to do so, we'll then log an error message and let the user take responsibility for manual cleanup.