From 9088b574e3949d63027288ec60f4dfb3516fa93f Mon Sep 17 00:00:00 2001 From: "Adam H. Leventhal" Date: Mon, 17 Jan 2022 12:43:24 -0800 Subject: [PATCH] update dropshot and progenitor --- Cargo.lock | 74 +++++++++++++++++++------- common/src/lib.rs | 12 ++--- oximeter/producer/examples/producer.rs | 7 ++- oximeter/producer/src/lib.rs | 1 + sled-agent/src/sim/disk.rs | 1 + sled-agent/src/sim/instance.rs | 1 + 6 files changed, 68 insertions(+), 28 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3c598f49a2a..9c2371a8c18 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -98,6 +98,27 @@ dependencies = [ "tokio", ] +[[package]] +name = "async-stream" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "171374e7e3b2504e0e5236e3b59260560f9fe94bfe9ac39ba5e4e929c5590625" +dependencies = [ + "async-stream-impl", + "futures-core", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "648ed8c8d2ce5409ccd57453d9d1b214b342a0d69376a6feda1fd6cae3299308" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "async-trait" version = "0.1.52" @@ -875,8 +896,9 @@ checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "dropshot" version = "0.6.1-dev" -source = "git+https://github.com/oxidecomputer/dropshot?branch=main#3ced9b099d72e9b975e9a6551989b027415b849b" +source = "git+https://github.com/oxidecomputer/dropshot?branch=main#8e4af93207fb79998eea90bd094ff7a5475673e5" dependencies = [ + "async-stream", "async-trait", "base64", "bytes", @@ -891,6 +913,8 @@ dependencies = [ "paste", "percent-encoding", "proc-macro2", + "rustls", + "rustls-pemfile", "schemars", "serde", "serde_json", @@ -902,6 +926,7 @@ dependencies = [ "slog-term", "syn", "tokio", + "tokio-rustls", "toml", "usdt 0.3.1", "uuid", @@ -910,7 +935,7 @@ dependencies = [ [[package]] name = "dropshot_endpoint" version = "0.6.1-dev" -source = "git+https://github.com/oxidecomputer/dropshot?branch=main#3ced9b099d72e9b975e9a6551989b027415b849b" +source = "git+https://github.com/oxidecomputer/dropshot?branch=main#8e4af93207fb79998eea90bd094ff7a5475673e5" dependencies = [ "proc-macro2", "quote", @@ -1263,9 +1288,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f072413d126e57991455e0a922b31e4c8ba7c2ffbebf6b78b4f8521397d65cd" +checksum = "0c9de88456263e249e241fcd211d3954e2c9b0ef7ccfc235a444eb367cae3689" dependencies = [ "bytes", "fnv", @@ -1469,9 +1494,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5" +checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223" dependencies = [ "autocfg", "hashbrown", @@ -2711,7 +2736,7 @@ dependencies = [ [[package]] name = "progenitor" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/progenitor#66b41ba301793b8d720770b2210bee8884446d3f" +source = "git+https://github.com/oxidecomputer/progenitor#f1f9e2e93850713908f4e6494808a07f3b253108" dependencies = [ "anyhow", "getopts", @@ -2725,7 +2750,7 @@ dependencies = [ [[package]] name = "progenitor-impl" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/progenitor#66b41ba301793b8d720770b2210bee8884446d3f" +source = "git+https://github.com/oxidecomputer/progenitor#f1f9e2e93850713908f4e6494808a07f3b253108" dependencies = [ "anyhow", "convert_case", @@ -2739,20 +2764,24 @@ dependencies = [ "schemars", "serde", "serde_json", + "syn", "thiserror", "typify", + "unicode-xid", ] [[package]] name = "progenitor-macro" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/progenitor#66b41ba301793b8d720770b2210bee8884446d3f" +source = "git+https://github.com/oxidecomputer/progenitor#f1f9e2e93850713908f4e6494808a07f3b253108" dependencies = [ "openapiv3", "proc-macro2", "progenitor-impl", "quote", + "serde", "serde_json", + "serde_tokenstream", "syn", ] @@ -2984,15 +3013,16 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c4e0a76dc12a116108933f6301b95e83634e0c47b0afbed6abbaa0601e99258" +checksum = "87f242f1488a539a79bac6dbe7c8609ae43b7914b7736210f239a37cccb32525" dependencies = [ "base64", "bytes", "encoding_rs", "futures-core", "futures-util", + "h2", "http", "http-body", "hyper", @@ -3294,9 +3324,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.74" +version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2bb9cd061c5865d345bb02ca49fcef1391741b672b54a0bf7b679badec3142" +checksum = "c059c05b48c5c0067d4b4b2b4f0732dd65feb52daf7e0ea09cd87e7dadc1af79" dependencies = [ "itoa 1.0.1", "ryu", @@ -3305,9 +3335,9 @@ dependencies = [ [[package]] name = "serde_tokenstream" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3ce95257fba42a656f558db28d56a9fac5aa6e4f29c5ef607f32f524fab0ab" +checksum = "d6deb15c3a535e81438110111d90168d91721652f502abb147f31cde129f683d" dependencies = [ "proc-macro2", "serde", @@ -3997,9 +4027,9 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.23.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4baa378e417d780beff82bf54ceb0d195193ea6a00c14e22359e7f39456b5689" +checksum = "a27d5f2b839802bd8267fa19b0530f5a08b9c08cd417976be2a65d130fe1c11b" dependencies = [ "rustls", "tokio", @@ -4154,7 +4184,7 @@ checksum = "b63708a265f51345575b27fe43f9500ad611579e764c79edbc2037b1121959ec" [[package]] name = "typify" version = "0.0.6-dev" -source = "git+https://github.com/oxidecomputer/typify#80b510b02b1db22de463efcf6e7762243bcea67a" +source = "git+https://github.com/oxidecomputer/typify#9afa917671b29fc231bc9ce304e041bdd685af09" dependencies = [ "typify-impl", "typify-macro", @@ -4163,9 +4193,10 @@ dependencies = [ [[package]] name = "typify-impl" version = "0.0.6-dev" -source = "git+https://github.com/oxidecomputer/typify#80b510b02b1db22de463efcf6e7762243bcea67a" +source = "git+https://github.com/oxidecomputer/typify#9afa917671b29fc231bc9ce304e041bdd685af09" dependencies = [ "convert_case", + "log", "proc-macro2", "quote", "rustfmt-wrapper", @@ -4173,17 +4204,20 @@ dependencies = [ "serde_json", "syn", "thiserror", + "unicode-xid", ] [[package]] name = "typify-macro" version = "0.0.6-dev" -source = "git+https://github.com/oxidecomputer/typify#80b510b02b1db22de463efcf6e7762243bcea67a" +source = "git+https://github.com/oxidecomputer/typify#9afa917671b29fc231bc9ce304e041bdd685af09" dependencies = [ "proc-macro2", "quote", "schemars", + "serde", "serde_json", + "serde_tokenstream", "syn", "typify-impl", ] diff --git a/common/src/lib.rs b/common/src/lib.rs index 8222f7f2c75..1d62c70d60b 100644 --- a/common/src/lib.rs +++ b/common/src/lib.rs @@ -34,18 +34,18 @@ pub mod packaging; macro_rules! generate_logging_api { ($path:literal) => { progenitor::generate_api!( - $path, - slog::Logger, - |log: &slog::Logger, request: &reqwest::Request| { + spec = $path, + inner_type = slog::Logger, + pre_hook = (|log: &slog::Logger, request: &reqwest::Request| { slog::debug!(log, "client request"; "method" => %request.method(), "uri" => %request.url(), "body" => ?&request.body(), ); - }, - |log: &slog::Logger, result: &Result<_, _>| { + }), + post_hook = (|log: &slog::Logger, result: &Result<_, _>| { slog::debug!(log, "client response"; "result" => ?result); - }, + }), ); }; } diff --git a/oximeter/producer/examples/producer.rs b/oximeter/producer/examples/producer.rs index ef20bb87623..c137f533bcb 100644 --- a/oximeter/producer/examples/producer.rs +++ b/oximeter/producer/examples/producer.rs @@ -86,8 +86,11 @@ impl Producer for CpuBusyProducer { #[tokio::main] async fn main() { let address = "[::1]:0".parse().unwrap(); - let dropshot_config = - ConfigDropshot { bind_address: address, request_body_max_bytes: 2048 }; + let dropshot_config = ConfigDropshot { + bind_address: address, + request_body_max_bytes: 2048, + tls: None, + }; let logging_config = ConfigLogging::StderrTerminal { level: ConfigLoggingLevel::Debug }; let server_info = ProducerEndpoint { diff --git a/oximeter/producer/src/lib.rs b/oximeter/producer/src/lib.rs index 29c8b3818cc..f7cb59e16f1 100644 --- a/oximeter/producer/src/lib.rs +++ b/oximeter/producer/src/lib.rs @@ -180,6 +180,7 @@ pub async fn register( client .cpapi_producers_post(&server_info.into()) .await + .map(|_| ()) .map_err(|msg| Error::RegistrationError(msg.to_string())) } diff --git a/sled-agent/src/sim/disk.rs b/sled-agent/src/sim/disk.rs index 95ef478dcc5..1bf395d7701 100644 --- a/sled-agent/src/sim/disk.rs +++ b/sled-agent/src/sim/disk.rs @@ -95,6 +95,7 @@ impl Simulatable for SimDisk { &nexus_client::types::DiskRuntimeState::from(current), ) .await + .map(|_| ()) .map_err(Error::from) } } diff --git a/sled-agent/src/sim/instance.rs b/sled-agent/src/sim/instance.rs index b7414d4c877..2e57353f878 100644 --- a/sled-agent/src/sim/instance.rs +++ b/sled-agent/src/sim/instance.rs @@ -102,6 +102,7 @@ impl Simulatable for SimInstance { &nexus_client::types::InstanceRuntimeState::from(current), ) .await + .map(|_| ()) .map_err(Error::from) } }