oxidecomputer / oxidecomputer/propolis
migrate-from-base tests have gotten long in the tooth
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 270
- Forks
- 42
- Avg merge
- 4d 5h
- Merged PRs (30d)
- 6
Description
from the horse's mouth: https://github.com/oxidecomputer/propolis/blob/96e772ab174bb38897c42aef6951fbe7b3e40642/.github/buildomat/jobs/phd-run-migrate-from-base.sh#L16-L25
now, a test migrating from mainline propolis-server to the version under test (and back!) is useful, so unlike the comment remarks, I haven't been particularly interested in removing the test. but a few things have changed that make this test less useful than we'd want here..
first, we've stabilized HTTP API versioning across services. now, adding a new HTTP API version to Propolis implies this test will fail, until the new HTTP API version is landed, which would get master and the build under test speaking the same version again. other tests that the version under test can migrate to and from itself probably still pass in those cases! but by adding a new HTTP API version N, migrating to a propolis that only knows version HTTP API N-1 means the old propolis-server just returns an error and the test fails.
perhaps we should have migrate-from-base skip when we're bumping the HTTP API, and as a matter of policy(?) require that HTTP API plumbing not be changed alongside changes to propolis-standalone/propolis-server themselves? "policy" is a pretty subjective and unsatisfactory bar!
second, a VM can have a more storied life, especially once we start actually doing live migration. a VM first incarnated in a Propolis using the V1 API may live-migrate to a Propolis with a V2 InstanceSpec, which may live-migrate to a Propolis with a V3 instance spec. testing that this can migrate to the version under test is important, and is currently untested.
migrating forward along this path should always work, regardless of API version that the propolis-server under test would use in talking to other Propolises.
Contributor guide
No contributing guide indexed for this repository
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 with .github/buildomat/jobs/phd-run-migrate-from-base.sh, especially lines 16-25, and inspect the existing migrate-from-base test and related migration tests. Compare coverage for API-version bumps and multi-version VM migration. Done means the test remains useful while covering forward migration across API versions without failing solely because the HTTP API version changed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend-api-design, testing-qa
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100