bootstore type reorg PR 3/?: Split internal/external API types: add ExternalBfdMode#9906
bootstore type reorg PR 3/?: Split internal/external API types: add ExternalBfdMode#9906jgallagher wants to merge 5 commits intomainfrom
Conversation
As it evolved, #9570 made various changes to both the sled-agent types crate and the sled-agent API. As it landed, though, it made one versioning bump to sled-agent API (v20 - BGP) and two to the types crate (v20 - lockstep API, v21 - BGP). This squishes the latter two down to just one (v20 - BGP) for consistency with the API's versioning.
This is only used in the sled-agent -> Nexus RSS handoff request in the Nexus lockstep API.
|
I'm really second guessing this. The I'd like to pursue basically the path we laid out in #9801 (comment), but skip the "duplicate types that are used in the external API", in favor of having the external API reuse the types directly from sled-agent-types. I think the "move the types out of common and into sled-agent" and "duplicate types used in the external API" are mostly orthogonal bits of work, so doing the "move common -> sled-agent" can be done without closing the door on duplicating external API types afterwards, if we decide at the end we still want to do that. |
For now I'm going to mark these PRs as drafts, and reorder other work to defer the external type duplicating. |
BfdModewas defined inomicron_common::api::external, but was used in the external API, a few internal APIs, and serialized in the bootstore. This PR introducesExternalBfdMode(external API only) and movesBfdMode(the rest) intoomicron_common::api::internal::shared- future work in this chain of PRs will move it again (along with other serialized-in-the-bootstore types), but it has to land there for now.This makes no changes to any internal or external OpenAPI specs - it's only adjusting internal representations.
Part of #9801. Staged on top of #9905.