Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add API endpoint for updating network interfaces #1186

Merged
merged 3 commits into from
Jun 13, 2022
Merged

Conversation

bnaecker
Copy link
Collaborator

@bnaecker bnaecker commented Jun 9, 2022

  • Adds the HTTP endpoint to PUT updates to an instance's network
    interfaces
  • Adds transaction-based method for applying these updates. The
    transaction is mainly necessary to correctly make a new primary
    interface, specifically marking the old primary as now secondary. It
    also helps with a potential race when checking if the instance being
    operated on is stopped. The interactive transaction is unfortunate,
    but appears required, since the entire operation of setting a new
    primary cannot be expressed as a single query.
  • Adds tests, especially verifying making a new primary interface
  • Adds PUT endpoint to auth tests

@bnaecker bnaecker requested review from davepacheco and smklein June 9, 2022 19:12
@bnaecker
Copy link
Collaborator Author

bnaecker commented Jun 9, 2022

Addresses #1153

@smklein smklein self-assigned this Jun 13, 2022
nexus/src/external_api/params.rs Show resolved Hide resolved
nexus/src/db/datastore.rs Outdated Show resolved Hide resolved
nexus/src/db/datastore.rs Outdated Show resolved Hide resolved
nexus/src/db/datastore.rs Outdated Show resolved Hide resolved
nexus/tests/integration_tests/instances.rs Outdated Show resolved Hide resolved
nexus/tests/integration_tests/instances.rs Outdated Show resolved Hide resolved
nexus/tests/integration_tests/instances.rs Outdated Show resolved Hide resolved
bnaecker added 2 commits June 13, 2022 19:14
- Adds the HTTP endpoint to PUT updates to an instance's network
  interfaces
- Adds transaction-based method for applying these updates. The
  transaction is mainly necessary to correctly make a new primary
  interface, specifically marking the old primary as now secondary. It
  also helps with a potential race when checking if the instance being
  operated on is stopped. The interactive transaction is unfortunate,
  but appears required, since the entire operation of setting a new
  primary cannot be expressed as a single query.
- Adds tests, especially verifying making a new primary interface
- Adds PUT endpoint to auth tests
@bnaecker bnaecker enabled auto-merge (squash) June 13, 2022 19:16
@bnaecker bnaecker merged commit 0588fac into main Jun 13, 2022
@bnaecker bnaecker deleted the update-nic-api branch June 13, 2022 20:31
leftwo pushed a commit that referenced this pull request Mar 4, 2024
Crucible changes:
Per client, queue-based backpressure (#1186)
A builder for the Downstairs Downstairs struct. (#1152)
Update Rust to v1.76.0 (#1153)
Deactivate the read only parent after a scrub (#1180)
Start byte-based backpressure earlier (#1179)
Tweak CI scripts to fix warnings (#1178)
Make `gw_ds_complete` less public (#1175)
Verify extent under repair is valid after copying files (#1159)
Remove individual panic setup, use global panic settings (#1174)
[smf] Use new zone network config service (#1096)
Move a few methods into downstairs (#1160)
Remove extra clone in upstairs read (#1163)
Make `crucible-downstairs` not depend on upstairs (#1165)
Update Rust crate rusqlite to 0.31 (#1171)
Update Rust crate reedline to 0.29.0 (#1170)
Update Rust crate clap to 4.5 (#1169)
Update Rust crate indicatif to 0.17.8 (#1168)
Update progenitor to bc0bb4b (#1164)
Do not 500 on snapshot delete for deleted region (#1162)
Drop jobs from Offline downstairs. (#1157)
`Mutex<Work>` → `Work` (#1156)
Added a contributing.md (#1158)
Remove ExtentFlushClose::source_downstairs (#1154)
Remove unnecessary mutexes from Downstairs (#1132)

Propolis changes:
PHD: improve Windows reliability (#651)
Update progenitor and omicron deps
Clean up VMM resource on server shutdown
Remove Inventory mechanism
Update vergen dependency
Properly handle pre/post illumos#16183 fixups
PHD: add `pfexec` to xtask phd-runner invocation (#647)
PHD: add Windows Server 2016 adapter & improve WS2016/2019 reliability (#646)
PHD: use `clap` for more `cargo xtask phd` args (#645)
PHD: several `cargo xtask phd` CLI fixes (#642)
PHD: Use ZFS clones for file-backed disks (#640)
PHD: improve ctrl-c handling (#634)
leftwo added a commit that referenced this pull request Mar 4, 2024
Crucible changes:
Per client, queue-based backpressure (#1186)
A builder for the Downstairs Downstairs struct. (#1152) Update Rust to
v1.76.0 (#1153)
Deactivate the read only parent after a scrub (#1180) Start byte-based
backpressure earlier (#1179)
Tweak CI scripts to fix warnings (#1178)
Make `gw_ds_complete` less public (#1175)
Verify extent under repair is valid after copying files (#1159) Remove
individual panic setup, use global panic settings (#1174) [smf] Use new
zone network config service (#1096)
Move a few methods into downstairs (#1160)
Remove extra clone in upstairs read (#1163)
Make `crucible-downstairs` not depend on upstairs (#1165) Update Rust
crate rusqlite to 0.31 (#1171)
Update Rust crate reedline to 0.29.0 (#1170)
Update Rust crate clap to 4.5 (#1169)
Update Rust crate indicatif to 0.17.8 (#1168)
Update progenitor to bc0bb4b (#1164)
Do not 500 on snapshot delete for deleted region (#1162) Drop jobs from
Offline downstairs. (#1157)
`Mutex<Work>` → `Work` (#1156)
Added a contributing.md (#1158)
Remove ExtentFlushClose::source_downstairs (#1154) Remove unnecessary
mutexes from Downstairs (#1132)

Propolis changes:
PHD: improve Windows reliability (#651)
Update progenitor and omicron deps
Clean up VMM resource on server shutdown
Remove Inventory mechanism
Update vergen dependency
Properly handle pre/post illumos#16183 fixups
PHD: add `pfexec` to xtask phd-runner invocation (#647) PHD: add Windows
Server 2016 adapter & improve WS2016/2019 reliability (#646) PHD: use
`clap` for more `cargo xtask phd` args (#645) PHD: several `cargo xtask
phd` CLI fixes (#642)
PHD: Use ZFS clones for file-backed disks (#640)
PHD: improve ctrl-c handling (#634)

Co-authored-by: Alan Hanson <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants