Skip to content

Commit ba42796

Browse files
committed
[ereport] index ereport ingestion by SP type/slot
Currently, the initial ereport ingestion API I added in #7833 proposed a single dropshot API that would be implemented by both sled-agent and MGS. This was possible because the initial design would have indexed all ereport producers (reporters) by a UUID. However, per recent conversations with @cbiffle and @jgallagher, we've determined that Nexus will instead request ereports from service processors indexed by SP physical topology (e.g. type and slot), like the rest of the MGS HTTP API. Therefore, we can no longer have a single HTTP API for ereporters that's implemented by both MGS and sled-agents, and instead, SP ereport ingestion should be a new endpoint on the MGS API. This commit does that, moving the ereport query params into `ereport-types`, eliminating the separate `ereport-api` and `ereport-client` crates, and adding an ereport-ingestion-by-SP-location endpoint to the management gateway API.
1 parent cf38148 commit ba42796

File tree

20 files changed

+310
-527
lines changed

20 files changed

+310
-527
lines changed

Diff for: Cargo.lock

+2-39
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: Cargo.toml

-6
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ members = [
1414
"clients/ddm-admin-client",
1515
"clients/dns-service-client",
1616
"clients/dpd-client",
17-
"clients/ereport-client",
1817
"clients/gateway-client",
1918
"clients/installinator-client",
2019
"clients/nexus-client",
@@ -50,7 +49,6 @@ members = [
5049
"dns-server",
5150
"dns-server-api",
5251
"end-to-end-tests",
53-
"ereport/api",
5452
"ereport/types",
5553
"gateway",
5654
"gateway-api",
@@ -154,7 +152,6 @@ default-members = [
154152
"clients/ddm-admin-client",
155153
"clients/dns-service-client",
156154
"clients/dpd-client",
157-
"clients/ereport-client",
158155
"clients/gateway-client",
159156
"clients/installinator-client",
160157
"clients/nexus-client",
@@ -192,7 +189,6 @@ default-members = [
192189
"dns-server",
193190
"dns-server-api",
194191
"end-to-end-tests",
195-
"ereport/api",
196192
"ereport/types",
197193
"gateway",
198194
"gateway-api",
@@ -393,8 +389,6 @@ dpd-client = { path = "clients/dpd-client" }
393389
dropshot = { version = "0.16.0", features = [ "usdt-probes" ] }
394390
dyn-clone = "1.0.19"
395391
either = "1.14.0"
396-
ereport-api = { path = "ereport/api" }
397-
ereport-client = { path = "clients/ereport-client" }
398392
ereport-types = { path = "ereport/types" }
399393
expectorate = "1.1.0"
400394
fatfs = "0.3.6"

Diff for: clients/ereport-client/Cargo.toml

-22
This file was deleted.

Diff for: clients/ereport-client/src/lib.rs

-23
This file was deleted.

Diff for: dev-tools/ls-apis/api-manifest.toml

-12
Original file line numberDiff line numberDiff line change
@@ -266,18 +266,6 @@ and exists as a client library within omicron. This is because the Dendrite \
266266
repo is not currently open source.
267267
"""
268268

269-
[[apis]]
270-
client_package_name = "ereport-client"
271-
label = "ereport"
272-
server_package_name = "ereport-api"
273-
versioned_how = "server"
274-
notes = """
275-
Implemented by sled-agents and by MGS, and consumed by Nexus to collect \
276-
ereports.
277-
278-
The sled-agent and MGS APIs are server-versioned, so this can be as well.
279-
"""
280-
281269
[[apis]]
282270
client_package_name = "lldpd-client"
283271
label = "LLDP daemon"

Diff for: dev-tools/openapi-manager/Cargo.toml

-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ cockroach-admin-api.workspace = true
1818
debug-ignore.workspace = true
1919
dns-server-api.workspace = true
2020
dropshot.workspace = true
21-
ereport-api.workspace = true
2221
hex.workspace = true
2322
fs-err.workspace = true
2423
gateway-api.workspace = true

Diff for: dev-tools/openapi-manager/src/omicron.rs

-12
Original file line numberDiff line numberDiff line change
@@ -85,18 +85,6 @@ pub fn all_apis() -> Vec<ManagedApiConfig> {
8585
ident: "dns-server",
8686
extra_validation: None,
8787
},
88-
ManagedApiConfig {
89-
title: "Ereport Reporter API",
90-
versions: Versions::new_versioned(
91-
ereport_api::supported_versions()
92-
),
93-
description: "API for ereport producers",
94-
boundary: ApiBoundary::Internal,
95-
api_description:
96-
ereport_api::ereport_api_mod::stub_api_description,
97-
ident: "ereport",
98-
extra_validation: None,
99-
},
10088
ManagedApiConfig {
10189
title: "Installinator API",
10290
versions: Versions::new_lockstep(semver::Version::new(0,0,1)),

Diff for: ereport/api/Cargo.toml

-19
This file was deleted.

Diff for: ereport/api/src/lib.rs

-116
This file was deleted.

Diff for: ereport/types/Cargo.toml

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ version = "0.1.0"
44
edition = "2024"
55

66
[dependencies]
7-
omicron-uuid-kinds.workspace = true
7+
dropshot.workspace = true
88
schemars.workspace = true
99
serde.workspace = true
1010
serde_json.workspace = true
1111
uuid.workspace = true
1212
omicron-workspace-hack.workspace = true
13+
omicron-uuid-kinds.workspace = true
1314

1415
[lints]
1516
workspace = true

0 commit comments

Comments
 (0)