Skip to content
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

[sled-agent] Create an "Executor", which intercepts requests through std::process::Command #3442

Open
wants to merge 94 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 82 commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
d2e9582
Refactor test setup as builder, pull DNS server out of simulated sled…
smklein Jun 16, 2023
c41ff8a
[nexus] Resilience to arbitrary boot order
smklein Jun 16, 2023
d6a3919
Merge branch 'main' into resilient-nexus-builder
smklein Jun 16, 2023
4ba64cf
Handler Task Mode
smklein Jun 16, 2023
b76f9e9
Merge branch 'resilient-nexus-builder' into resilient-nexus-boot-order
smklein Jun 16, 2023
9e9a4eb
Ipv6 CockroachDB addresses
smklein Jun 16, 2023
c49eed2
Merge branch 'resilient-nexus-builder' into resilient-nexus-boot-order
smklein Jun 16, 2023
9d91fb2
[sled agent] Clarify LazyNexusClient constructor arguments, cache add…
smklein Jun 16, 2023
492666a
Merge branch 'main' into resilient-nexus-builder
smklein Jun 20, 2023
65e0473
Update docs around how-to-run-simulated
smklein Jun 21, 2023
4046281
Updated comment
smklein Jun 21, 2023
93bcca6
Add logging
smklein Jun 21, 2023
6a6187b
Add note about test replacement
smklein Jun 21, 2023
e340a04
Update comment about DNS w.r.t. pantry server
smklein Jun 21, 2023
d0baed2
Merge branch 'resilient-nexus-builder' into resilient-nexus-boot-order
smklein Jun 21, 2023
11c37b7
Merge branch 'main' into resilient-nexus-builder
smklein Jun 22, 2023
f80788a
Review feedback
smklein Jun 22, 2023
30807c6
Merge branch 'resilient-nexus-builder' into resilient-nexus-boot-order
smklein Jun 22, 2023
0a476d9
Merge branch 'resilient-nexus-boot-order' into lazy-nexus
smklein Jun 22, 2023
8c50d38
server to dns_server
smklein Jun 22, 2023
3323815
Merge branch 'resilient-nexus-boot-order' into lazy-nexus
smklein Jun 22, 2023
f06942e
Attempting to pull DNS resolver into progenitor client, tbd
smklein Jun 23, 2023
4ac3140
Merge branch 'main' into resilient-nexus-builder
smklein Jun 23, 2023
e745c76
Create sled agent config parameter to specify internal DNS
smklein Jun 23, 2023
e60c666
Merge branch 'resilient-nexus-builder' into resilient-nexus-boot-order
smklein Jun 23, 2023
6f5926c
Merge branch 'resilient-nexus-boot-order' into lazy-nexus
smklein Jun 23, 2023
4ea32bc
Test that we can use the internal DNS resolver with progenitor
smklein Jun 26, 2023
05109dc
Deprecate 'LazyNexusClient', relying on internal DNS resolver instead
smklein Jun 26, 2023
55b0178
clippy, comments
smklein Jun 26, 2023
fb74e5c
Comments
smklein Jun 26, 2023
259f5ec
Deal with mocks
smklein Jun 26, 2023
d8efb4a
Avoid mocks in the update test, add a nexus fake
smklein Jun 26, 2023
97223ae
Continue to reduce usage of mocks to represent NexusClient
smklein Jun 26, 2023
d5fcafc
Add Executor trait, use it
smklein Jun 27, 2023
96edc93
Remove unused mocks
smklein Jun 27, 2023
b9ef267
Add dladm tests
smklein Jun 27, 2023
2a49520
docs
smklein Jun 27, 2023
2ded293
Merge branch 'main' into resilient-nexus-builder
smklein Jun 27, 2023
d9ca175
Merge branch 'resilient-nexus-builder' into resilient-nexus-boot-order
smklein Jun 27, 2023
2526ca9
Merge branch 'resilient-nexus-boot-order' into lazy-nexus
smklein Jun 27, 2023
701f2ac
Merge branch 'lazy-nexus' into less-mocks
smklein Jun 27, 2023
b76eaca
Merge branch 'main' into resilient-nexus-builder
smklein Jun 28, 2023
d4af9a0
Merge branch 'resilient-nexus-builder' into resilient-nexus-boot-order
smklein Jun 28, 2023
bcbe2e8
Merge branch 'resilient-nexus-boot-order' into lazy-nexus
smklein Jun 28, 2023
a62bcc1
Merge branch 'lazy-nexus' into less-mocks
smklein Jun 28, 2023
c5ac608
Merge branch 'less-mocks' into executor-fake
smklein Jun 28, 2023
0b85e12
Merge branch 'main' into lazy-nexus, Review Feedback
smklein Jul 4, 2023
711a3ff
Merge branch 'lazy-nexus' into less-mocks
smklein Jul 4, 2023
fa33af7
Merge branch 'less-mocks' into executor-fake, make illumos happy
smklein Jul 4, 2023
909d9ba
Okay now happy on non-illumos too
smklein Jul 4, 2023
b05c6aa
clippy
smklein Jul 4, 2023
03abbd1
Merge branch 'main' into lazy-nexus
smklein Jul 10, 2023
4d411a6
Merge branch 'lazy-nexus' into less-mocks
smklein Jul 10, 2023
0f3d24b
Merge branch 'less-mocks' into executor-fake
smklein Jul 31, 2023
dab59ff
Merge branch 'main' into executor-fake
smklein Aug 4, 2023
9767d67
Add support for spawning fake processes too
smklein Aug 8, 2023
3df0260
Merge branch 'main' into executor-fake
smklein Aug 8, 2023
091ac11
Update cargo.lock, appease clippy
smklein Aug 9, 2023
baf35ed
Merge branch 'main' into executor-fake
smklein Aug 9, 2023
49a9b35
More attempts to make compilation on illumos happy
smklein Aug 9, 2023
837ec37
Remove all usage of mocks
smklein Aug 11, 2023
dc3a6aa
Clippy for tests
smklein Aug 11, 2023
629ed64
Deduplicate
smklein Aug 11, 2023
526e42a
Merge branch 'main' into executor-fake
smklein Aug 14, 2023
3420a9d
less echo
smklein Aug 14, 2023
673b0ed
Refactor emulated host
smklein Aug 14, 2023
544aaef
Tests passing on illumos
smklein Aug 15, 2023
a57d4db
Flip disposition of registration
smklein Aug 15, 2023
eaa1ce1
Merge branch 'main' into executor-fake
smklein Aug 15, 2023
27378dd
cleanup
smklein Aug 15, 2023
172a8e3
Merge branch 'main' into executor-fake
smklein Aug 18, 2023
e6ee96f
Less boxy errors
smklein Aug 18, 2023
2954fd2
One less clone
smklein Aug 18, 2023
5bfc6ea
Better slog citizen
smklein Aug 18, 2023
6d85d90
fn wait consumes box
smklein Aug 18, 2023
eece3b1
take stdin
smklein Aug 18, 2023
be077b3
CommandSequence
smklein Aug 18, 2023
2d281ee
Into string
smklein Aug 18, 2023
9acb7b8
output_to_exec error is now ExecutionError::from_output
smklein Aug 18, 2023
6c19b40
Use shlex for strong quoting
smklein Aug 18, 2023
cd332e6
less allocations while logging
smklein Aug 18, 2023
be2454b
modules, satiate clippy
smklein Aug 18, 2023
846840c
Builder for FakeExecutor
smklein Aug 18, 2023
f22548c
Fix helios tests
smklein Aug 19, 2023
ad7e3a4
Fix docs
smklein Aug 19, 2023
5272ca9
Split into helios-fusion, helios-tokamak, helios-protostar crates
smklein Aug 21, 2023
fa07b40
SharedByteQueue
smklein Aug 21, 2023
974e6b6
Merge branch 'main' into executor-fake
smklein Aug 21, 2023
44b9f85
Merge branch 'main' into executor-fake
smklein Aug 24, 2023
b016f0d
patch docs
smklein Aug 24, 2023
f17f24e
Merge branch 'main' into executor-fake
smklein Sep 19, 2023
db56d0d
Merge branch 'main' into executor-fake
smklein Sep 29, 2023
6790409
hakari
smklein Sep 29, 2023
108f4d6
more hakari
smklein Sep 29, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 11 additions & 100 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 3 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,6 @@ libc = "0.2.147"
linear-map = "1.2.0"
macaddr = { version = "1.0.1", features = ["serde_std"] }
mime_guess = "2.0.4"
mockall = "0.11"
smklein marked this conversation as resolved.
Show resolved Hide resolved
newtype_derive = "0.1.6"
nexus-client = { path = "nexus-client" }
nexus-db-model = { path = "nexus/db-model" }
Expand Down Expand Up @@ -298,10 +297,10 @@ serde_path_to_error = "0.1.14"
serde_tokenstream = "0.2"
serde_urlencoded = "0.7.1"
serde_with = "2.3.3"
serial_test = "0.10"
sha2 = "0.10.7"
sha3 = "0.10.8"
shell-words = "1.1.0"
shlex = "1.1.0"
signal-hook = "0.3"
signal-hook-tokio = { version = "0.3", features = [ "futures-v0_3" ] }
sled = "0.34"
Expand All @@ -312,7 +311,7 @@ slog-async = "2.7"
slog-dtrace = "0.2"
slog-envlogger = "2.2"
slog-term = "2.9"
smf = "0.2"
smf = "0.2.2"
snafu = "0.7"
sp-sim = { path = "sp-sim" }
sprockets-common = { git = "http://github.com/oxidecomputer/sprockets", rev = "77df31efa5619d0767ffc837ef7468101608aee9" }
Expand Down Expand Up @@ -363,7 +362,7 @@ wicket-common = { path = "wicket-common" }
wicketd-client = { path = "wicketd-client" }
zeroize = { version = "1.6.0", features = ["zeroize_derive", "std"] }
zip = { version = "0.6.6", default-features = false, features = ["deflate","bzip2"] }
zone = { version = "0.2", default-features = false, features = ["async"] }
zone = { version = "0.3", default-features = false, features = ["async"] }

[profile.dev]
panic = "abort"
Expand Down
12 changes: 4 additions & 8 deletions illumos-utils/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,33 +12,29 @@ bhyve_api.workspace = true
byteorder.workspace = true
camino.workspace = true
cfg-if.workspace = true
debug-ignore.workspace = true
futures.workspace = true
ipnetwork.workspace = true
itertools.workspace = true
libc.workspace = true
macaddr.workspace = true
omicron-common.workspace = true
oxide-vpc.workspace = true
schemars.workspace = true
serde.workspace = true
shlex.workspace = true
slog.workspace = true
smf.workspace = true
thiserror.workspace = true
tokio.workspace = true
uuid.workspace = true
zone.workspace = true

# only enabled via the `testing` feature
mockall = { workspace = true, optional = true }

[target.'cfg(target_os = "illumos")'.dependencies]
opte-ioctl.workspace = true

[dev-dependencies]
mockall.workspace = true
omicron-test-utils.workspace = true
regress.workspace = true
serde_json.workspace = true
toml.workspace = true

[features]
# Enable to generate MockZones
testing = ["mockall"]
Loading