From c7c0f3e32b69febe6a712983b3aa9b91387dbabd Mon Sep 17 00:00:00 2001 From: David Pacheco Date: Tue, 12 Nov 2024 16:51:42 -0800 Subject: [PATCH 01/12] test build for dropshot + API versioning --- Cargo.lock | 22 +++++++------ Cargo.toml | 6 ++-- dev-tools/openapi-manager/Cargo.toml | 1 + dev-tools/openapi-manager/src/spec.rs | 31 ++++++++++--------- internal-dns/resolver/Cargo.toml | 1 + internal-dns/resolver/src/resolver.rs | 2 +- nexus/external-api/src/lib.rs | 2 +- openapi/nexus.json | 2 +- oximeter/collector/Cargo.toml | 1 + oximeter/collector/src/bin/oximeter.rs | 2 +- sled-agent/Cargo.toml | 1 + sled-agent/src/sim/http_entrypoints_pantry.rs | 5 ++- 12 files changed, 43 insertions(+), 33 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 637465ebd83..ddc2ce4dd5e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2511,9 +2511,7 @@ dependencies = [ [[package]] name = "dropshot" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab804b8d4ab58d96e1e19c8ef87e1747a70d2819e92b659d6fe8d5ac5ac44d50" +version = "0.12.1" dependencies = [ "async-stream", "async-trait", @@ -2539,6 +2537,7 @@ dependencies = [ "rustls-pemfile 2.2.0", "schemars", "scopeguard", + "semver 1.0.23", "serde", "serde_json", "serde_path_to_error", @@ -2549,6 +2548,7 @@ dependencies = [ "slog-bunyan", "slog-json", "slog-term", + "thiserror", "tokio", "tokio-rustls 0.25.0", "toml 0.8.19", @@ -2560,13 +2560,12 @@ dependencies = [ [[package]] name = "dropshot_endpoint" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "796be76b11b79de0decd7be2105add01220f8bbe04cf1f83214c0b801414a722" +version = "0.12.1" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", + "semver 1.0.23", "serde", "serde_tokenstream", "syn 2.0.87", @@ -4008,9 +4007,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" dependencies = [ "bytes", "futures-channel", @@ -4616,6 +4615,7 @@ dependencies = [ "progenitor", "qorb", "reqwest", + "semver 1.0.23", "serde", "serde_json", "sled", @@ -7396,6 +7396,7 @@ dependencies = [ "owo-colors", "oximeter-api", "repo-depot-api", + "semver 1.0.23", "serde_json", "similar", "sled-agent-api", @@ -7656,6 +7657,7 @@ dependencies = [ "rand", "reqwest", "schemars", + "semver 1.0.23", "serde", "serde_json", "slog", @@ -12458,9 +12460,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" +checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" dependencies = [ "getrandom", "serde", diff --git a/Cargo.toml b/Cargo.toml index 522acee6ac2..2b86b354ef3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -354,7 +354,7 @@ dns-server = { path = "dns-server" } dns-server-api = { path = "dns-server-api" } dns-service-client = { path = "clients/dns-service-client" } dpd-client = { path = "clients/dpd-client" } -dropshot = { version = "0.12.0", features = [ "usdt-probes" ] } +dropshot = { version = "0.12.1", features = [ "usdt-probes" ] } dyn-clone = "1.0.17" either = "1.13.0" expectorate = "1.1.0" @@ -809,8 +809,8 @@ opt-level = 3 # It's common during development to use a local copy of various complex # dependencies. If you want to use those, uncomment one of these blocks. # -#[patch."https://github.com/oxidecomputer/dropshot"] -#dropshot = { path = "../dropshot/dropshot" } +[patch."crates-io"] +dropshot = { path = "../dropshot-api-versioning/dropshot" } #[patch.crates-io] #steno = { path = "../steno" } # [patch."https://github.com/oxidecomputer/propolis"] diff --git a/dev-tools/openapi-manager/Cargo.toml b/dev-tools/openapi-manager/Cargo.toml index d32477caf32..526d8c3a7ed 100644 --- a/dev-tools/openapi-manager/Cargo.toml +++ b/dev-tools/openapi-manager/Cargo.toml @@ -30,6 +30,7 @@ openapiv3.workspace = true owo-colors.workspace = true oximeter-api.workspace = true repo-depot-api.workspace = true +semver.workspace = true serde_json.workspace = true similar.workspace = true sled-agent-api.workspace = true diff --git a/dev-tools/openapi-manager/src/spec.rs b/dev-tools/openapi-manager/src/spec.rs index ff55bbeff58..81ff54f4099 100644 --- a/dev-tools/openapi-manager/src/spec.rs +++ b/dev-tools/openapi-manager/src/spec.rs @@ -18,7 +18,7 @@ pub fn all_apis() -> Vec { vec![ ApiSpec { title: "Bootstrap Agent API", - version: "0.0.1", + version: semver::Version::new(0, 0, 1), description: "Per-sled API for setup and teardown", boundary: ApiBoundary::Internal, api_description: @@ -28,7 +28,7 @@ pub fn all_apis() -> Vec { }, ApiSpec { title: "ClickHouse Cluster Admin Keeper API", - version: "0.0.1", + version: semver::Version::new(0, 0, 1), description: "API for interacting with the Oxide \ control plane's ClickHouse cluster keepers", boundary: ApiBoundary::Internal, @@ -39,7 +39,7 @@ pub fn all_apis() -> Vec { }, ApiSpec { title: "ClickHouse Cluster Admin Server API", - version: "0.0.1", + version: semver::Version::new(0, 0, 1), description: "API for interacting with the Oxide \ control plane's ClickHouse cluster replica servers", boundary: ApiBoundary::Internal, @@ -50,7 +50,7 @@ pub fn all_apis() -> Vec { }, ApiSpec { title: "CockroachDB Cluster Admin API", - version: "0.0.1", + version: semver::Version::new(0, 0, 1), description: "API for interacting with the Oxide \ control plane's CockroachDB cluster", boundary: ApiBoundary::Internal, @@ -61,7 +61,7 @@ pub fn all_apis() -> Vec { }, ApiSpec { title: "Oxide Management Gateway Service API", - version: "0.0.1", + version: semver::Version::new(0, 0, 1), description: "API for interacting with the Oxide \ control plane's gateway service", boundary: ApiBoundary::Internal, @@ -72,7 +72,7 @@ pub fn all_apis() -> Vec { }, ApiSpec { title: "Internal DNS", - version: "0.0.1", + version: semver::Version::new(0, 0, 1), description: "API for the internal DNS server", boundary: ApiBoundary::Internal, api_description: @@ -82,7 +82,7 @@ pub fn all_apis() -> Vec { }, ApiSpec { title: "Installinator API", - version: "0.0.1", + version: semver::Version::new(0, 0, 1), description: "API for installinator to fetch artifacts \ and report progress", boundary: ApiBoundary::Internal, @@ -93,7 +93,7 @@ pub fn all_apis() -> Vec { }, ApiSpec { title: "Oxide Region API", - version: "20241204.0", + version: semver::Version::new(20241204, 0, 0), description: "API for interacting with the Oxide control plane", boundary: ApiBoundary::External, api_description: @@ -103,7 +103,7 @@ pub fn all_apis() -> Vec { }, ApiSpec { title: "Nexus internal API", - version: "0.0.1", + version: semver::Version::new(0, 0, 1), description: "Nexus internal API", boundary: ApiBoundary::Internal, api_description: @@ -113,7 +113,7 @@ pub fn all_apis() -> Vec { }, ApiSpec { title: "Oxide Oximeter API", - version: "0.0.1", + version: semver::Version::new(0, 0, 1), description: "API for interacting with oximeter", boundary: ApiBoundary::Internal, api_description: @@ -123,7 +123,7 @@ pub fn all_apis() -> Vec { }, ApiSpec { title: "Oxide TUF Repo Depot API", - version: "0.0.1", + version: semver::Version::new(0, 0, 1), description: "API for fetching update artifacts", boundary: ApiBoundary::Internal, api_description: repo_depot_api::repo_depot_api_mod::stub_api_description, @@ -132,7 +132,7 @@ pub fn all_apis() -> Vec { }, ApiSpec { title: "Oxide Sled Agent API", - version: "0.0.1", + version: semver::Version::new(0, 0, 1), description: "API for interacting with individual sleds", boundary: ApiBoundary::Internal, api_description: @@ -142,7 +142,7 @@ pub fn all_apis() -> Vec { }, ApiSpec { title: "Oxide Technician Port Control Service", - version: "0.0.1", + version: semver::Version::new(0, 0, 1), description: "API for use by the technician port TUI: wicket", boundary: ApiBoundary::Internal, api_description: wicketd_api::wicketd_api_mod::stub_api_description, @@ -158,7 +158,7 @@ pub struct ApiSpec { pub title: &'static str, /// The version. - pub version: &'static str, + pub version: semver::Version, /// The description string. pub description: &'static str, @@ -251,7 +251,8 @@ impl ApiSpec { // impl formats the errors appropriately. anyhow::anyhow!("{}", error) })?; - let mut openapi_def = description.openapi(&self.title, &self.version); + let mut openapi_def = + description.openapi(&self.title, self.version.clone()); openapi_def .description(&self.description) .contact_url("https://oxide.computer") diff --git a/internal-dns/resolver/Cargo.toml b/internal-dns/resolver/Cargo.toml index 7c89fe41c4f..e4de05d5c9f 100644 --- a/internal-dns/resolver/Cargo.toml +++ b/internal-dns/resolver/Cargo.toml @@ -28,6 +28,7 @@ expectorate.workspace = true omicron-test-utils.workspace = true omicron-uuid-kinds.workspace = true progenitor.workspace = true +semver.workspace = true serde = { workspace = true, features = ["derive"] } serde_json.workspace = true sled.workspace = true diff --git a/internal-dns/resolver/src/resolver.rs b/internal-dns/resolver/src/resolver.rs index afee1181241..f2d038ad008 100644 --- a/internal-dns/resolver/src/resolver.rs +++ b/internal-dns/resolver/src/resolver.rs @@ -799,7 +799,7 @@ mod test { // Progenitor client. fn expect_openapi_json_valid_for_test_server() { let api = api(); - let openapi = api.openapi("Test Server", "v0.1.0"); + let openapi = api.openapi("Test Server", semver::Version::new(0,1,0)); let mut output = std::io::Cursor::new(Vec::new()); openapi.write(&mut output).unwrap(); expectorate::assert_contents( diff --git a/nexus/external-api/src/lib.rs b/nexus/external-api/src/lib.rs index b05366e0c56..e0102c2df1d 100644 --- a/nexus/external-api/src/lib.rs +++ b/nexus/external-api/src/lib.rs @@ -23,7 +23,7 @@ use omicron_common::api::external::{ use openapi_manager_types::ValidationContext; use openapiv3::OpenAPI; -pub const API_VERSION: &str = "20241204.0"; +pub const API_VERSION: &str = "20241204.0.0"; // API ENDPOINT FUNCTION NAMING CONVENTIONS // diff --git a/openapi/nexus.json b/openapi/nexus.json index f12ff4730cf..4eb7694296d 100644 --- a/openapi/nexus.json +++ b/openapi/nexus.json @@ -7,7 +7,7 @@ "url": "https://oxide.computer", "email": "api@oxide.computer" }, - "version": "20241204.0" + "version": "20241204.0.0" }, "paths": { "/device/auth": { diff --git a/oximeter/collector/Cargo.toml b/oximeter/collector/Cargo.toml index 334b091770a..87c82d1183d 100644 --- a/oximeter/collector/Cargo.toml +++ b/oximeter/collector/Cargo.toml @@ -28,6 +28,7 @@ qorb.workspace = true rand.workspace = true reqwest = { workspace = true, features = [ "json" ] } schemars.workspace = true +semver.workspace = true serde.workspace = true slog.workspace = true slog-async.workspace = true diff --git a/oximeter/collector/src/bin/oximeter.rs b/oximeter/collector/src/bin/oximeter.rs index efbc53cacee..16be3b69e22 100644 --- a/oximeter/collector/src/bin/oximeter.rs +++ b/oximeter/collector/src/bin/oximeter.rs @@ -24,7 +24,7 @@ use uuid::Uuid; pub fn run_standalone_openapi() -> Result<(), String> { standalone_nexus_api() - .openapi("Oxide Nexus API", "0.0.1") + .openapi("Oxide Nexus API", semver::Version::new(0, 0, 1)) .description("API for interacting with Nexus") .contact_url("https://oxide.computer") .contact_email("api@oxide.computer") diff --git a/sled-agent/Cargo.toml b/sled-agent/Cargo.toml index 557dcbcb4ed..442ddef7e19 100644 --- a/sled-agent/Cargo.toml +++ b/sled-agent/Cargo.toml @@ -115,6 +115,7 @@ omicron-test-utils.workspace = true pretty_assertions.workspace = true rcgen.workspace = true reqwest = { workspace = true, features = ["blocking"] } +semver.workspace = true subprocess.workspace = true slog-async.workspace = true slog-term.workspace = true diff --git a/sled-agent/src/sim/http_entrypoints_pantry.rs b/sled-agent/src/sim/http_entrypoints_pantry.rs index 0348cc30997..c98c7db665a 100644 --- a/sled-agent/src/sim/http_entrypoints_pantry.rs +++ b/sled-agent/src/sim/http_entrypoints_pantry.rs @@ -421,7 +421,10 @@ mod tests { let Value::String(ref version) = real_api["info"]["version"] else { unreachable!(); }; - let sim_api = super::api().openapi(title, version).json().unwrap(); + let sim_api = super::api() + .openapi(title, version.parse().unwrap()) + .json() + .unwrap(); // We'll assert that anything which apppears in the simulated API must // appear exactly as-is in the real API. I.e., the simulated is a subset From fe3331e2750c654dd22614c1235ee6a49bb0862a Mon Sep 17 00:00:00 2001 From: David Pacheco Date: Tue, 12 Nov 2024 16:52:26 -0800 Subject: [PATCH 02/12] rustfmt --- internal-dns/resolver/src/resolver.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal-dns/resolver/src/resolver.rs b/internal-dns/resolver/src/resolver.rs index f2d038ad008..607588270d5 100644 --- a/internal-dns/resolver/src/resolver.rs +++ b/internal-dns/resolver/src/resolver.rs @@ -799,7 +799,7 @@ mod test { // Progenitor client. fn expect_openapi_json_valid_for_test_server() { let api = api(); - let openapi = api.openapi("Test Server", semver::Version::new(0,1,0)); + let openapi = api.openapi("Test Server", semver::Version::new(0, 1, 0)); let mut output = std::io::Cursor::new(Vec::new()); openapi.write(&mut output).unwrap(); expectorate::assert_contents( From 3a17ac303ef178f80da3ebbfe318ea336a5f61ac Mon Sep 17 00:00:00 2001 From: David Pacheco Date: Tue, 12 Nov 2024 18:33:28 -0800 Subject: [PATCH 03/12] fix expectorate --- internal-dns/resolver/tests/output/test-server.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal-dns/resolver/tests/output/test-server.json b/internal-dns/resolver/tests/output/test-server.json index 5ed5d371612..0c17af69eee 100644 --- a/internal-dns/resolver/tests/output/test-server.json +++ b/internal-dns/resolver/tests/output/test-server.json @@ -2,7 +2,7 @@ "openapi": "3.0.3", "info": { "title": "Test Server", - "version": "v0.1.0" + "version": "0.1.0" }, "paths": { "/test": { From fd95b560a8d991208798939800abedfb291bcc62 Mon Sep 17 00:00:00 2001 From: David Pacheco Date: Tue, 12 Nov 2024 18:51:03 -0800 Subject: [PATCH 04/12] fix test failure in integration_tests::updates::test_update_uninitialized --- nexus/test-utils/src/http_testing.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/nexus/test-utils/src/http_testing.rs b/nexus/test-utils/src/http_testing.rs index 02fb87d74de..afa0a8af034 100644 --- a/nexus/test-utils/src/http_testing.rs +++ b/nexus/test-utils/src/http_testing.rs @@ -89,6 +89,7 @@ impl<'a> RequestBuilder<'a> { body: dropshot::Body::empty(), expected_status: None, allowed_headers: Some(vec![ + http::header::CONNECTION, http::header::CONTENT_ENCODING, http::header::CONTENT_LENGTH, http::header::CONTENT_TYPE, From c4e728189e6afd507a5fe313a9412cb2677d4636 Mon Sep 17 00:00:00 2001 From: David Pacheco Date: Wed, 13 Nov 2024 09:46:24 -0800 Subject: [PATCH 05/12] minimum changes for Dropshot v0.13.0 --- Cargo.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 2b86b354ef3..823b862424c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -354,7 +354,7 @@ dns-server = { path = "dns-server" } dns-server-api = { path = "dns-server-api" } dns-service-client = { path = "clients/dns-service-client" } dpd-client = { path = "clients/dpd-client" } -dropshot = { version = "0.12.1", features = [ "usdt-probes" ] } +dropshot = { version = "0.13.0", features = [ "usdt-probes" ] } dyn-clone = "1.0.17" either = "1.13.0" expectorate = "1.1.0" @@ -809,8 +809,8 @@ opt-level = 3 # It's common during development to use a local copy of various complex # dependencies. If you want to use those, uncomment one of these blocks. # -[patch."crates-io"] -dropshot = { path = "../dropshot-api-versioning/dropshot" } +#[patch."crates-io"] +#dropshot = { path = "../dropshot/dropshot" } #[patch.crates-io] #steno = { path = "../steno" } # [patch."https://github.com/oxidecomputer/propolis"] From 6806e0b34fefef72f3be56e77c4b60b9e5a88101 Mon Sep 17 00:00:00 2001 From: David Pacheco Date: Wed, 13 Nov 2024 10:32:29 -0800 Subject: [PATCH 06/12] avoid tight coupling with propolis Dropshot version --- Cargo.lock | 15 ++++++++++++--- Cargo.toml | 2 +- sled-agent/src/instance.rs | 22 ++++++---------------- sled-agent/src/sim/sled_agent.rs | 30 +++++++++++------------------- 4 files changed, 30 insertions(+), 39 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 637465ebd83..d0496a49cbb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -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?branch=dap/mock-server-fix#364413d21aa83a8427c317bbb3ad9733a1e2b97b" dependencies = [ "anyhow", "atty", @@ -8818,7 +8818,7 @@ dependencies = [ "futures", "hyper", "progenitor", - "propolis_types", + "propolis_types 0.0.0 (git+https://github.com/oxidecomputer/propolis?branch=dap/mock-server-fix)", "rand", "reqwest", "schemars", @@ -8853,13 +8853,22 @@ version = "0.0.0" source = "git+https://github.com/oxidecomputer/propolis?rev=86101eaf80b55e7f405b5cafe9b0de0e9f331656#86101eaf80b55e7f405b5cafe9b0de0e9f331656" dependencies = [ "crucible-client-types", - "propolis_types", + "propolis_types 0.0.0 (git+https://github.com/oxidecomputer/propolis?rev=86101eaf80b55e7f405b5cafe9b0de0e9f331656)", "schemars", "serde", "thiserror", "uuid", ] +[[package]] +name = "propolis_types" +version = "0.0.0" +source = "git+https://github.com/oxidecomputer/propolis?branch=dap/mock-server-fix#364413d21aa83a8427c317bbb3ad9733a1e2b97b" +dependencies = [ + "schemars", + "serde", +] + [[package]] name = "propolis_types" version = "0.0.0" diff --git a/Cargo.toml b/Cargo.toml index 522acee6ac2..fa7c9bff6fa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -523,7 +523,7 @@ 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" } +propolis-mock-server = { git = "https://github.com/oxidecomputer/propolis", branch = "dap/mock-server-fix" } proptest = "1.5.0" qorb = "0.2.0" quote = "1.0" diff --git a/sled-agent/src/instance.rs b/sled-agent/src/instance.rs index 4883918c369..f195e00ced1 100644 --- a/sled-agent/src/instance.rs +++ b/sled-agent/src/instance.rs @@ -2102,29 +2102,19 @@ 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()) + .await + .expect("couldn't create mock propolis-server") + .start(); 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..cf3d75a785e 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,19 @@ 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()) + .await + .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)); From 97d7d4d2c0eed648a1d9aedab961a58dbf77c9b9 Mon Sep 17 00:00:00 2001 From: David Pacheco Date: Wed, 13 Nov 2024 10:39:20 -0800 Subject: [PATCH 07/12] does not need to be async --- Cargo.lock | 4 ++-- sled-agent/src/instance.rs | 4 +--- sled-agent/src/sim/sled_agent.rs | 1 - 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d0496a49cbb..e87015b8604 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8808,7 +8808,7 @@ dependencies = [ [[package]] name = "propolis-mock-server" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?branch=dap/mock-server-fix#364413d21aa83a8427c317bbb3ad9733a1e2b97b" +source = "git+https://github.com/oxidecomputer/propolis?branch=dap/mock-server-fix#fea74a6e5a083dfb2d62245e9b01af3e192a091c" dependencies = [ "anyhow", "atty", @@ -8863,7 +8863,7 @@ dependencies = [ [[package]] name = "propolis_types" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?branch=dap/mock-server-fix#364413d21aa83a8427c317bbb3ad9733a1e2b97b" +source = "git+https://github.com/oxidecomputer/propolis?branch=dap/mock-server-fix#fea74a6e5a083dfb2d62245e9b01af3e192a091c" dependencies = [ "schemars", "serde", diff --git a/sled-agent/src/instance.rs b/sled-agent/src/instance.rs index f195e00ced1..63c363985ac 100644 --- a/sled-agent/src/instance.rs +++ b/sled-agent/src/instance.rs @@ -2112,9 +2112,7 @@ mod tests { info!(log, "Starting mock propolis-server..."); let srv = propolis_mock_server::start(dropshot_config, log.clone()) - .await - .expect("couldn't create mock propolis-server") - .start(); + .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 cf3d75a785e..5a482f3196a 100644 --- a/sled-agent/src/sim/sled_agent.rs +++ b/sled-agent/src/sim/sled_agent.rs @@ -802,7 +802,6 @@ impl SledAgent { }; info!(log, "Starting mock propolis-server..."); let srv = propolis_mock_server::start(dropshot_config, log.clone()) - .await .map_err(|error| { Error::unavail(&format!( "initializing propolis-server: {}", From 3da800b39529e7ce7988cdec3faca49509c4caab Mon Sep 17 00:00:00 2001 From: David Pacheco Date: Wed, 13 Nov 2024 10:43:49 -0800 Subject: [PATCH 08/12] update dep --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e87015b8604..7fcd490a713 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8808,7 +8808,7 @@ dependencies = [ [[package]] name = "propolis-mock-server" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?branch=dap/mock-server-fix#fea74a6e5a083dfb2d62245e9b01af3e192a091c" +source = "git+https://github.com/oxidecomputer/propolis?branch=dap/mock-server-fix#c753e479ddb9111af5223638e64ee9873c179bc9" dependencies = [ "anyhow", "atty", @@ -8863,7 +8863,7 @@ dependencies = [ [[package]] name = "propolis_types" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?branch=dap/mock-server-fix#fea74a6e5a083dfb2d62245e9b01af3e192a091c" +source = "git+https://github.com/oxidecomputer/propolis?branch=dap/mock-server-fix#c753e479ddb9111af5223638e64ee9873c179bc9" dependencies = [ "schemars", "serde", From 294caf7495bda0183a32aa06435735af66b64e0a Mon Sep 17 00:00:00 2001 From: David Pacheco Date: Wed, 13 Nov 2024 10:49:35 -0800 Subject: [PATCH 09/12] update Cargo.lock --- Cargo.lock | 171 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 119 insertions(+), 52 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ddc2ce4dd5e..3a4b2ff91e1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -906,7 +906,7 @@ dependencies = [ name = "bootstrap-agent-api" version = "0.1.0" dependencies = [ - "dropshot", + "dropshot 0.13.0", "omicron-common", "omicron-uuid-kinds", "omicron-workspace-hack", @@ -1170,7 +1170,7 @@ version = "0.1.0" dependencies = [ "anyhow", "clap", - "dropshot", + "dropshot 0.13.0", "futures", "libc", "omicron-common", @@ -1337,7 +1337,7 @@ name = "clickhouse-admin-api" version = "0.1.0" dependencies = [ "clickhouse-admin-types", - "dropshot", + "dropshot 0.13.0", "omicron-common", "omicron-uuid-kinds", "omicron-workspace-hack", @@ -1442,7 +1442,7 @@ name = "cockroach-admin-api" version = "0.1.0" dependencies = [ "cockroach-admin-types", - "dropshot", + "dropshot 0.13.0", "omicron-common", "omicron-uuid-kinds", "omicron-workspace-hack", @@ -1667,7 +1667,7 @@ name = "crdb-seed" version = "0.1.0" dependencies = [ "anyhow", - "dropshot", + "dropshot 0.13.0", "omicron-test-utils", "omicron-workspace-hack", "slog", @@ -1816,7 +1816,7 @@ dependencies = [ "anyhow", "atty", "crucible-workspace-hack", - "dropshot", + "dropshot 0.12.0", "nix 0.29.0", "rusqlite", "rustls-pemfile 1.0.4", @@ -2400,7 +2400,7 @@ dependencies = [ "clap", "dns-server-api", "dns-service-client", - "dropshot", + "dropshot 0.13.0", "expectorate", "hickory-client", "hickory-proto", @@ -2435,7 +2435,7 @@ name = "dns-server-api" version = "0.1.0" dependencies = [ "chrono", - "dropshot", + "dropshot 0.13.0", "internal-dns-types", "omicron-workspace-hack", "schemars", @@ -2511,7 +2511,58 @@ dependencies = [ [[package]] name = "dropshot" -version = "0.12.1" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab804b8d4ab58d96e1e19c8ef87e1747a70d2819e92b659d6fe8d5ac5ac44d50" +dependencies = [ + "async-stream", + "async-trait", + "base64 0.22.1", + "bytes", + "camino", + "chrono", + "debug-ignore", + "dropshot_endpoint 0.12.0", + "form_urlencoded", + "futures", + "hostname 0.4.0", + "http", + "http-body-util", + "hyper", + "hyper-util", + "indexmap 2.6.0", + "multer", + "openapiv3", + "paste", + "percent-encoding", + "rustls 0.22.4", + "rustls-pemfile 2.2.0", + "schemars", + "scopeguard", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sha1", + "slog", + "slog-async", + "slog-bunyan", + "slog-json", + "slog-term", + "tokio", + "tokio-rustls 0.25.0", + "toml 0.8.19", + "usdt", + "uuid", + "version_check", + "waitgroup", +] + +[[package]] +name = "dropshot" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50976b6bac0894e689bb8ce0e2e5892dfeedb0876408bc806f0582d81824a3b5" dependencies = [ "async-stream", "async-trait", @@ -2520,7 +2571,7 @@ dependencies = [ "camino", "chrono", "debug-ignore", - "dropshot_endpoint", + "dropshot_endpoint 0.13.0", "form_urlencoded", "futures", "hostname 0.4.0", @@ -2560,7 +2611,23 @@ dependencies = [ [[package]] name = "dropshot_endpoint" -version = "0.12.1" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "796be76b11b79de0decd7be2105add01220f8bbe04cf1f83214c0b801414a722" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "serde", + "serde_tokenstream", + "syn 2.0.87", +] + +[[package]] +name = "dropshot_endpoint" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8371ca3d0ecdd13df8a00acb66312633fc66a5e412076ccbc414238536f8290" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -3231,7 +3298,7 @@ dependencies = [ name = "gateway-api" version = "0.1.0" dependencies = [ - "dropshot", + "dropshot 0.13.0", "gateway-types", "omicron-common", "omicron-uuid-kinds", @@ -3336,7 +3403,7 @@ name = "gateway-test-utils" version = "0.1.0" dependencies = [ "camino", - "dropshot", + "dropshot 0.13.0", "gateway-messages", "gateway-types", "omicron-gateway", @@ -4353,7 +4420,7 @@ dependencies = [ "camino-tempfile", "cfg-if", "crucible-smf", - "dropshot", + "dropshot 0.13.0", "futures", "http", "ipnetwork", @@ -4520,7 +4587,7 @@ name = "installinator-api" version = "0.1.0" dependencies = [ "anyhow", - "dropshot", + "dropshot 0.13.0", "hyper", "installinator-common", "omicron-common", @@ -4585,7 +4652,7 @@ version = "0.1.0" dependencies = [ "anyhow", "clap", - "dropshot", + "dropshot 0.13.0", "hickory-resolver", "internal-dns-resolver", "internal-dns-types", @@ -4603,7 +4670,7 @@ dependencies = [ "assert_matches", "dns-server", "dns-service-client", - "dropshot", + "dropshot 0.13.0", "expectorate", "futures", "hickory-resolver", @@ -5519,7 +5586,7 @@ dependencies = [ "base64 0.22.1", "chrono", "cookie", - "dropshot", + "dropshot 0.13.0", "futures", "headers", "http", @@ -5576,7 +5643,7 @@ version = "0.1.0" dependencies = [ "anyhow", "camino", - "dropshot", + "dropshot 0.13.0", "expectorate", "libc", "omicron-common", @@ -5669,7 +5736,7 @@ dependencies = [ "db-macros", "diesel", "diesel-dtrace", - "dropshot", + "dropshot 0.13.0", "expectorate", "futures", "gateway-client", @@ -5752,7 +5819,7 @@ name = "nexus-external-api" version = "0.1.0" dependencies = [ "anyhow", - "dropshot", + "dropshot 0.13.0", "http", "hyper", "ipnetwork", @@ -5769,7 +5836,7 @@ dependencies = [ name = "nexus-internal-api" version = "0.1.0" dependencies = [ - "dropshot", + "dropshot 0.13.0", "nexus-types", "omicron-common", "omicron-uuid-kinds", @@ -6038,7 +6105,7 @@ dependencies = [ "crucible-agent-client", "dns-server", "dns-service-client", - "dropshot", + "dropshot 0.13.0", "futures", "gateway-messages", "gateway-test-utils", @@ -6099,7 +6166,7 @@ dependencies = [ "cookie", "derive-where", "derive_more", - "dropshot", + "dropshot 0.13.0", "futures", "gateway-client", "http", @@ -6440,7 +6507,7 @@ dependencies = [ "clickhouse-admin-api", "clickhouse-admin-types", "clickward", - "dropshot", + "dropshot 0.13.0", "expectorate", "http", "illumos-utils", @@ -6479,7 +6546,7 @@ dependencies = [ "cockroach-admin-api", "cockroach-admin-types", "csv", - "dropshot", + "dropshot 0.13.0", "expectorate", "http", "illumos-utils", @@ -6521,7 +6588,7 @@ dependencies = [ "camino", "camino-tempfile", "chrono", - "dropshot", + "dropshot 0.13.0", "expectorate", "futures", "hex", @@ -6581,7 +6648,7 @@ version = "0.1.0" dependencies = [ "anyhow", "clap", - "dropshot", + "dropshot 0.13.0", "expectorate", "futures", "libc", @@ -6621,7 +6688,7 @@ dependencies = [ "camino", "chrono", "clap", - "dropshot", + "dropshot 0.13.0", "expectorate", "futures", "gateway-api", @@ -6665,7 +6732,7 @@ version = "0.1.0" dependencies = [ "anyhow", "assert_matches", - "dropshot", + "dropshot 0.13.0", "futures", "internal-dns-resolver", "internal-dns-types", @@ -6740,7 +6807,7 @@ dependencies = [ "dns-server", "dns-service-client", "dpd-client", - "dropshot", + "dropshot 0.13.0", "expectorate", "fatfs", "futures", @@ -6868,7 +6935,7 @@ dependencies = [ "crucible-agent-client", "csv", "diesel", - "dropshot", + "dropshot 0.13.0", "dyn-clone", "expectorate", "futures", @@ -7035,7 +7102,7 @@ dependencies = [ "dns-server", "dns-service-client", "dpd-client", - "dropshot", + "dropshot 0.13.0", "expectorate", "flate2", "flume", @@ -7129,7 +7196,7 @@ dependencies = [ "camino", "camino-tempfile", "chrono", - "dropshot", + "dropshot 0.13.0", "expectorate", "filetime", "futures", @@ -7202,7 +7269,7 @@ dependencies = [ "curve25519-dalek", "digest", "dof", - "dropshot", + "dropshot 0.12.0", "ecdsa", "ed25519-dalek", "either", @@ -7382,7 +7449,7 @@ dependencies = [ "clickhouse-admin-api", "cockroach-admin-api", "dns-server-api", - "dropshot", + "dropshot 0.13.0", "fs-err", "gateway-api", "indent_write", @@ -7604,7 +7671,7 @@ name = "oximeter-api" version = "0.1.0" dependencies = [ "chrono", - "dropshot", + "dropshot 0.13.0", "omicron-common", "omicron-workspace-hack", "schemars", @@ -7636,7 +7703,7 @@ dependencies = [ "camino", "chrono", "clap", - "dropshot", + "dropshot 0.13.0", "expectorate", "futures", "httpmock", @@ -7692,7 +7759,7 @@ dependencies = [ "crossterm", "debug-ignore", "display-error-chain", - "dropshot", + "dropshot 0.13.0", "expectorate", "futures", "gethostname", @@ -7742,7 +7809,7 @@ version = "0.1.0" dependencies = [ "cfg-if", "chrono", - "dropshot", + "dropshot 0.13.0", "futures", "http", "hyper", @@ -7778,7 +7845,7 @@ dependencies = [ "anyhow", "chrono", "clap", - "dropshot", + "dropshot 0.13.0", "internal-dns-resolver", "internal-dns-types", "nexus-client", @@ -8816,7 +8883,7 @@ dependencies = [ "atty", "base64 0.21.7", "clap", - "dropshot", + "dropshot 0.12.0", "futures", "hyper", "progenitor", @@ -8917,7 +8984,7 @@ dependencies = [ "async-trait", "debug-ignore", "derive-where", - "dropshot", + "dropshot 0.12.0", "futures", "hickory-resolver", "rand", @@ -9153,7 +9220,7 @@ dependencies = [ "camino-tempfile", "chrono", "clap", - "dropshot", + "dropshot 0.13.0", "expectorate", "humantime", "indexmap 2.6.0", @@ -9321,7 +9388,7 @@ checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" name = "repo-depot-api" version = "0.1.0" dependencies = [ - "dropshot", + "dropshot 0.13.0", "omicron-common", "omicron-workspace-hack", "schemars", @@ -10458,7 +10525,7 @@ name = "sled-agent-api" version = "0.1.0" dependencies = [ "camino", - "dropshot", + "dropshot 0.13.0", "nexus-sled-agent-shared", "omicron-common", "omicron-uuid-kinds", @@ -10819,7 +10886,7 @@ dependencies = [ "anyhow", "async-trait", "clap", - "dropshot", + "dropshot 0.13.0", "futures", "gateway-messages", "gateway-types", @@ -12302,7 +12369,7 @@ dependencies = [ "clap", "debug-ignore", "display-error-chain", - "dropshot", + "dropshot 0.13.0", "futures", "hex", "hubtools", @@ -12778,7 +12845,7 @@ version = "0.1.0" dependencies = [ "anyhow", "dpd-client", - "dropshot", + "dropshot 0.13.0", "gateway-client", "maplit", "omicron-common", @@ -12834,7 +12901,7 @@ dependencies = [ "debug-ignore", "display-error-chain", "dpd-client", - "dropshot", + "dropshot 0.13.0", "either", "expectorate", "flate2", @@ -12903,7 +12970,7 @@ name = "wicketd-api" version = "0.1.0" dependencies = [ "bootstrap-agent-client", - "dropshot", + "dropshot 0.13.0", "gateway-client", "omicron-common", "omicron-passwords", @@ -13499,7 +13566,7 @@ dependencies = [ "anyhow", "camino", "clap", - "dropshot", + "dropshot 0.13.0", "illumos-utils", "omicron-common", "omicron-sled-agent", From 25d67e7e78431626fb01ed08ef22c2719f1bb9a0 Mon Sep 17 00:00:00 2001 From: David Pacheco Date: Wed, 13 Nov 2024 13:02:04 -0800 Subject: [PATCH 10/12] update Propolis for mock server updates --- Cargo.toml | 8 ++++---- package-manifest.toml | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) 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] From d94c9537f1b0a4006537f9f000522180def3121f Mon Sep 17 00:00:00 2001 From: David Pacheco Date: Wed, 13 Nov 2024 13:07:00 -0800 Subject: [PATCH 11/12] update Cargo.lock too --- Cargo.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) 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", From 892047b197820e58fd196768326068cc7c781e1d Mon Sep 17 00:00:00 2001 From: David Pacheco Date: Wed, 13 Nov 2024 13:14:04 -0800 Subject: [PATCH 12/12] hakari --- workspace-hack/Cargo.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/workspace-hack/Cargo.toml b/workspace-hack/Cargo.toml index f702282bca6..27bd0b559b1 100644 --- a/workspace-hack/Cargo.toml +++ b/workspace-hack/Cargo.toml @@ -66,7 +66,7 @@ hashbrown = { version = "0.15.0" } hex = { version = "0.4.3", features = ["serde"] } hickory-proto = { version = "0.24.1", features = ["text-parsing"] } hmac = { version = "0.12.1", default-features = false, features = ["reset"] } -hyper = { version = "1.4.1", features = ["full"] } +hyper = { version = "1.5.0", features = ["full"] } indexmap = { version = "2.6.0", features = ["serde"] } inout = { version = "0.1.3", default-features = false, features = ["std"] } itertools-5ef9efb8ec2df382 = { package = "itertools", version = "0.12.1" } @@ -130,7 +130,7 @@ unicode-bidi = { version = "0.3.17" } unicode-normalization = { version = "0.1.24" } usdt = { version = "0.5.0" } usdt-impl = { version = "0.5.0", default-features = false, features = ["asm", "des"] } -uuid = { version = "1.10.0", features = ["serde", "v4"] } +uuid = { version = "1.11.0", features = ["serde", "v4"] } x509-cert = { version = "0.2.5" } zerocopy = { version = "0.7.35", features = ["derive", "simd"] } zeroize = { version = "1.8.1", features = ["std", "zeroize_derive"] } @@ -186,7 +186,7 @@ hashbrown = { version = "0.15.0" } hex = { version = "0.4.3", features = ["serde"] } hickory-proto = { version = "0.24.1", features = ["text-parsing"] } hmac = { version = "0.12.1", default-features = false, features = ["reset"] } -hyper = { version = "1.4.1", features = ["full"] } +hyper = { version = "1.5.0", features = ["full"] } indexmap = { version = "2.6.0", features = ["serde"] } inout = { version = "0.1.3", default-features = false, features = ["std"] } itertools-5ef9efb8ec2df382 = { package = "itertools", version = "0.12.1" } @@ -253,7 +253,7 @@ unicode-normalization = { version = "0.1.24" } unicode-xid = { version = "0.2.6" } usdt = { version = "0.5.0" } usdt-impl = { version = "0.5.0", default-features = false, features = ["asm", "des"] } -uuid = { version = "1.10.0", features = ["serde", "v4"] } +uuid = { version = "1.11.0", features = ["serde", "v4"] } x509-cert = { version = "0.2.5" } zerocopy = { version = "0.7.35", features = ["derive", "simd"] } zeroize = { version = "1.8.1", features = ["std", "zeroize_derive"] }