oxidecomputer / oxidecomputer/omicron
sled-agent-client shouldn't depend on propolis-client
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
the dependency exists to re-export Crucible types: https://github.com/oxidecomputer/omicron/blob/b845b31a5eb6f91cbe5d4650a1e67da8ac0eaa2e/clients/sled-agent-client/src/lib.rs#L15
it seems to me that we should either:
- type the
CrucibleOptsparts ofpropolis-server's API as an opaquestringor something, if the type should be fully opaque to Propolis (as I thinkVolmueConstructionRequestis?), or - actually provide the Crucible type as part of
propolis-api-typesin an explicit admission that the item from Crucible is necessary as part ofpropolis-server's HTTP API.
because this dependency exists, it complicates ls-apis and requires some extra API exclusion rules in api-manifest.toml. it'll be really nice to clean up the propolis-client-related rules there once we've untangled this.
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 at clients/sled-agent-client/src/lib.rs near line 15 and inspect the propolis-server API types involving CrucibleOpts, including VolumeConstructionRequest. Review ls-apis and api-manifest.toml to understand the current exclusions; done means the dependency and related exclusion rules are untangled after deciding whether CrucibleOpts is opaque or belongs in propolis-api-types.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- api
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100