diff --git a/Cargo.lock b/Cargo.lock index 637465ebd83..1abfb1400fc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -693,7 +693,7 @@ dependencies = [ [[package]] name = "bhyve_api" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=86101eaf80b55e7f405b5cafe9b0de0e9f331656#86101eaf80b55e7f405b5cafe9b0de0e9f331656" +source = "git+https://github.com/oxidecomputer/propolis?rev=aadc0998c0f07f08ab15a95c006074291734800f#aadc0998c0f07f08ab15a95c006074291734800f" dependencies = [ "bhyve_api_sys", "libc", @@ -703,7 +703,7 @@ dependencies = [ [[package]] name = "bhyve_api_sys" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=86101eaf80b55e7f405b5cafe9b0de0e9f331656#86101eaf80b55e7f405b5cafe9b0de0e9f331656" +source = "git+https://github.com/oxidecomputer/propolis?rev=aadc0998c0f07f08ab15a95c006074291734800f#aadc0998c0f07f08ab15a95c006074291734800f" dependencies = [ "libc", "strum", @@ -6811,7 +6811,7 @@ dependencies = [ "pq-sys", "pretty_assertions", "progenitor-client", - "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=86101eaf80b55e7f405b5cafe9b0de0e9f331656)", + "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=aadc0998c0f07f08ab15a95c006074291734800f)", "qorb", "rand", "rcgen", @@ -7074,7 +7074,7 @@ dependencies = [ "oximeter-producer", "oxnet", "pretty_assertions", - "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=86101eaf80b55e7f405b5cafe9b0de0e9f331656)", + "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=aadc0998c0f07f08ab15a95c006074291734800f)", "propolis-mock-server", "propolis_api_types", "rand", @@ -8766,7 +8766,7 @@ dependencies = [ [[package]] name = "propolis-client" version = "0.1.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=86101eaf80b55e7f405b5cafe9b0de0e9f331656#86101eaf80b55e7f405b5cafe9b0de0e9f331656" +source = "git+https://github.com/oxidecomputer/propolis?rev=aadc0998c0f07f08ab15a95c006074291734800f#aadc0998c0f07f08ab15a95c006074291734800f" dependencies = [ "async-trait", "base64 0.21.7", @@ -8808,7 +8808,7 @@ dependencies = [ [[package]] name = "propolis-mock-server" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=86101eaf80b55e7f405b5cafe9b0de0e9f331656#86101eaf80b55e7f405b5cafe9b0de0e9f331656" +source = "git+https://github.com/oxidecomputer/propolis?rev=aadc0998c0f07f08ab15a95c006074291734800f#aadc0998c0f07f08ab15a95c006074291734800f" dependencies = [ "anyhow", "atty", @@ -8850,7 +8850,7 @@ dependencies = [ [[package]] name = "propolis_api_types" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=86101eaf80b55e7f405b5cafe9b0de0e9f331656#86101eaf80b55e7f405b5cafe9b0de0e9f331656" +source = "git+https://github.com/oxidecomputer/propolis?rev=aadc0998c0f07f08ab15a95c006074291734800f#aadc0998c0f07f08ab15a95c006074291734800f" dependencies = [ "crucible-client-types", "propolis_types", @@ -8863,7 +8863,7 @@ dependencies = [ [[package]] name = "propolis_types" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=86101eaf80b55e7f405b5cafe9b0de0e9f331656#86101eaf80b55e7f405b5cafe9b0de0e9f331656" +source = "git+https://github.com/oxidecomputer/propolis?rev=aadc0998c0f07f08ab15a95c006074291734800f#aadc0998c0f07f08ab15a95c006074291734800f" dependencies = [ "schemars", "serde", @@ -10506,7 +10506,7 @@ dependencies = [ "omicron-uuid-kinds", "omicron-workspace-hack", "oxnet", - "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=86101eaf80b55e7f405b5cafe9b0de0e9f331656)", + "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=aadc0998c0f07f08ab15a95c006074291734800f)", "rcgen", "schemars", "serde", diff --git a/Cargo.toml b/Cargo.toml index 522acee6ac2..5093ccec29a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -520,10 +520,10 @@ prettyplease = { version = "0.2.25", features = ["verbatim"] } proc-macro2 = "1.0" progenitor = "0.8.0" progenitor-client = "0.8.0" -bhyve_api = { git = "https://github.com/oxidecomputer/propolis", rev = "86101eaf80b55e7f405b5cafe9b0de0e9f331656" } -propolis_api_types = { git = "https://github.com/oxidecomputer/propolis", rev = "86101eaf80b55e7f405b5cafe9b0de0e9f331656" } -propolis-client = { git = "https://github.com/oxidecomputer/propolis", rev = "86101eaf80b55e7f405b5cafe9b0de0e9f331656" } -propolis-mock-server = { git = "https://github.com/oxidecomputer/propolis", rev = "86101eaf80b55e7f405b5cafe9b0de0e9f331656" } +bhyve_api = { git = "https://github.com/oxidecomputer/propolis", rev = "aadc0998c0f07f08ab15a95c006074291734800f" } +propolis_api_types = { git = "https://github.com/oxidecomputer/propolis", rev = "aadc0998c0f07f08ab15a95c006074291734800f" } +propolis-client = { git = "https://github.com/oxidecomputer/propolis", rev = "aadc0998c0f07f08ab15a95c006074291734800f" } +propolis-mock-server = { git = "https://github.com/oxidecomputer/propolis", rev = "aadc0998c0f07f08ab15a95c006074291734800f" } proptest = "1.5.0" qorb = "0.2.0" quote = "1.0" diff --git a/package-manifest.toml b/package-manifest.toml index 535f1e2150b..ae7a58394ac 100644 --- a/package-manifest.toml +++ b/package-manifest.toml @@ -621,10 +621,10 @@ service_name = "propolis-server" only_for_targets.image = "standard" source.type = "prebuilt" source.repo = "propolis" -source.commit = "86101eaf80b55e7f405b5cafe9b0de0e9f331656" +source.commit = "aadc0998c0f07f08ab15a95c006074291734800f" # The SHA256 digest is automatically posted to: # https://buildomat.eng.oxide.computer/public/file/oxidecomputer/propolis/image//propolis-server.sha256.txt -source.sha256 = "8dd411d6f2db23f93c2340cce11aa194da8dcb8cfd20081a614a5722ffbfe255" +source.sha256 = "3cd889201aaa8cc5b916fc8f8176ab5529e2fc1d5d57165ad9a660eb48affef9" output.type = "zone" [package.mg-ddm-gz] diff --git a/sled-agent/src/instance.rs b/sled-agent/src/instance.rs index 4883918c369..63c363985ac 100644 --- a/sled-agent/src/instance.rs +++ b/sled-agent/src/instance.rs @@ -2102,29 +2102,17 @@ mod tests { // TODO: factor out, this is also in sled-agent-sim. fn propolis_mock_server( log: &Logger, - ) -> (HttpServer>, PropolisClient) { + ) -> (propolis_mock_server::Server, PropolisClient) { let propolis_bind_address = SocketAddr::new(Ipv6Addr::LOCALHOST.into(), 0); // allocate port - let dropshot_config = dropshot::ConfigDropshot { + let dropshot_config = propolis_mock_server::Config { bind_address: propolis_bind_address, ..Default::default() }; - let propolis_log = log.new(o!("component" => "propolis-server-mock")); - let private = - Arc::new(propolis_mock_server::Context::new(propolis_log)); info!(log, "Starting mock propolis-server..."); - let dropshot_log = log.new(o!("component" => "dropshot")); - let mock_api = propolis_mock_server::api(); - - let srv = dropshot::HttpServerStarter::new( - &dropshot_config, - mock_api, - private, - &dropshot_log, - ) - .expect("couldn't create mock propolis-server") - .start(); + let srv = propolis_mock_server::start(dropshot_config, log.clone()) + .expect("couldn't create mock propolis-server"); let client = propolis_client::Client::new(&format!( "http://{}", srv.local_addr() diff --git a/sled-agent/src/sim/sled_agent.rs b/sled-agent/src/sim/sled_agent.rs index aef4128c52b..5a482f3196a 100644 --- a/sled-agent/src/sim/sled_agent.rs +++ b/sled-agent/src/sim/sled_agent.rs @@ -17,7 +17,7 @@ use crate::sim::simulatable::Simulatable; use crate::updates::UpdateManager; use anyhow::bail; use anyhow::Context; -use dropshot::{HttpError, HttpServer}; +use dropshot::HttpError; use futures::lock::Mutex; use nexus_sled_agent_shared::inventory::{ Inventory, InventoryDataset, InventoryDisk, InventoryZpool, @@ -43,7 +43,6 @@ use oxnet::Ipv6Net; use propolis_client::{ types::VolumeConstructionRequest, Client as PropolisClient, }; -use propolis_mock_server::Context as PropolisContext; use sled_agent_types::disk::DiskStateRequested; use sled_agent_types::early_networking::{ EarlyNetworkConfig, EarlyNetworkConfigBody, @@ -81,7 +80,7 @@ pub struct SledAgent { disk_id_to_region_ids: Mutex>>, pub v2p_mappings: Mutex>, mock_propolis: - Mutex>, PropolisClient)>>, + Mutex>, /// lists of external IPs assigned to instances pub external_ips: Mutex>>, @@ -797,26 +796,18 @@ impl SledAgent { } let propolis_bind_address = SocketAddr::new(Ipv6Addr::LOCALHOST.into(), 0); - let dropshot_config = dropshot::ConfigDropshot { + let dropshot_config = propolis_mock_server::Config { bind_address: propolis_bind_address, ..Default::default() }; - let propolis_log = log.new(o!("component" => "propolis-server-mock")); - let private = Arc::new(PropolisContext::new(propolis_log)); info!(log, "Starting mock propolis-server..."); - let dropshot_log = log.new(o!("component" => "dropshot")); - let mock_api = propolis_mock_server::api(); - - let srv = dropshot::HttpServerStarter::new( - &dropshot_config, - mock_api, - private, - &dropshot_log, - ) - .map_err(|error| { - Error::unavail(&format!("initializing propolis-server: {}", error)) - })? - .start(); + let srv = propolis_mock_server::start(dropshot_config, log.clone()) + .map_err(|error| { + Error::unavail(&format!( + "initializing propolis-server: {}", + error + )) + })?; let addr = srv.local_addr(); let client = propolis_client::Client::new(&format!("http://{}", addr)); *mock_lock = Some((srv, client));