move VMM types from omicron-common to sled-agent-types-versions#10302
Merged
move VMM types from omicron-common to sled-agent-types-versions#10302
omicron-common to sled-agent-types-versions#10302Conversation
Member
Author
|
Uh, hmm. It looks like a whole bunch of stuff has gone wrong with this |
Member
Author
I have come to suspect that this is due to one of the disks on |
jgallagher
approved these changes
Apr 22, 2026
Contributor
jgallagher
left a comment
There was a problem hiding this comment.
LGTM, just a couple small nitpicks.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
As described in #10290, the types in the sled-agent API that represent VMM states are currently defined in the
omicron-commoncrate, rather thansled-agent-types-versions. This is problematic, as it is essentially equivalent to saying that these types can never be changed. The reason for this (also described in #10290) is that these types presently appear in both thesled-agentAPI and thenexus-internalAPI, the latter of which is client-side versioned. The appearance of these types in the client-side-versioned API is an issue, as they cannot easily be changed, since client-side versioned APIs are not currently handled by the API versioning tools.Thus, #10290 proposes that we decouple this mess by removing
cpapi_instances_put, the nexus-internal API that currently uses the types also appearing in the sled-agent API. To do this, we must first move these types into thesled-agent-types-versionscrate so that they can participate in versioning. This PR does that. Most code which references these types now gets them fromsled-agent-types. The exception is the Nexus-Internal API itself, which, as previously mentioned, is client-side versioned, and must explicitly depend on thev1version ofSledVmmStateforever (which, again, is why we are gonna get rid of it entirely).I did not make the behavioral change described in #10290 (where Nexus would ignore the
SledVmmStatebody sent tocpapi_instances_putand instead treat it as the doorbell API that will eventually replace it). Since this PR ends up touching so many files just to rename the types, I didn't want to make the behavioral changes here, or add the new nexus-internal version, because I think those deserve to be separate commits. These will come later.