oxidecomputer / oxidecomputer/omicron
Add multi-rack support to the `sled_list_uninitialized` function in Nexus
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
There's an existing multi-rack TODO comment that we need to address in the sled_list_uninitialized function, where it assumes all the sleds it finds in the inventory are part of the local rack and returns UninitializedSled structs with the same rack ID as the local Nexus instance. As part of implementing multi-rack clustering, we can no longer assume that all the sleds we find are on the same rack as the Nexus instance where we're running this function.
This depends on #10968, as we'll need to track rack IDs in the inventory collection code in order for sled_list_uninitialized to be able to return the correct rack ID for each uninitialized sled it finds.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the sled_list_uninitialized function and the existing multi-rack TODO. Then inspect the inventory collection work required by #10968, since this issue depends on rack IDs being tracked there. Done means each returned UninitializedSled has the rack ID associated with that sled rather than the local Nexus rack ID.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend, distributed-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100