You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
nexus-types: add SupportBundleRequest type and Case field (#10090)
The core thing this PR does is:
* Introduce a new `SupportBundleRequest` type to `fm::case` (analogous
to @hawkw's `AlertRequest`), and
* Introduce a new `support_bundles_requested` field to `Case` (analogous
to `alerts_requested`).
There's a lot of ✨ceremony✨ around this small change, though:
* `DisplayCase` has a sophisticated `impl Display` that formats the
stuff it contains. So we need `Display` impls for all the things
`SupportBundleRequest` transitively contains (`BundleData`, etc.).
Here's what this comes out looking like:
```
support bundles requested:
-------------------------
* bundle a9b8c7d6-e5f4-3210-fedc-ba0987654321
requested in: bba63ba7-bf6b-45f4-b241-d13ccd07fe1c <-- this sitrep
data: all (default)
* bundle d1a2b3c4-e5f6-7890-abcd-ef1234567890
requested in: ea7affb0-36eb-4a9a-b9bd-22e00f1bcc04
data:
- sp_dumps
- ereports(classes: hw.pwr.*)
- host_info(all)
- reconfigurator
```
* Since `Case` is `serde::Serialize/Deserialize`, we also need to add
derives to `SupportBundleRequest` and all the things it transitively
contains.
* Lastly, since we want to have some sort of reasonable round-trip test
for the serialization / deserialization, we use proptest to generate
arbitrary inputs. This requires `Arbitrary` impls (or functions that
return `Strategy`) for all the things too.
Context: #10062.
0 commit comments