diff --git a/Cargo.lock b/Cargo.lock index 6d19fda6a7f..765ecd783b3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -690,7 +690,7 @@ dependencies = [ [[package]] name = "bhyve_api" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=8e9252917993e36d43dce96b4409ef151b7d4442#8e9252917993e36d43dce96b4409ef151b7d4442" +source = "git+https://github.com/oxidecomputer/propolis?rev=aaa51291b747928a1d69e4b6059a54163d4d2e6d#aaa51291b747928a1d69e4b6059a54163d4d2e6d" dependencies = [ "bhyve_api_sys", "libc", @@ -700,7 +700,7 @@ dependencies = [ [[package]] name = "bhyve_api_sys" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=8e9252917993e36d43dce96b4409ef151b7d4442#8e9252917993e36d43dce96b4409ef151b7d4442" +source = "git+https://github.com/oxidecomputer/propolis?rev=aaa51291b747928a1d69e4b6059a54163d4d2e6d#aaa51291b747928a1d69e4b6059a54163d4d2e6d" dependencies = [ "libc", "strum 0.26.3", @@ -2063,7 +2063,7 @@ dependencies = [ [[package]] name = "crucible-agent-client" version = "0.0.1" -source = "git+https://github.com/oxidecomputer/crucible?rev=102b0bb8305cfbc3fa74c52d643d716653756372#102b0bb8305cfbc3fa74c52d643d716653756372" +source = "git+https://github.com/oxidecomputer/crucible?rev=75ea3408643664877aa603ffc65996ed6dc34c0a#75ea3408643664877aa603ffc65996ed6dc34c0a" dependencies = [ "anyhow", "chrono", @@ -2079,7 +2079,7 @@ dependencies = [ [[package]] name = "crucible-client-types" version = "0.1.0" -source = "git+https://github.com/oxidecomputer/crucible?rev=102b0bb8305cfbc3fa74c52d643d716653756372#102b0bb8305cfbc3fa74c52d643d716653756372" +source = "git+https://github.com/oxidecomputer/crucible?rev=75ea3408643664877aa603ffc65996ed6dc34c0a#75ea3408643664877aa603ffc65996ed6dc34c0a" dependencies = [ "base64 0.22.1", "crucible-workspace-hack", @@ -2092,7 +2092,7 @@ dependencies = [ [[package]] name = "crucible-common" version = "0.0.1" -source = "git+https://github.com/oxidecomputer/crucible?rev=102b0bb8305cfbc3fa74c52d643d716653756372#102b0bb8305cfbc3fa74c52d643d716653756372" +source = "git+https://github.com/oxidecomputer/crucible?rev=75ea3408643664877aa603ffc65996ed6dc34c0a#75ea3408643664877aa603ffc65996ed6dc34c0a" dependencies = [ "anyhow", "atty", @@ -2122,7 +2122,7 @@ dependencies = [ [[package]] name = "crucible-pantry-client" version = "0.0.1" -source = "git+https://github.com/oxidecomputer/crucible?rev=102b0bb8305cfbc3fa74c52d643d716653756372#102b0bb8305cfbc3fa74c52d643d716653756372" +source = "git+https://github.com/oxidecomputer/crucible?rev=75ea3408643664877aa603ffc65996ed6dc34c0a#75ea3408643664877aa603ffc65996ed6dc34c0a" dependencies = [ "anyhow", "chrono", @@ -2139,7 +2139,7 @@ dependencies = [ [[package]] name = "crucible-smf" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/crucible?rev=102b0bb8305cfbc3fa74c52d643d716653756372#102b0bb8305cfbc3fa74c52d643d716653756372" +source = "git+https://github.com/oxidecomputer/crucible?rev=75ea3408643664877aa603ffc65996ed6dc34c0a#75ea3408643664877aa603ffc65996ed6dc34c0a" dependencies = [ "crucible-workspace-hack", "libc", @@ -8217,7 +8217,7 @@ dependencies = [ "pq-sys", "pretty_assertions", "progenitor-client 0.10.0", - "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=8e9252917993e36d43dce96b4409ef151b7d4442)", + "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=aaa51291b747928a1d69e4b6059a54163d4d2e6d)", "qorb", "rand 0.9.2", "range-requests", @@ -8647,7 +8647,7 @@ dependencies = [ "oximeter-producer", "oxnet", "pretty_assertions", - "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=8e9252917993e36d43dce96b4409ef151b7d4442)", + "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=aaa51291b747928a1d69e4b6059a54163d4d2e6d)", "propolis-mock-server", "propolis_api_types", "rand 0.9.2", @@ -10670,7 +10670,7 @@ dependencies = [ [[package]] name = "propolis-client" version = "0.1.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=8e9252917993e36d43dce96b4409ef151b7d4442#8e9252917993e36d43dce96b4409ef151b7d4442" +source = "git+https://github.com/oxidecomputer/propolis?rev=aaa51291b747928a1d69e4b6059a54163d4d2e6d#aaa51291b747928a1d69e4b6059a54163d4d2e6d" dependencies = [ "async-trait", "base64 0.21.7", @@ -10715,7 +10715,7 @@ dependencies = [ [[package]] name = "propolis-mock-server" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=8e9252917993e36d43dce96b4409ef151b7d4442#8e9252917993e36d43dce96b4409ef151b7d4442" +source = "git+https://github.com/oxidecomputer/propolis?rev=aaa51291b747928a1d69e4b6059a54163d4d2e6d#aaa51291b747928a1d69e4b6059a54163d4d2e6d" dependencies = [ "anyhow", "atty", @@ -10759,7 +10759,7 @@ dependencies = [ [[package]] name = "propolis_api_types" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=8e9252917993e36d43dce96b4409ef151b7d4442#8e9252917993e36d43dce96b4409ef151b7d4442" +source = "git+https://github.com/oxidecomputer/propolis?rev=aaa51291b747928a1d69e4b6059a54163d4d2e6d#aaa51291b747928a1d69e4b6059a54163d4d2e6d" dependencies = [ "crucible-client-types", "propolis_types", @@ -10772,7 +10772,7 @@ dependencies = [ [[package]] name = "propolis_types" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=8e9252917993e36d43dce96b4409ef151b7d4442#8e9252917993e36d43dce96b4409ef151b7d4442" +source = "git+https://github.com/oxidecomputer/propolis?rev=aaa51291b747928a1d69e4b6059a54163d4d2e6d#aaa51291b747928a1d69e4b6059a54163d4d2e6d" dependencies = [ "schemars 0.8.22", "serde", @@ -12656,7 +12656,7 @@ dependencies = [ "omicron-workspace-hack", "oxnet", "progenitor 0.10.0", - "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=8e9252917993e36d43dce96b4409ef151b7d4442)", + "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=aaa51291b747928a1d69e4b6059a54163d4d2e6d)", "regress", "reqwest", "schemars 0.8.22", @@ -12736,7 +12736,7 @@ dependencies = [ "omicron-uuid-kinds", "omicron-workspace-hack", "oxnet", - "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=8e9252917993e36d43dce96b4409ef151b7d4442)", + "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=aaa51291b747928a1d69e4b6059a54163d4d2e6d)", "rcgen", "schemars 0.8.22", "serde", diff --git a/Cargo.toml b/Cargo.toml index 630ac028cc4..9896bfc2105 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -413,10 +413,10 @@ crossterm = { version = "0.29.0", features = ["event-stream"] } # NOTE: if you change the pinned revision of the `crucible` dependencies, you # must also update the references in package-manifest.toml to match the new # revision. -crucible-agent-client = { git = "https://github.com/oxidecomputer/crucible", rev = "102b0bb8305cfbc3fa74c52d643d716653756372" } -crucible-pantry-client = { git = "https://github.com/oxidecomputer/crucible", rev = "102b0bb8305cfbc3fa74c52d643d716653756372" } -crucible-smf = { git = "https://github.com/oxidecomputer/crucible", rev = "102b0bb8305cfbc3fa74c52d643d716653756372" } -crucible-common = { git = "https://github.com/oxidecomputer/crucible", rev = "102b0bb8305cfbc3fa74c52d643d716653756372" } +crucible-agent-client = { git = "https://github.com/oxidecomputer/crucible", rev = "75ea3408643664877aa603ffc65996ed6dc34c0a" } +crucible-pantry-client = { git = "https://github.com/oxidecomputer/crucible", rev = "75ea3408643664877aa603ffc65996ed6dc34c0a" } +crucible-smf = { git = "https://github.com/oxidecomputer/crucible", rev = "75ea3408643664877aa603ffc65996ed6dc34c0a" } +crucible-common = { git = "https://github.com/oxidecomputer/crucible", rev = "75ea3408643664877aa603ffc65996ed6dc34c0a" } # NOTE: See above! csv = "1.3.1" curve25519-dalek = "4" @@ -644,10 +644,10 @@ progenitor-client = "0.10.0" # NOTE: if you change the pinned revision of the `bhyve_api` and propolis # dependencies, you must also update the references in package-manifest.toml to # match the new revision. -bhyve_api = { git = "https://github.com/oxidecomputer/propolis", rev = "8e9252917993e36d43dce96b4409ef151b7d4442" } -propolis_api_types = { git = "https://github.com/oxidecomputer/propolis", rev = "8e9252917993e36d43dce96b4409ef151b7d4442" } -propolis-client = { git = "https://github.com/oxidecomputer/propolis", rev = "8e9252917993e36d43dce96b4409ef151b7d4442" } -propolis-mock-server = { git = "https://github.com/oxidecomputer/propolis", rev = "8e9252917993e36d43dce96b4409ef151b7d4442" } +bhyve_api = { git = "https://github.com/oxidecomputer/propolis", rev = "aaa51291b747928a1d69e4b6059a54163d4d2e6d" } +propolis_api_types = { git = "https://github.com/oxidecomputer/propolis", rev = "aaa51291b747928a1d69e4b6059a54163d4d2e6d" } +propolis-client = { git = "https://github.com/oxidecomputer/propolis", rev = "aaa51291b747928a1d69e4b6059a54163d4d2e6d" } +propolis-mock-server = { git = "https://github.com/oxidecomputer/propolis", rev = "aaa51291b747928a1d69e4b6059a54163d4d2e6d" } # NOTE: see above! proptest = "1.7.0" qorb = "0.4.1" diff --git a/package-manifest.toml b/package-manifest.toml index 22495dcefb2..d5b535aa33b 100644 --- a/package-manifest.toml +++ b/package-manifest.toml @@ -595,10 +595,10 @@ only_for_targets.image = "standard" # 3. Use source.type = "manual" instead of "prebuilt" source.type = "prebuilt" source.repo = "crucible" -source.commit = "102b0bb8305cfbc3fa74c52d643d716653756372" +source.commit = "75ea3408643664877aa603ffc65996ed6dc34c0a" # The SHA256 digest is automatically posted to: # https://buildomat.eng.oxide.computer/public/file/oxidecomputer/crucible/image//crucible.sha256.txt -source.sha256 = "5edb5f8b85002115bdf81bcfbbf3bb233b8ee560e1d315a8e2b9989ec9dc43fc" +source.sha256 = "fd0e150de5792a1d04b2cf4c4754d828284227ee4526ea5d08b01cfa71e2dd6a" output.type = "zone" output.intermediate_only = true @@ -607,10 +607,10 @@ service_name = "crucible_pantry_prebuilt" only_for_targets.image = "standard" source.type = "prebuilt" source.repo = "crucible" -source.commit = "102b0bb8305cfbc3fa74c52d643d716653756372" +source.commit = "75ea3408643664877aa603ffc65996ed6dc34c0a" # The SHA256 digest is automatically posted to: # https://buildomat.eng.oxide.computer/public/file/oxidecomputer/crucible/image//crucible-pantry.sha256.txt -source.sha256 = "d0ec6e365cf9e918d7aa4711dc48b4eec9362b37d5becfa3133895dff801ceca" +source.sha256 = "096b56c0db4e28a8bb216ee3bf96c06040a764101d8a3f497a175cf790613bd2" output.type = "zone" output.intermediate_only = true @@ -624,10 +624,10 @@ service_name = "crucible_dtrace" only_for_targets.image = "standard" source.type = "prebuilt" source.repo = "crucible" -source.commit = "102b0bb8305cfbc3fa74c52d643d716653756372" +source.commit = "75ea3408643664877aa603ffc65996ed6dc34c0a" # The SHA256 digest is automatically posted to: # https://buildomat.eng.oxide.computer/public/file/oxidecomputer/crucible/image//crucible-dtrace.sha256.txt -source.sha256 = "580fc58e717e245ea8a8171e25d7765edf58d57d3d9d190cdf61a4a1cae474be" +source.sha256 = "46d1ec24e068124f33d3fbc2bcb4246c886089da95ba76a0a69a8facee1dc8ec" output.type = "tarball" # Refer to @@ -638,10 +638,10 @@ service_name = "propolis-server" only_for_targets.image = "standard" source.type = "prebuilt" source.repo = "propolis" -source.commit = "8e9252917993e36d43dce96b4409ef151b7d4442" +source.commit = "aaa51291b747928a1d69e4b6059a54163d4d2e6d" # The SHA256 digest is automatically posted to: # https://buildomat.eng.oxide.computer/public/file/oxidecomputer/propolis/image//propolis-server.sha256.txt -source.sha256 = "1fd3dbec9d7ba89a8805e0c759c770d2b90a4c35a677dca43171ba866d6675bf" +source.sha256 = "9c5aee66f1b70d63cc0cbc02ad15821614691678563c5f9375632c72b1696761" output.type = "zone" [package.mg-ddm-gz] diff --git a/sled-agent/src/sim/http_entrypoints_pantry.rs b/sled-agent/src/sim/http_entrypoints_pantry.rs index 0955aaa4dff..231593c74af 100644 --- a/sled-agent/src/sim/http_entrypoints_pantry.rs +++ b/sled-agent/src/sim/http_entrypoints_pantry.rs @@ -396,12 +396,30 @@ mod tests { GitReq::Default => "main", _ => unreachable!(), }; - let raw_url = format!( - "https://raw.githubusercontent.com/oxidecomputer/crucible/{part}/openapi/crucible-pantry.json", + // Construct the URL for the pointer to the current document. + let latest_url_pointer = format!( + "https://raw.githubusercontent.com/oxidecomputer/crucible/{part}/openapi/crucible-pantry/crucible-pantry-latest.json", ); + println!("latest url pointer: {:?}", latest_url_pointer); // The default timeout of 30 seconds was sometimes not enough // heavy load. + let latest_name = reqwest::blocking::Client::builder() + .timeout(std::time::Duration::from_secs(120)) + .build() + .unwrap() + .get(&latest_url_pointer) + .send() + .unwrap() + .text() + .unwrap(); + + // From that pointer name, construct the URL for the actual API document + println!("latest_name: {:?}", latest_name); + let raw_url = format!( + "https://raw.githubusercontent.com/oxidecomputer/crucible/{part}/openapi/crucible-pantry/{latest_name}", + ); + println!("raw_url: {:?}", raw_url); let raw_json = reqwest::blocking::Client::builder() .timeout(std::time::Duration::from_secs(120)) .build() @@ -411,6 +429,7 @@ mod tests { .unwrap() .text() .unwrap(); + serde_json::from_str(&raw_json).unwrap() }