sled agent: don't publish the Destroyed instance state #3284
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.
Nexus reserves the "Creating" and "Destroyed" instance states to refer to instances that it (Nexus) is in the process of creating and that it has deleted. Propolis uses these states to refer to VMMs that it has created and destroyed. Sled agent is responsible for correcting this impedance mismatch by turning Propolis's per-VMM states into appropriate Nexus instance states. Specifically:
Creating
its internal VM must be represented as an instance that'sStarting
Destroyed
its internal VM must be represented as an instance that'sStopped
Fix two places where sled agent was erroneously publishing the Destroyed state to Nexus. Also, adjust some types and function signatures to make it harder to make this mistake in the future.
Fixes #3260.