oxidecomputer / oxidecomputer/omicron
sled-agent API shouldn't split migration IDs between instance-ensure-state and instance-ensure-registered
@hawkw is already working on this.
Since Jul 12, 2024.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
Currently, when an instance is created as a migration target, the migration UUID is sent in the instance-ensure-registered sled-agent API request (PUT /instances/{id}/), while the UUID and IP address of the source Propolis for the migration is not sent until the instance-ensure-state request (PUT /instances/{id}/state). This is kind of a bummer, because it's the second request that causes sled-agent to send an instance-ensure request to the Propolis process, and when the instance is ensured as a migration target, this request to Propolis includes both the migration ID and the source address/ID. The split means that, in #5749, the sled-agent must optionally store the migration ID from the ensure-registered request, and panic if the subsequent ensure-state request has a migration source but no migration ID was present in the initial ensure-registered request.
It would be nice if all the migration parameters could be present in the ensure-state request so that we don't have to do that.
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.
Assessment
This issue has not been assessed yet.