-
Notifications
You must be signed in to change notification settings - Fork 25
Add AllStopped command and endpoint for downstairs status #1718
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for the delay on this one, we got busy and I did not get time to look at it.
I was worried that the old test_dsc.sh had a retry loop that we no longer have (to check for stopped) so I ran this code in a test loop for the past few weeks to see if it ever failed to stop, and it never did. So, I'm no longer worried about that.
All good,thanks! |
Pick up the following propolis PRs: - Bump crucible rev to latest (oxidecomputer/propolis#922) - Added block_size for file backends in propolis_server (workers is optional) (oxidecomputer/propolis#917) Pick up the following crucible PRs: - Snapshots existing already are ok! (oxidecomputer/crucible#1759) - Less verbose logging (oxidecomputer/crucible#1756) - Remove unused `Vec<JoinHandle>` (oxidecomputer/crucible#1754) - Split "check reconciliation state" from "start reconciliation" (oxidecomputer/crucible#1732) - Improve `ClientIoTask` start logic (oxidecomputer/crucible#1731) - Use data-bearing enum variants pattern in negotiation (oxidecomputer/crucible#1727) - Make Downstairs stoppable (oxidecomputer/crucible#1730) - Don't log every region's metadata (oxidecomputer/crucible#1729) - Compute reconciliation from `ClientMap` instead of three clients (oxidecomputer/crucible#1726) - Make Offline -> Faulted transition happen without reconnecting (oxidecomputer/crucible#1725) - Remove `WaitActive` state during negotiation (oxidecomputer/crucible#1722) - Add explicit `UpstairsState::Disabled` (oxidecomputer/crucible#1721) - Print version on startup for pantry and agent (oxidecomputer/crucible#1723) - Update test mem to also show physical space used by regions. (oxidecomputer/crucible#1724) - Add AllStopped command and endpoint for downstairs status (oxidecomputer/crucible#1718) - Update tests to honor REGION_SETS env if provided. (oxidecomputer/crucible#1720) - Fix panic in `set_active_request` when client is in Stopping(Replacing) state (oxidecomputer/crucible#1717) - DTrace updates (oxidecomputer/crucible#1715)
Pick up the following propolis PRs: - oxidecomputer/propolis#922 - oxidecomputer/propolis#917 Pick up the following crucible PRs: - oxidecomputer/crucible#1759 - oxidecomputer/crucible#1756 - oxidecomputer/crucible#1754 - oxidecomputer/crucible#1732 - oxidecomputer/crucible#1731 - oxidecomputer/crucible#1727 - oxidecomputer/crucible#1730 - oxidecomputer/crucible#1729 - oxidecomputer/crucible#1726 - oxidecomputer/crucible#1725 - oxidecomputer/crucible#1722 - oxidecomputer/crucible#1721 - oxidecomputer/crucible#1723 - oxidecomputer/crucible#1724 - oxidecomputer/crucible#1718 - oxidecomputer/crucible#1720 - oxidecomputer/crucible#1717 - oxidecomputer/crucible#1715
Pick up the following propolis PRs: - Bump crucible rev to latest (oxidecomputer/propolis#922) - Added block_size for file backends in propolis_server (workers is optional) (oxidecomputer/propolis#917) Pick up the following crucible PRs: - Snapshots existing already are ok! (oxidecomputer/crucible#1759) - Less verbose logging (oxidecomputer/crucible#1756) - Remove unused `Vec<JoinHandle>` (oxidecomputer/crucible#1754) - Split "check reconciliation state" from "start reconciliation" (oxidecomputer/crucible#1732) - Improve `ClientIoTask` start logic (oxidecomputer/crucible#1731) - Use data-bearing enum variants pattern in negotiation (oxidecomputer/crucible#1727) - Make Downstairs stoppable (oxidecomputer/crucible#1730) - Don't log every region's metadata (oxidecomputer/crucible#1729) - Compute reconciliation from `ClientMap` instead of three clients (oxidecomputer/crucible#1726) - Make Offline -> Faulted transition happen without reconnecting (oxidecomputer/crucible#1725) - Remove `WaitActive` state during negotiation (oxidecomputer/crucible#1722) - Add explicit `UpstairsState::Disabled` (oxidecomputer/crucible#1721) - Print version on startup for pantry and agent (oxidecomputer/crucible#1723) - Update test mem to also show physical space used by regions. (oxidecomputer/crucible#1724) - Add AllStopped command and endpoint for downstairs status (oxidecomputer/crucible#1718) - Update tests to honor REGION_SETS env if provided. (oxidecomputer/crucible#1720) - Fix panic in `set_active_request` when client is in Stopping(Replacing) state (oxidecomputer/crucible#1717) - DTrace updates (oxidecomputer/crucible#1715)
Bump crucible and propolis revs to latest Pick up the following propolis PRs: - oxidecomputer/propolis#922 - oxidecomputer/propolis#917 Pick up the following crucible PRs: - oxidecomputer/crucible#1759 - oxidecomputer/crucible#1756 - oxidecomputer/crucible#1754 - oxidecomputer/crucible#1732 - oxidecomputer/crucible#1731 - oxidecomputer/crucible#1727 - oxidecomputer/crucible#1730 - oxidecomputer/crucible#1729 - oxidecomputer/crucible#1726 - oxidecomputer/crucible#1725 - oxidecomputer/crucible#1722 - oxidecomputer/crucible#1721 - oxidecomputer/crucible#1723 - oxidecomputer/crucible#1724 - oxidecomputer/crucible#1718 - oxidecomputer/crucible#1720 - oxidecomputer/crucible#1717 - oxidecomputer/crucible#1715 --------- Co-authored-by: Artemis Everfree <[email protected]>
Closes #1660
This PR introduces the
dsc cmd all-stopped
command to reliably check if all "downstairs" services are stopped. This replaces previoussleep
-based checks in tests, reducing potential flakiness.Changes
AllStopped
command todsc/src/client.rs
and corresponding handling./allstopped
GET endpoint indsc/src/control.rs
.all_stopped
logic toDscInfo
indsc/src/main.rs
, consideringRunning
,Starting
, orStopping
states as not stopped.openapi/dsc-control.json
with the new endpoint definition.tools/test_dsc.sh
to utilize the newall-stopped
command.All tests pass with these changes.