Skip to content

Commit 85150a7

Browse files
authored
Split out a sled-hardware-types crate (#5245)
On main as of #5158, we unexpectedly get some binaries depending on `libnvme` that shouldn't. In release builds: ``` installinator omicron-dev omicron-package services-ledger-check-migrate sled-agent sled-agent-sim wicketd ``` and in debug builds, all of the above plus `omdb`. We don't really care about this for binaries that don't run on the rack, so stripping the list down to binaries we do care about: ``` installinator omdb (debug only) sled-agent wicketd ``` It's correct and expected that installinator and sled-agent depend on libnvme, but omdb shouldn't (and doesn't in release), and wicketd _must not_, as libnvme isn't available in the switch zone. This PR fixes that incorrect dependency by splitting the parts of the `sled-hardware` crate that wicketd and omdb depended on (directly or transitively) into a new `sled-hardware-types` crate. On this PR, we are left with only the following needing libnvme, in both debug and release: ``` installinator omicron-dev omicron-package services-ledger-check-migrate sled-agent sled-agent-sim ``` I assume with a bit more work we could trim out everything but `installinator` and `sled-agent`, and that might be worth doing, but we'd like to land this ASAP so as to not break any updates performed off of `main`. Separately, we could also imagine a CI check that we don't have unexpected library dependencies present in the final binaries; @papertigers is going to work on that.
1 parent fdbbbe5 commit 85150a7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+279
-222
lines changed

Cargo.lock

Lines changed: 19 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ members = [
6464
"rpaths",
6565
"sled-agent",
6666
"sled-hardware",
67+
"sled-hardware/types",
6768
"sled-storage",
6869
"sp-sim",
6970
"test-utils",
@@ -142,6 +143,7 @@ default-members = [
142143
"rpaths",
143144
"sled-agent",
144145
"sled-hardware",
146+
"sled-hardware/types",
145147
"sled-storage",
146148
"sp-sim",
147149
"test-utils",
@@ -373,6 +375,7 @@ similar-asserts = "1.5.0"
373375
sled = "0.34"
374376
sled-agent-client = { path = "clients/sled-agent-client" }
375377
sled-hardware = { path = "sled-hardware" }
378+
sled-hardware-types = { path = "sled-hardware/types" }
376379
sled-storage = { path = "sled-storage" }
377380
slog = { version = "2.7", features = [ "dynamic-keys", "max_level_trace", "release_max_level_debug" ] }
378381
slog-async = "2.8"

bootstore/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ secrecy.workspace = true
2222
serde.workspace = true
2323
serde_with.workspace = true
2424
sha3.workspace = true
25-
sled-hardware.workspace = true
25+
sled-hardware-types.workspace = true
2626
slog.workspace = true
2727
thiserror.workspace = true
2828
tokio.workspace = true

bootstore/src/schemes/v0/fsm.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ use secrecy::ExposeSecret;
2323
use serde::{Deserialize, Serialize};
2424
use serde_with::serde_as;
2525
use sha3::{Digest, Sha3_256};
26-
use sled_hardware::Baseboard;
26+
use sled_hardware_types::Baseboard;
2727
use std::collections::{BTreeMap, BTreeSet};
2828
use std::fmt::Debug;
2929
use std::time::Instant;

bootstore/src/schemes/v0/messages.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use super::{LearnedSharePkg, RackUuid, Share, SharePkg};
88
use derive_more::From;
99
use serde::{Deserialize, Serialize};
10-
use sled_hardware::Baseboard;
10+
use sled_hardware_types::Baseboard;
1111
use std::net::SocketAddrV6;
1212
use thiserror::Error;
1313
use uuid::Uuid;

bootstore/src/schemes/v0/peer.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use super::{ApiError, ApiOutput, Fsm, FsmConfig, RackUuid};
1414
use crate::trust_quorum::RackSecret;
1515
use camino::Utf8PathBuf;
1616
use derive_more::From;
17-
use sled_hardware::Baseboard;
17+
use sled_hardware_types::Baseboard;
1818
use slog::{error, info, o, warn, Logger};
1919
use std::collections::{BTreeMap, BTreeSet};
2020
use std::net::{SocketAddr, SocketAddrV6};

bootstore/src/schemes/v0/peer_networking.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use crate::schemes::Hello;
1111
use bytes::Buf;
1212
use derive_more::From;
1313
use serde::{Deserialize, Serialize};
14-
use sled_hardware::Baseboard;
14+
use sled_hardware_types::Baseboard;
1515
use slog::{debug, error, info, o, warn, Logger};
1616
use std::collections::VecDeque;
1717
use std::io::Cursor;

bootstore/src/schemes/v0/request_manager.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use super::{
88
Envelope, FsmConfig, Msg, RackUuid, Request, RequestType, Share, SharePkg,
99
};
10-
use sled_hardware::Baseboard;
10+
use sled_hardware_types::Baseboard;
1111
use std::collections::{BTreeMap, BTreeSet};
1212
use std::time::Instant;
1313
use uuid::Uuid;

bootstore/src/schemes/v0/share_pkg.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use rand::{rngs::OsRng, RngCore};
1212
use secrecy::{ExposeSecret, Secret};
1313
use serde::{Deserialize, Serialize};
1414
use sha3::{Digest, Sha3_256};
15-
use sled_hardware::Baseboard;
15+
use sled_hardware_types::Baseboard;
1616
use std::collections::BTreeSet;
1717
use std::fmt;
1818
use uuid::Uuid;

bootstore/src/schemes/v0/storage.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use super::{Fsm, FsmConfig, State};
1515
use camino::Utf8PathBuf;
1616
use omicron_common::ledger::{Ledger, Ledgerable};
1717
use serde::{Deserialize, Serialize};
18-
use sled_hardware::Baseboard;
18+
use sled_hardware_types::Baseboard;
1919
use slog::{info, Logger};
2020

2121
/// A persistent version of `Fsm::State`

0 commit comments

Comments
 (0)