oxidecomputer / oxidecomputer/omicron
Incorporate rack ID into inventory collection system
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
The inventory collection code doesn't currently save the rack ID of the various components it tracks. For multi-rack, we will have to add this.
We may not need to add a rack ID to every type of hardware being tracked, but at a minimum we'll need to track it for the SPs; this will be necessary to address the multi-rack TODO in Nexus::sled_list_uninitialized. That said, there may be other uses of the inventory code where we'll need access to rack IDs as well, and I'll plan to add them to this issue if/when I find more. And even if there aren't any more reasons we need to track rack IDs right now, it might be a good idea to add a rack ID to more parts of the inventory system than just the SPs, assuming it's easy to do.
Note that this depends on #5201: the inventory collection code grabs the SP data from MGS, so we'll need a way to connect to other racks' MGS instances.
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 tracing the inventory collection code and the SP data path through MGS, then inspect the multi-rack TODO in Nexus::sled_list_uninitialized. Review dependency #5201 to understand how other racks' MGS instances will be reached. Done means SP inventory includes rack IDs and the multi-rack path can use them; determine whether other hardware types also need them.
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
- Needs clarification
- Newbie friendliness
- 35/100