-
Notifications
You must be signed in to change notification settings - Fork 42
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
omdb: Add sled state to blueprint displays and diffs #6545
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.
Awesome. Thanks for the quick fix on this @jgallagher.
before_zones.keys().chain(before_disks.keys()).collect(); | ||
let after_sleds: BTreeSet<_> = | ||
after_zones.keys().chain(after_disks.keys()).collect(); | ||
// Work around a quirk of sled decommissioning. If a sled has a before |
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.
Nice!
@@ -165,6 +142,27 @@ to: blueprint 9f71f5d3-a272-4382-9154-6ea2e171a6c6 | |||
- nexus 67622d61-2df4-414d-aa0e-d1277265f405 expunged fd00:1122:3344:103::22 | |||
|
|||
|
|||
sled 68d24ac5-f341-49ea-a92a-0381b52ab387 (active): |
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.
Why did this sled move from "REMOVED" to "MODIFIED"?
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.
This test manually messes around with blueprint_zones
:
omicron/nexus/reconfigurator/planning/src/planner.rs
Lines 1858 to 1863 in 0496637
let expunged_zones = | |
blueprint2a.blueprint_zones.get_mut(&expunged_sled_id).unwrap(); | |
expunged_zones.zones.clear(); | |
expunged_zones.generation = expunged_zones.generation.next(); | |
blueprint2a.blueprint_zones.remove(&decommissioned_sled_id); |
Prior to this PR, "sled missing from zones and disks" was enough for it to be REMOVED
. After this PR, it also has to be missing from sled_state
, which the test doesn't touch. I thought that was fine, but looking back at the test it explicitly wants to test diff output including a removed sled, so I changed the test to remove the decommissioned sled from sled_state
and now it's back to REMOVED: fab82fc
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.
Makes sense. Thanks for the details.
On
main
, omdb shows this for the confusing blueprint on dogfood from oxidecomputer/product-assurance#52:As of this branch, we get parenthetical state information on the
sled $SLED_ID:
lines:The empty sled added block is still kinda confusing, but I think the note that the added sled is starting out in the
decommissioned
state is at least a reasonable pointer to an explanation of what's going on.Fixes #6544.