oxidecomputer / oxidecomputer/omicron

sled-agent API shouldn't split migration IDs between instance-ensure-state and instance-ensure-registered

Open
#6,073 0 comments 0 reactions 1 assignee View on GitHub

@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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.