diff --git a/Cargo.lock b/Cargo.lock index c72e84f14..b10044c1b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -82,7 +82,7 @@ version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" dependencies = [ - "getrandom", + "getrandom 0.2.11", "once_cell", "version_check", ] @@ -191,7 +191,7 @@ dependencies = [ "omicron-workspace-hack", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -226,14 +226,14 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] name = "async-stream" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" dependencies = [ "async-stream-impl", "futures-core", @@ -242,13 +242,13 @@ dependencies = [ [[package]] name = "async-stream-impl" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -259,7 +259,7 @@ checksum = "644dd749086bf3771a2fbc5f256fdb982d53f011c7d5d560304eafeecebce79d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -312,7 +312,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" dependencies = [ "futures-core", - "getrandom", + "getrandom 0.2.11", "instant", "pin-project-lite", "rand 0.8.5", @@ -475,7 +475,7 @@ dependencies = [ "proc-macro-crate 2.0.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", "syn_derive", ] @@ -593,7 +593,7 @@ checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" dependencies = [ "camino", "cargo-platform", - "semver 1.0.24", + "semver 1.0.26", "serde", "serde_json", "thiserror 1.0.69", @@ -684,7 +684,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -924,7 +924,7 @@ dependencies = [ "crucible-common", "crucible-protocol", "crucible-workspace-hack", - "dropshot", + "dropshot 0.16.0", "expectorate", "futures", "futures-core", @@ -946,6 +946,7 @@ dependencies = [ "reqwest", "ringbuffer", "schemars", + "semver 1.0.26", "serde", "serde_json", "slog", @@ -975,7 +976,7 @@ dependencies = [ "crucible-common", "crucible-smf 0.0.0", "crucible-workspace-hack", - "dropshot", + "dropshot 0.16.0", "expectorate", "futures", "http 0.2.12", @@ -984,6 +985,7 @@ dependencies = [ "openapi-lint", "openapiv3", "schemars", + "semver 1.0.26", "serde", "serde_json", "slog", @@ -1028,7 +1030,7 @@ dependencies = [ "anyhow", "atty", "crucible-workspace-hack", - "dropshot", + "dropshot 0.16.0", "nix 0.29.0", "proptest", "rustls-pemfile 1.0.4", @@ -1077,7 +1079,7 @@ dependencies = [ "crucible-common", "crucible-protocol", "crucible-workspace-hack", - "dropshot", + "dropshot 0.16.0", "expectorate", "futures", "futures-core", @@ -1104,6 +1106,7 @@ dependencies = [ "ringbuffer", "rusqlite", "schemars", + "semver 1.0.26", "serde", "serde_json", "sha2", @@ -1113,7 +1116,7 @@ dependencies = [ "slog-term", "statistical", "tempfile", - "thiserror 1.0.66", + "thiserror 1.0.69", "tokio", "tokio-rustls 0.24.1", "tokio-util", @@ -1158,7 +1161,7 @@ dependencies = [ "crucible-pantry", "crucible-pantry-client", "crucible-workspace-hack", - "dropshot", + "dropshot 0.16.0", "futures", "futures-core", "hex", @@ -1224,7 +1227,7 @@ dependencies = [ "crucible-common", "crucible-smf 0.0.0", "crucible-workspace-hack", - "dropshot", + "dropshot 0.16.0", "expectorate", "futures", "hex", @@ -1235,6 +1238,7 @@ dependencies = [ "openapiv3", "reqwest", "schemars", + "semver 1.0.26", "serde", "serde_json", "sha2", @@ -1324,12 +1328,12 @@ dependencies = [ "futures-executor", "futures-sink", "futures-util", - "getrandom", + "getrandom 0.2.11", "hex", "hyper", "hyper-rustls", "hyper-util", - "indexmap 2.7.0", + "indexmap 2.7.1", "libc", "log", "memchr", @@ -1349,13 +1353,13 @@ dependencies = [ "rustls-pki-types", "schemars", "scopeguard", - "semver 1.0.24", + "semver 1.0.26", "serde", "serde_json", "slog", "smallvec", "spin 0.9.8", - "syn 2.0.96", + "syn 2.0.99", "time", "time-macros", "tokio", @@ -1506,7 +1510,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.10.0", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -1517,7 +1521,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" dependencies = [ "darling_core", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -1552,7 +1556,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -1582,7 +1586,7 @@ checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -1595,7 +1599,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.0", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -1707,7 +1711,7 @@ dependencies = [ "camino", "chrono", "debug-ignore", - "dropshot_endpoint", + "dropshot_endpoint 0.12.0", "form_urlencoded", "futures", "hostname 0.4.0", @@ -1715,7 +1719,7 @@ dependencies = [ "http-body-util", "hyper", "hyper-util", - "indexmap 2.7.0", + "indexmap 2.7.1", "multer", "openapiv3", "paste", @@ -1743,6 +1747,57 @@ dependencies = [ "waitgroup", ] +[[package]] +name = "dropshot" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a37c505dad56e0c1fa5ed47e29fab1a1ab2d1a9d93e952024bb47168969705f6" +dependencies = [ + "async-stream", + "async-trait", + "base64 0.22.1", + "bytes", + "camino", + "chrono", + "debug-ignore", + "dropshot_endpoint 0.16.0", + "form_urlencoded", + "futures", + "hostname 0.4.0", + "http 1.2.0", + "http-body-util", + "hyper", + "hyper-util", + "indexmap 2.7.1", + "multer", + "openapiv3", + "paste", + "percent-encoding", + "rustls 0.22.4", + "rustls-pemfile 2.1.3", + "schemars", + "scopeguard", + "semver 1.0.26", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sha1", + "slog", + "slog-async", + "slog-bunyan", + "slog-json", + "slog-term", + "thiserror 2.0.11", + "tokio", + "tokio-rustls 0.25.0", + "toml 0.8.20", + "usdt", + "uuid", + "version_check", + "waitgroup", +] + [[package]] name = "dropshot_endpoint" version = "0.12.0" @@ -1754,7 +1809,22 @@ dependencies = [ "quote", "serde", "serde_tokenstream", - "syn 2.0.96", + "syn 2.0.99", +] + +[[package]] +name = "dropshot_endpoint" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b1a6db3728f0195e3ad62807649913aaba06d45421e883416e555e51464ef67" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "semver 1.0.26", + "serde", + "serde_tokenstream", + "syn 2.0.99", ] [[package]] @@ -1768,7 +1838,7 @@ dependencies = [ "crucible-common", "crucible-workspace-hack", "csv", - "dropshot", + "dropshot 0.16.0", "dsc-client", "expectorate", "openapi-lint", @@ -1776,6 +1846,7 @@ dependencies = [ "rand 0.8.5", "rand_chacha 0.3.1", "schemars", + "semver 1.0.26", "serde", "serde_json", "statistical", @@ -1858,7 +1929,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -1984,7 +2055,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -2076,7 +2147,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -2162,7 +2233,19 @@ checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" dependencies = [ "cfg-if", "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.13.3+wasi-0.2.2", + "windows-targets 0.52.6", ] [[package]] @@ -2213,7 +2296,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.2.0", - "indexmap 2.7.0", + "indexmap 2.7.1", "slab", "tokio", "tokio-util", @@ -2444,9 +2527,9 @@ checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" [[package]] name = "httparse" -version = "1.8.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "httpdate" @@ -2513,9 +2596,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "1.4.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ "bytes", "futures-channel", @@ -2702,9 +2785,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.7.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" dependencies = [ "equivalent", "hashbrown 0.15.2", @@ -2865,7 +2948,7 @@ version = "0.1.0" source = "git+https://github.com/oxidecomputer/opte?rev=76878de67229ea113d70503c441eab47ac5dc653#76878de67229ea113d70503c441eab47ac5dc653" dependencies = [ "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -3137,7 +3220,7 @@ dependencies = [ "hermit-abi 0.3.9", "libc", "log", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", ] @@ -3273,7 +3356,7 @@ dependencies = [ "derive-where", "derive_more", "dns-service-client", - "dropshot", + "dropshot 0.12.0", "futures", "gateway-client", "http 1.2.0", @@ -3426,7 +3509,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -3530,7 +3613,7 @@ dependencies = [ "proc-macro-crate 2.0.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -3583,7 +3666,7 @@ dependencies = [ "backoff", "camino", "chrono", - "dropshot", + "dropshot 0.12.0", "futures", "hex", "http 1.2.0", @@ -3601,7 +3684,7 @@ dependencies = [ "regress 0.9.1", "reqwest", "schemars", - "semver 1.0.24", + "semver 1.0.26", "serde", "serde_human_bytes", "serde_json", @@ -3663,7 +3746,7 @@ dependencies = [ "hex", "reqwest", "ring 0.16.20", - "semver 1.0.24", + "semver 1.0.26", "serde", "serde_derive", "serde_json", @@ -3694,7 +3777,7 @@ version = "0.4.0" source = "git+https://github.com/oxidecomputer/openapi-lint?branch=main#ef442ee4343e97b6d9c217d3e7533962fe7d7236" dependencies = [ "heck 0.4.1", - "indexmap 2.7.0", + "indexmap 2.7.1", "lazy_static", "openapiv3", "regex", @@ -3706,7 +3789,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc02deea53ffe807708244e5914f6b099ad7015a207ee24317c22112e17d9c5c" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.7.1", "serde", "serde_json", ] @@ -3734,7 +3817,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -3763,7 +3846,7 @@ checksum = "1e32339a5dc40459130b3bd269e9892439f55b33e772d2a9d402a789baaf4e8a" dependencies = [ "futures-core", "futures-sink", - "indexmap 2.7.0", + "indexmap 2.7.1", "js-sys", "once_cell", "pin-project-lite", @@ -3931,7 +4014,7 @@ dependencies = [ "oximeter-timeseries-macro", "oximeter-types", "prettyplease", - "syn 2.0.96", + "syn 2.0.99", "toml 0.8.20", "uuid", ] @@ -3944,7 +4027,7 @@ dependencies = [ "omicron-workspace-hack", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -3953,7 +4036,7 @@ version = "0.1.0" source = "git+https://github.com/oxidecomputer/omicron?branch=main#75214e1423796d7b885aa8a1981b43005b6cbf6a" dependencies = [ "chrono", - "dropshot", + "dropshot 0.12.0", "internal-dns", "nexus-client", "omicron-common", @@ -3985,7 +4068,7 @@ dependencies = [ "schemars", "serde", "slog-error-chain", - "syn 2.0.96", + "syn 2.0.99", "toml 0.8.20", ] @@ -3999,7 +4082,7 @@ dependencies = [ "oximeter-types", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -4106,7 +4189,7 @@ dependencies = [ "regex", "regex-syntax", "structmeta", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -4163,7 +4246,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -4184,7 +4267,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.7.0", + "indexmap 2.7.1", "serde", "serde_derive", ] @@ -4317,7 +4400,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" dependencies = [ "proc-macro2", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -4432,7 +4515,7 @@ checksum = "d85934a440963a69f9f04f48507ff6e7aa2952a5b2d8f96cc37fa3dd5c270f66" dependencies = [ "heck 0.5.0", "http 1.2.0", - "indexmap 2.7.0", + "indexmap 2.7.1", "openapiv3", "proc-macro2", "quote", @@ -4440,7 +4523,7 @@ dependencies = [ "schemars", "serde", "serde_json", - "syn 2.0.96", + "syn 2.0.99", "thiserror 1.0.69", "typify 0.2.0", "unicode-ident", @@ -4454,7 +4537,7 @@ checksum = "37adc80a94c9cae890e82deeeecc9d8f2a5cb153256caaf1bf0f03611e537214" dependencies = [ "heck 0.5.0", "http 1.2.0", - "indexmap 2.7.0", + "indexmap 2.7.1", "openapiv3", "proc-macro2", "quote", @@ -4462,7 +4545,7 @@ dependencies = [ "schemars", "serde", "serde_json", - "syn 2.0.96", + "syn 2.0.99", "thiserror 2.0.11", "typify 0.3.0", "unicode-ident", @@ -4483,7 +4566,7 @@ dependencies = [ "serde_json", "serde_tokenstream", "serde_yaml", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -4501,7 +4584,7 @@ dependencies = [ "serde_json", "serde_tokenstream", "serde_yaml", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -4684,7 +4767,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.11", ] [[package]] @@ -4811,7 +4894,7 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" dependencies = [ - "getrandom", + "getrandom 0.2.11", "libredox", "thiserror 1.0.69", ] @@ -4995,7 +5078,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b" dependencies = [ "cc", - "getrandom", + "getrandom 0.2.11", "libc", "spin 0.9.8", "untrusted 0.9.0", @@ -5094,7 +5177,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.24", + "semver 1.0.26", ] [[package]] @@ -5280,7 +5363,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -5306,7 +5389,7 @@ checksum = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -5356,9 +5439,9 @@ checksum = "d4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac" [[package]] name = "semver" -version = "1.0.24" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" dependencies = [ "serde", ] @@ -5389,7 +5472,7 @@ checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -5400,7 +5483,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -5442,7 +5525,7 @@ checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -5463,7 +5546,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -5488,7 +5571,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.7.0", + "indexmap 2.7.1", "serde", "serde_derive", "serde_json", @@ -5505,7 +5588,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -5514,7 +5597,7 @@ version = "0.9.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3cc7a1570e38322cfe4154732e5110f887ea57e22b76f4bfd32b5bdd3368666c" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.7.1", "itoa", "ryu", "serde", @@ -5702,7 +5785,7 @@ source = "git+https://github.com/oxidecomputer/slog-error-chain?branch=main#15f6 dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -5855,7 +5938,7 @@ dependencies = [ "proc-macro2", "quote", "structmeta-derive", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -5866,7 +5949,7 @@ checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -5888,7 +5971,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -5901,7 +5984,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -5939,9 +6022,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.96" +version = "2.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" +checksum = "e02e925281e18ffd9d640e234264753c43edc62d64b2d4cf898f1bc5e75f3fc2" dependencies = [ "proc-macro2", "quote", @@ -5957,7 +6040,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -6078,7 +6161,7 @@ dependencies = [ "proc-macro2", "quote", "structmeta", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -6107,7 +6190,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -6118,7 +6201,7 @@ checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -6237,7 +6320,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -6358,7 +6441,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.7.1", "serde", "serde_spanned", "toml_datetime", @@ -6371,7 +6454,7 @@ version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.7.1", "toml_datetime", "winnow 0.5.19", ] @@ -6382,7 +6465,7 @@ version = "0.22.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.7.1", "serde", "serde_spanned", "toml_datetime", @@ -6441,7 +6524,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -6550,10 +6633,10 @@ dependencies = [ "quote", "regress 0.10.1", "schemars", - "semver 1.0.24", + "semver 1.0.26", "serde", "serde_json", - "syn 2.0.96", + "syn 2.0.99", "thiserror 1.0.69", "unicode-ident", ] @@ -6570,10 +6653,10 @@ dependencies = [ "quote", "regress 0.10.1", "schemars", - "semver 1.0.24", + "semver 1.0.26", "serde", "serde_json", - "syn 2.0.96", + "syn 2.0.99", "thiserror 2.0.11", "unicode-ident", ] @@ -6587,11 +6670,11 @@ dependencies = [ "proc-macro2", "quote", "schemars", - "semver 1.0.24", + "semver 1.0.26", "serde", "serde_json", "serde_tokenstream", - "syn 2.0.96", + "syn 2.0.99", "typify-impl 0.2.0", ] @@ -6604,11 +6687,11 @@ dependencies = [ "proc-macro2", "quote", "schemars", - "semver 1.0.24", + "semver 1.0.26", "serde", "serde_json", "serde_tokenstream", - "syn 2.0.96", + "syn 2.0.99", "typify-impl 0.3.0", ] @@ -6713,7 +6796,7 @@ dependencies = [ "either", "futures", "indent_write", - "indexmap 2.7.0", + "indexmap 2.7.1", "libsw", "linear-map", "omicron-workspace-hack", @@ -6773,7 +6856,7 @@ dependencies = [ "proc-macro2", "quote", "serde_tokenstream", - "syn 2.0.96", + "syn 2.0.99", "usdt-impl", ] @@ -6791,7 +6874,7 @@ dependencies = [ "quote", "serde", "serde_json", - "syn 2.0.96", + "syn 2.0.99", "thiserror 1.0.69", "thread-id", "version_check", @@ -6807,7 +6890,7 @@ dependencies = [ "proc-macro2", "quote", "serde_tokenstream", - "syn 2.0.96", + "syn 2.0.99", "usdt-impl", ] @@ -6825,11 +6908,11 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "uuid" -version = "1.11.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" +checksum = "e0f540e3240398cce6128b64ba83fdbdd86129c16a3aa1a3a252efd66eb3d587" dependencies = [ - "getrandom", + "getrandom 0.3.1", "serde", ] @@ -6930,6 +7013,15 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasi" +version = "0.13.3+wasi-0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +dependencies = [ + "wit-bindgen-rt", +] + [[package]] name = "wasite" version = "0.1.0" @@ -6958,7 +7050,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", "wasm-bindgen-shared", ] @@ -6992,7 +7084,7 @@ checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -7424,6 +7516,15 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags 2.6.0", +] + [[package]] name = "wyz" version = "0.5.1" @@ -7470,7 +7571,7 @@ checksum = "125139de3f6b9d625c39e2efdd73d41bdac468ccd556556440e322be0e1bbd91" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] @@ -7481,7 +7582,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.99", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 19f33c392..7f20798e2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -83,6 +83,7 @@ ringbuffer = "0.15.0" rusqlite = { version = "0.32" } rustls-pemfile = { version = "1.0.4" } schemars = { version = "0.8", features = [ "chrono", "uuid1" ] } +semver = "1" serde = { version = "1", features = [ "derive" ] } serde_json = "1" sha2 = "0.10" @@ -114,7 +115,7 @@ usdt = "0.5.0" uuid = { version = "1", features = [ "serde", "v4" ] } # git -dropshot = { version = "0.12.0", features = [ "usdt-probes" ] } +dropshot = { version = "0.16.0", features = [ "usdt-probes" ] } omicron-common = { git = "https://github.com/oxidecomputer/omicron", branch = "main" } nexus-client = { git = "https://github.com/oxidecomputer/omicron", branch = "main" } internal-dns = { git = "https://github.com/oxidecomputer/omicron", branch = "main" } diff --git a/agent/Cargo.toml b/agent/Cargo.toml index 754859d3d..eb0127acf 100644 --- a/agent/Cargo.toml +++ b/agent/Cargo.toml @@ -16,6 +16,7 @@ http.workspace = true hyper.workspace = true omicron-common.workspace = true schemars.workspace = true +semver.workspace = true serde.workspace = true serde_json.workspace = true slog.workspace = true diff --git a/agent/src/main.rs b/agent/src/main.rs index 8f3a61855..93157bb4b 100644 --- a/agent/src/main.rs +++ b/agent/src/main.rs @@ -3,6 +3,7 @@ use anyhow::{anyhow, bail, Result}; use clap::Parser; use dropshot::{ConfigLogging, ConfigLoggingIfExists, ConfigLoggingLevel}; +use semver::Version; use slog::{debug, error, info, o, Logger}; use std::collections::HashSet; use std::io::Write; @@ -341,7 +342,8 @@ async fn main() -> Result<()> { fn write_openapi<W: Write>(f: &mut W) -> Result<()> { let api = server::make_api()?; - api.openapi("Crucible Agent", "0.0.0").write(f)?; + api.openapi("Crucible Agent", Version::new(0, 0, 1)) + .write(f)?; Ok(()) } diff --git a/agent/src/server.rs b/agent/src/server.rs index 63bf68dea..5f339d776 100644 --- a/agent/src/server.rs +++ b/agent/src/server.rs @@ -352,7 +352,7 @@ pub async fn run_server( let server = dropshot::HttpServerStarter::new( &dropshot::ConfigDropshot { bind_address, - request_body_max_bytes: 1024 * 10, + default_request_body_max_bytes: 1024 * 10, default_handler_task_mode: HandlerTaskMode::Detached, log_headers: vec![], }, diff --git a/downstairs/Cargo.toml b/downstairs/Cargo.toml index cd47457e8..0902d9844 100644 --- a/downstairs/Cargo.toml +++ b/downstairs/Cargo.toml @@ -37,6 +37,7 @@ reqwest.workspace = true ringbuffer.workspace = true rusqlite.workspace = true schemars.workspace = true +semver.workspace = true serde.workspace = true serde_json.workspace = true sha2.workspace = true diff --git a/downstairs/src/repair.rs b/downstairs/src/repair.rs index 64dfed894..93e624449 100644 --- a/downstairs/src/repair.rs +++ b/downstairs/src/repair.rs @@ -13,6 +13,7 @@ use dropshot::RequestContext; use dropshot::{endpoint, Path}; use hyper::{Response, StatusCode}; use schemars::JsonSchema; +use semver::Version; use serde::Deserialize; use super::*; @@ -30,7 +31,8 @@ pub struct FileServerContext { pub fn write_openapi<W: Write>(f: &mut W) -> Result<()> { let api = build_api(); - api.openapi("Downstairs Repair", "0.0.0").write(f)?; + api.openapi("Downstairs Repair", Version::new(0, 0, 1)) + .write(f)?; Ok(()) } @@ -57,7 +59,7 @@ pub fn repair_main( */ let config_dropshot = ConfigDropshot { bind_address: addr, - request_body_max_bytes: 1024, + default_request_body_max_bytes: 1024, default_handler_task_mode: HandlerTaskMode::Detached, log_headers: vec![], }; diff --git a/dsc/Cargo.toml b/dsc/Cargo.toml index 341f33378..ae038f720 100644 --- a/dsc/Cargo.toml +++ b/dsc/Cargo.toml @@ -17,6 +17,7 @@ dropshot.workspace = true rand.workspace = true rand_chacha.workspace = true schemars.workspace = true +semver.workspace = true serde.workspace = true statistical.workspace = true tokio.workspace = true diff --git a/dsc/src/control.rs b/dsc/src/control.rs index 371b2a70e..0d19ec641 100644 --- a/dsc/src/control.rs +++ b/dsc/src/control.rs @@ -11,6 +11,7 @@ use dropshot::Path; use dropshot::RequestContext; use dropshot::{HttpResponseOk, HttpResponseUpdatedNoContent}; use schemars::JsonSchema; +use semver::Version; use serde::Deserialize; use std::sync::Arc; @@ -51,7 +52,7 @@ pub async fn begin(dsci: Arc<DscInfo>, addr: SocketAddr) -> Result<(), String> { // Setup dropshot let config_dropshot = ConfigDropshot { bind_address: addr, - request_body_max_bytes: 1024, + default_request_body_max_bytes: 1024, default_handler_task_mode: HandlerTaskMode::Detached, log_headers: vec![], }; @@ -588,6 +589,7 @@ async fn dsc_enable_random_max( #[cfg(test)] mod test { use openapiv3::OpenAPI; + use semver::Version; use super::build_api; @@ -595,7 +597,7 @@ mod test { fn test_dsc_openapi() { let api = build_api(); let mut raw = Vec::new(); - api.openapi("DownStairs Control", "0.0.0") + api.openapi("DownStairs Control", Version::new(0, 0, 1)) .write(&mut raw) .unwrap(); let actual = String::from_utf8(raw).unwrap(); diff --git a/openapi/crucible-agent.json b/openapi/crucible-agent.json index f46982f1e..fe3856308 100644 --- a/openapi/crucible-agent.json +++ b/openapi/crucible-agent.json @@ -2,7 +2,7 @@ "openapi": "3.0.3", "info": { "title": "Crucible Agent", - "version": "0.0.0" + "version": "0.0.1" }, "paths": { "/crucible/0/regions": { diff --git a/openapi/crucible-control.json b/openapi/crucible-control.json index 5ff114574..9bca66e42 100644 --- a/openapi/crucible-control.json +++ b/openapi/crucible-control.json @@ -2,7 +2,7 @@ "openapi": "3.0.3", "info": { "title": "Crucible Control", - "version": "0.0.0" + "version": "0.0.1" }, "paths": { "/info": { diff --git a/openapi/crucible-pantry.json b/openapi/crucible-pantry.json index 62d7f0187..f8984fb53 100644 --- a/openapi/crucible-pantry.json +++ b/openapi/crucible-pantry.json @@ -2,7 +2,7 @@ "openapi": "3.0.3", "info": { "title": "Crucible Pantry", - "version": "0.0.0" + "version": "0.0.1" }, "paths": { "/crucible/pantry/0": { diff --git a/openapi/downstairs-repair.json b/openapi/downstairs-repair.json index bbcee6e71..ee171e912 100644 --- a/openapi/downstairs-repair.json +++ b/openapi/downstairs-repair.json @@ -2,7 +2,7 @@ "openapi": "3.0.3", "info": { "title": "Downstairs Repair", - "version": "0.0.0" + "version": "0.0.1" }, "paths": { "/extent/{eid}/files": { diff --git a/openapi/dsc-control.json b/openapi/dsc-control.json index 367ac701f..5c3332bf2 100644 --- a/openapi/dsc-control.json +++ b/openapi/dsc-control.json @@ -2,7 +2,7 @@ "openapi": "3.0.3", "info": { "title": "DownStairs Control", - "version": "0.0.0" + "version": "0.0.1" }, "paths": { "/allrunning": { diff --git a/pantry/Cargo.toml b/pantry/Cargo.toml index 745c41a0d..b37203c4c 100644 --- a/pantry/Cargo.toml +++ b/pantry/Cargo.toml @@ -15,6 +15,7 @@ futures.workspace = true http.workspace = true hyper.workspace = true schemars.workspace = true +semver.workspace = true serde.workspace = true serde_json.workspace = true slog.workspace = true diff --git a/pantry/src/main.rs b/pantry/src/main.rs index b94d45b53..2efce87ef 100644 --- a/pantry/src/main.rs +++ b/pantry/src/main.rs @@ -2,6 +2,7 @@ use anyhow::{anyhow, Result}; use clap::Parser; +use semver::Version; use std::io::Write; use std::net::SocketAddr; use std::path::PathBuf; @@ -46,7 +47,8 @@ async fn main() -> Result<()> { fn write_openapi<W: Write>(f: &mut W) -> Result<()> { let api = server::make_api().map_err(|e| anyhow!(e))?; - api.openapi("Crucible Pantry", "0.0.0").write(f)?; + api.openapi("Crucible Pantry", Version::new(0, 0, 1)) + .write(f)?; Ok(()) } diff --git a/pantry/src/pantry.rs b/pantry/src/pantry.rs index 1ba318d06..9c81555e6 100644 --- a/pantry/src/pantry.rs +++ b/pantry/src/pantry.rs @@ -851,7 +851,7 @@ impl Pantry { "volume {} is no longer active!", volume_id )), - hyper::StatusCode::GONE, + dropshot::ClientErrorStatusCode::GONE, format!("volume {} is no longer active!", volume_id), )) } else { diff --git a/pantry/src/server.rs b/pantry/src/server.rs index 35b95ec3e..f6a9448a0 100644 --- a/pantry/src/server.rs +++ b/pantry/src/server.rs @@ -469,7 +469,7 @@ pub fn run_server( bind_address, // max import, multiplied by worst case base64 overhead, plus room // for metadata - request_body_max_bytes: 1024 + default_request_body_max_bytes: 1024 + crate::pantry::PantryEntry::MAX_CHUNK_SIZE * 2, default_handler_task_mode: HandlerTaskMode::Detached, log_headers: vec![], diff --git a/upstairs/Cargo.toml b/upstairs/Cargo.toml index b344d4e28..0744d3ea1 100644 --- a/upstairs/Cargo.toml +++ b/upstairs/Cargo.toml @@ -39,6 +39,7 @@ rand.workspace = true rayon.workspace = true ringbuffer.workspace = true schemars.workspace = true +semver.workspace = true serde.workspace = true serde_json.workspace = true slog.workspace = true diff --git a/upstairs/src/control.rs b/upstairs/src/control.rs index ec172f412..cddf43de0 100644 --- a/upstairs/src/control.rs +++ b/upstairs/src/control.rs @@ -35,7 +35,7 @@ pub async fn start( */ let config_dropshot = ConfigDropshot { bind_address: addr, - request_body_max_bytes: 1024, + default_request_body_max_bytes: 1024, default_handler_task_mode: HandlerTaskMode::Detached, log_headers: vec![], }; @@ -186,6 +186,7 @@ async fn downstairs_work_queue( #[cfg(test)] mod test { use openapiv3::OpenAPI; + use semver::Version; use super::build_api; @@ -193,7 +194,7 @@ mod test { fn test_crucible_control_openapi() { let api = build_api(); let mut raw = Vec::new(); - api.openapi("Crucible Control", "0.0.0") + api.openapi("Crucible Control", Version::new(0, 0, 1)) .write(&mut raw) .unwrap(); let actual = String::from_utf8(raw).unwrap(); diff --git a/workspace-hack/Cargo.toml b/workspace-hack/Cargo.toml index f64b1c887..3a1bb1679 100644 --- a/workspace-hack/Cargo.toml +++ b/workspace-hack/Cargo.toml @@ -30,7 +30,6 @@ futures-core = { version = "0.3" } futures-executor = { version = "0.3" } futures-sink = { version = "0.3" } futures-util = { version = "0.3", features = ["channel", "io", "sink"] } -getrandom = { version = "0.2", default-features = false, features = ["std"] } hex = { version = "0.4", features = ["serde"] } indexmap = { version = "2", features = ["serde"] } libc = { version = "0.2", features = ["extra_traits"] } @@ -79,7 +78,6 @@ futures-core = { version = "0.3" } futures-executor = { version = "0.3" } futures-sink = { version = "0.3" } futures-util = { version = "0.3", features = ["channel", "io", "sink"] } -getrandom = { version = "0.2", default-features = false, features = ["std"] } hex = { version = "0.4", features = ["serde"] } indexmap = { version = "2", features = ["serde"] } libc = { version = "0.2", features = ["extra_traits"] } @@ -117,6 +115,7 @@ zerocopy = { version = "0.7", features = ["derive", "simd"] } [target.x86_64-unknown-linux-gnu.dependencies] bitflags-dff4ba8e3ae991db = { package = "bitflags", version = "1" } dof = { version = "0.3", default-features = false, features = ["des"] } +getrandom = { version = "0.2", default-features = false, features = ["std"] } hyper = { version = "1", features = ["full"] } hyper-rustls = { version = "0.27", default-features = false, features = ["http1", "http2", "ring", "tls12", "webpki-tokio"] } hyper-util = { version = "0.1", features = ["full"] } @@ -129,6 +128,7 @@ tokio-util = { version = "0.7", features = ["codec", "io"] } [target.x86_64-unknown-linux-gnu.build-dependencies] dof = { version = "0.3", default-features = false, features = ["des"] } +getrandom = { version = "0.2", default-features = false, features = ["std"] } hyper = { version = "1", features = ["full"] } hyper-rustls = { version = "0.27", default-features = false, features = ["http1", "http2", "ring", "tls12", "webpki-tokio"] } hyper-util = { version = "0.1", features = ["full"] } @@ -140,6 +140,7 @@ spin = { version = "0.9", default-features = false, features = ["once", "spin_mu tokio-util = { version = "0.7", features = ["codec", "io"] } [target.aarch64-apple-darwin.dependencies] +getrandom = { version = "0.2", default-features = false, features = ["std"] } hyper = { version = "1", features = ["full"] } hyper-rustls = { version = "0.27", default-features = false, features = ["http1", "http2", "ring", "tls12", "webpki-tokio"] } hyper-util = { version = "0.1", features = ["full"] } @@ -150,6 +151,7 @@ rustls-pki-types = { version = "1", features = ["std"] } tokio-util = { version = "0.7", features = ["codec", "io"] } [target.aarch64-apple-darwin.build-dependencies] +getrandom = { version = "0.2", default-features = false, features = ["std"] } hyper = { version = "1", features = ["full"] } hyper-rustls = { version = "0.27", default-features = false, features = ["http1", "http2", "ring", "tls12", "webpki-tokio"] } hyper-util = { version = "0.1", features = ["full"] } @@ -162,6 +164,7 @@ tokio-util = { version = "0.7", features = ["codec", "io"] } [target.x86_64-unknown-illumos.dependencies] bitflags-dff4ba8e3ae991db = { package = "bitflags", version = "1" } dof = { version = "0.3", default-features = false, features = ["des"] } +getrandom = { version = "0.2", default-features = false, features = ["std"] } hyper = { version = "1", features = ["full"] } hyper-rustls = { version = "0.27", default-features = false, features = ["http1", "http2", "ring", "tls12", "webpki-tokio"] } hyper-util = { version = "0.1", features = ["full"] } @@ -175,6 +178,7 @@ toml_edit = { version = "0.19", features = ["serde"] } [target.x86_64-unknown-illumos.build-dependencies] dof = { version = "0.3", default-features = false, features = ["des"] } +getrandom = { version = "0.2", default-features = false, features = ["std"] } hyper = { version = "1", features = ["full"] } hyper-rustls = { version = "0.27", default-features = false, features = ["http1", "http2", "ring", "tls12", "webpki-tokio"] } hyper-util = { version = "0.1", features = ["full"] }