From e1b84a08659614332785aaeebd42597b44ff0922 Mon Sep 17 00:00:00 2001 From: Sean Klein Date: Thu, 13 Oct 2022 15:14:04 -0700 Subject: [PATCH 1/5] Use composite packages, new omicron-package --- Cargo.lock | 1000 ++++++++++++++++++---------- ddm-admin-client/Cargo.toml | 3 +- ddm-admin-client/build.rs | 8 +- package-manifest.toml | 168 ++--- package/Cargo.toml | 3 +- package/src/bin/omicron-package.rs | 263 ++------ sled-agent/Cargo.toml | 1 - 7 files changed, 787 insertions(+), 659 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ff2340871bc..f2882161744 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14,15 +14,15 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" dependencies = [ - "generic-array 0.14.5", + "generic-array", "heapless", ] [[package]] name = "aho-corasick" -version = "0.7.18" +version = "0.7.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" dependencies = [ "memchr", ] @@ -59,9 +59,9 @@ dependencies = [ [[package]] name = "arc-swap" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5d78ce20460b82d3fa150275ed9d55e21064fc7951177baacf86a145c4a4b1f" +checksum = "983cd8b9d4b02a6dc6ffa557262eb5858a27a0038ffffe21a0f133eaa819a164" [[package]] name = "ascii-canvas" @@ -124,9 +124,9 @@ dependencies = [ [[package]] name = "atomic-polyfill" -version = "0.1.8" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14bf7b4f565e5e717d7a7a65b2a05c0b8c96e4db636d6f780f03b15108cdd1b" +checksum = "9c041a8d9751a520ee19656232a18971f18946a7900f1520ee4400002244dd89" dependencies = [ "critical-section", ] @@ -160,6 +160,51 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "axum" +version = "0.5.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9e3356844c4d6a6d6467b8da2cffb4a2820be256f50a3a386c9d152bab31043" +dependencies = [ + "async-trait", + "axum-core", + "bitflags", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "serde", + "sync_wrapper", + "tokio", + "tower", + "tower-http", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9f0c0a60006f2a293d82d571f635042a72edf927539b7685bd62d361963839b" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "tower-layer", + "tower-service", +] + [[package]] name = "backoff" version = "0.4.0" @@ -252,9 +297,9 @@ dependencies = [ [[package]] name = "bit-set" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" dependencies = [ "bit-vec", ] @@ -295,43 +340,22 @@ dependencies = [ "wyz", ] -[[package]] -name = "block-buffer" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" -dependencies = [ - "block-padding", - "byte-tools", - "byteorder", - "generic-array 0.12.4", -] - [[package]] name = "block-buffer" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "generic-array 0.14.5", + "generic-array", ] [[package]] name = "block-buffer" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" -dependencies = [ - "generic-array 0.14.5", -] - -[[package]] -name = "block-padding" -version = "0.1.5" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" dependencies = [ - "byte-tools", + "generic-array", ] [[package]] @@ -373,15 +397,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3" - -[[package]] -name = "byte-tools" -version = "0.3.1" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" +checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" [[package]] name = "byteorder" @@ -526,14 +544,14 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" dependencies = [ - "generic-array 0.14.5", + "generic-array", ] [[package]] name = "clang-sys" -version = "1.3.3" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a050e2153c5be08febd6734e29298e844fdb0fa21aeddd63b4eb7baa106c69b" +checksum = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3" dependencies = [ "glob", "libc", @@ -549,7 +567,7 @@ dependencies = [ "atty", "bitflags", "clap_derive 3.2.18", - "clap_lex 0.2.2", + "clap_lex 0.2.4", "indexmap", "once_cell", "strsim", @@ -559,13 +577,13 @@ dependencies = [ [[package]] name = "clap" -version = "4.0.11" +version = "4.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ed45cc2c62a3eff523e718d8576ba762c83a3146151093283ac62ae11933a73" +checksum = "6ea54a38e4bce14ff6931c72e5b3c43da7051df056913d4e7e1fcdb1c03df69d" dependencies = [ "atty", "bitflags", - "clap_derive 4.0.10", + "clap_derive 4.0.13", "clap_lex 0.3.0", "once_cell", "strsim", @@ -587,9 +605,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.0.10" +version = "4.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db342ce9fda24fb191e2ed4e102055a4d381c1086a06630174cd8da8d5d917ce" +checksum = "c42f169caba89a7d512b5418b09864543eeb4d497416c917d7137863bd2076ad" dependencies = [ "heck 0.4.0", "proc-macro-error", @@ -600,9 +618,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.2.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5538cd660450ebeb4234cfecf8f2284b844ffc4c50531e66d584ad5b91293613" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" dependencies = [ "os_str_bytes", ] @@ -616,6 +634,16 @@ dependencies = [ "os_str_bytes", ] +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + [[package]] name = "colored" version = "2.0.0" @@ -629,19 +657,54 @@ dependencies = [ [[package]] name = "console" -version = "0.15.0" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28b32d32ca44b70c3e4acd7db1babf555fa026e385fb95f18028f88848b3c31" +checksum = "c050367d967ced717c04b65d8c619d863ef9292ce0c5760028655a2fb298718c" dependencies = [ "encode_unicode", + "lazy_static", "libc", - "once_cell", - "regex", "terminal_size", "unicode-width", "winapi", ] +[[package]] +name = "console-api" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57ff02e8ad8e06ab9731d5dc72dc23bef9200778eae1a89d555d8c42e5d4a86" +dependencies = [ + "prost", + "prost-types", + "tonic", + "tracing-core", +] + +[[package]] +name = "console-subscriber" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22a3a81dfaf6b66bce5d159eddae701e3a002f194d378cbf7be5f053c281d9be" +dependencies = [ + "console-api", + "crossbeam-channel", + "crossbeam-utils", + "futures", + "hdrhistogram", + "humantime", + "prost-types", + "serde", + "serde_json", + "thread_local", + "tokio", + "tokio-stream", + "tonic", + "tracing", + "tracing-core", + "tracing-subscriber", +] + [[package]] name = "const-oid" version = "0.6.2" @@ -660,7 +723,7 @@ version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "344adc371239ef32293cb1c4fe519592fcf21206c79c02854320afcdf3ab4917" dependencies = [ - "time 0.3.14", + "time 0.3.15", "version_check", ] @@ -688,9 +751,9 @@ checksum = "4603158882fa02a5f92b3ee716316f0495b962543141597751eaa5992a55f25b" [[package]] name = "cortex-m" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd20d4ac4aa86f4f75f239d59e542ef67de87cce2c282818dc6e84155d3ea126" +checksum = "70858629a458fdfd39f9675c4dc309411f2a3f83bede76988d81bf1a0ecee9e0" dependencies = [ "bare-metal 0.2.5", "bitfield", @@ -700,9 +763,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.2" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" dependencies = [ "libc", ] @@ -807,9 +870,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" dependencies = [ "cfg-if 1.0.0", "crossbeam-epoch", @@ -818,23 +881,22 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.8" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1145cf131a2c6ba0615079ab6a638f7e1973ac9c2634fcbeaaad6114246efe8c" +checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348" dependencies = [ "autocfg", "cfg-if 1.0.0", "crossbeam-utils", - "lazy_static", "memoffset", "scopeguard", ] [[package]] name = "crossbeam-queue" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f25d8400f4a7a5778f0e4e52384a48cbd9b5c495d110786187fc750075277a2" +checksum = "1cd42583b04998a5363558e5f9291ee5a5ff6b49944332103f251e7479a82aa7" dependencies = [ "cfg-if 1.0.0", "crossbeam-utils", @@ -842,12 +904,11 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.8" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38" +checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac" dependencies = [ "cfg-if 1.0.0", - "lazy_static", ] [[package]] @@ -889,19 +950,19 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8658c15c5d921ddf980f7fe25b1e82f4b7a4083b2c4985fea4922edb8e43e07d" dependencies = [ - "generic-array 0.14.5", - "rand_core 0.6.3", + "generic-array", + "rand_core 0.6.4", "subtle", "zeroize", ] [[package]] name = "crypto-common" -version = "0.1.3" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "generic-array 0.14.5", + "generic-array", "typenum", ] @@ -911,7 +972,7 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" dependencies = [ - "generic-array 0.14.5", + "generic-array", "subtle", ] @@ -938,6 +999,50 @@ dependencies = [ "zeroize", ] +[[package]] +name = "cxx" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19f39818dcfc97d45b03953c1292efc4e80954e1583c4aa770bac1383e2310a4" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e580d70777c116df50c390d1211993f62d40302881e54d4b79727acb83d0199" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2", + "quote", + "scratch", + "syn", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56a46460b88d1cec95112c8c363f0e2c39afdb237f60583b0b36343bf627ea9c" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "747b608fecf06b0d72d440f27acc99288207324b793be2c17991839f3d4995ea" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "darling" version = "0.14.1" @@ -1009,7 +1114,7 @@ name = "ddm-admin-client" version = "0.1.0" dependencies = [ "anyhow", - "omicron-zone-package 0.3.2", + "omicron-zone-package", "progenitor", "progenitor-client", "quote", @@ -1107,9 +1212,9 @@ dependencies = [ [[package]] name = "diesel_derives" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22a7ab9d7967e6a1a247ea38aedf88ab808b4ac0c159576bc71866ab8f9f9250" +checksum = "143b758c91dbc3fe1fdcb0dba5bd13276c6a66422f2ef5795b58488248a310aa" dependencies = [ "proc-macro-error", "proc-macro2", @@ -1119,9 +1224,9 @@ dependencies = [ [[package]] name = "diff" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499" +checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" [[package]] name = "difflib" @@ -1129,22 +1234,13 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" -[[package]] -name = "digest" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" -dependencies = [ - "generic-array 0.12.4", -] - [[package]] name = "digest" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array 0.14.5", + "generic-array", ] [[package]] @@ -1153,7 +1249,7 @@ version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" dependencies = [ - "block-buffer 0.10.2", + "block-buffer 0.10.3", "crypto-common", "subtle", ] @@ -1182,12 +1278,13 @@ dependencies = [ [[package]] name = "dlpi" version = "0.1.0" -source = "git+https://github.com/oxidecomputer/dlpi-sys#eb4dffeef88f86294d939aeb5521509ea3d59b69" +source = "git+https://github.com/oxidecomputer/dlpi-sys#ca2366edd3d19fa0deefd800b3d356b901ef7cb0" dependencies = [ "libc", "num_enum", "pretty-hex 0.2.1", "thiserror", + "tokio", ] [[package]] @@ -1215,7 +1312,7 @@ checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "dropshot" version = "0.8.1-dev" -source = "git+https://github.com/oxidecomputer/dropshot?branch=main#21e86a2de595ff83e21328385fa7444ac1401236" +source = "git+https://github.com/oxidecomputer/dropshot?branch=main#1ced69b46160cbe08b952c356618a07659a2f928" dependencies = [ "async-stream", "async-trait", @@ -1255,7 +1352,7 @@ dependencies = [ [[package]] name = "dropshot_endpoint" version = "0.8.1-dev" -source = "git+https://github.com/oxidecomputer/dropshot?branch=main#21e86a2de595ff83e21328385fa7444ac1401236" +source = "git+https://github.com/oxidecomputer/dropshot?branch=main#1ced69b46160cbe08b952c356618a07659a2f928" dependencies = [ "proc-macro2", "quote", @@ -1318,9 +1415,9 @@ dependencies = [ [[package]] name = "either" -version = "1.6.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" +checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" [[package]] name = "elliptic-curve" @@ -1330,10 +1427,10 @@ checksum = "83e5c176479da93a0983f0a6fdc3c1b8e7d5be0d7fe3fe05a99f15b96582b9a8" dependencies = [ "crypto-bigint", "ff", - "generic-array 0.14.5", + "generic-array", "group", "pkcs8", - "rand_core 0.6.3", + "rand_core 0.6.4", "subtle", "zeroize", ] @@ -1392,9 +1489,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" +checksum = "c90bf5f19754d10198ccb95b70664fc925bd1fc090a0fd9a6ebc54acc8cd6272" dependencies = [ "atty", "humantime", @@ -1414,12 +1511,6 @@ dependencies = [ "similar", ] -[[package]] -name = "fake-simd" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" - [[package]] name = "fallible-iterator" version = "0.2.0" @@ -1428,9 +1519,9 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fastrand" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" dependencies = [ "instant", ] @@ -1454,27 +1545,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0f40b2dcd8bc322217a5f6559ae5f9e9d1de202a2ecee2e9eafcbece7562a4f" dependencies = [ "bitvec", - "rand_core 0.6.3", + "rand_core 0.6.4", "subtle", ] [[package]] name = "filetime" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0408e2626025178a6a7f7ffc05a25bc47103229f19c113755de7bf63816290c" +checksum = "e94a7bbaa59354bc20dd75b67f23e2797b4490e9d6928203fb105c79e448c86c" dependencies = [ "cfg-if 1.0.0", "libc", "redox_syscall", - "winapi", + "windows-sys", ] [[package]] name = "fixedbitset" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279fb028e20b3c4c320317955b77c5e0c9701f05a1d309905d6fc702cdc5053e" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" @@ -1683,7 +1774,7 @@ name = "gateway-cli" version = "0.1.0" dependencies = [ "anyhow", - "clap 4.0.11", + "clap 4.0.14", "futures", "gateway-client", "libc", @@ -1749,18 +1840,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" -dependencies = [ - "typenum", -] - -[[package]] -name = "generic-array" -version = "0.14.5" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" dependencies = [ "typenum", "version_check", @@ -1824,15 +1906,15 @@ checksum = "1c363a5301b8f153d80747126a04b3c82073b9fe3130571a9d170cacdeaf7912" dependencies = [ "byteorder", "ff", - "rand_core 0.6.3", + "rand_core 0.6.4", "subtle", ] [[package]] name = "h2" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57" +checksum = "5ca32592cf21ac7ccab1825cd87f6c9b3d9022c44d086172ed0966bec8af30be" dependencies = [ "bytes", "fnv", @@ -1864,9 +1946,22 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hdrhistogram" +version = "7.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f19b9f54f7c7f55e31401bb647626ce0cf0f67b0004982ce815b3ee72a02aa8" +dependencies = [ + "base64", + "byteorder", + "flate2", + "nom", + "num-traits", +] [[package]] name = "headers" @@ -1895,15 +1990,15 @@ dependencies = [ [[package]] name = "heapless" -version = "0.7.14" +version = "0.7.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "065681e99f9ef7e0e813702a0326aedbcbbde7db5e55f097aedd1bf50b9dca43" +checksum = "db04bc24a18b9ea980628ecf00e6c0264f3c1426dac36c00cb49b6fbad8b0743" dependencies = [ "atomic-polyfill", "hash32", "rustc_version 0.4.0", "serde", - "spin 0.9.3", + "spin 0.9.4", "stable_deref_trait", ] @@ -1970,9 +2065,9 @@ dependencies = [ [[package]] name = "home" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2456aef2e6b6a9784192ae780c0f15bc57df0e918585282325e8c8ac27737654" +checksum = "747309b4b440c06d57b0b25f2aee03ee9b5e5397d288c60e21fc709bb98a7408" dependencies = [ "winapi", ] @@ -2010,11 +2105,17 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "http-range-header" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" + [[package]] name = "httparse" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" @@ -2047,7 +2148,7 @@ dependencies = [ [[package]] name = "hubpack" version = "0.1.0" -source = "git+https://github.com/cbiffle/hubpack?rev=df08cc3a6e1f97381cd0472ae348e310f0119e25#df08cc3a6e1f97381cd0472ae348e310f0119e25" +source = "git+https://github.com/cbiffle/hubpack.git?rev=df08cc3a6e1f97381cd0472ae348e310f0119e25#df08cc3a6e1f97381cd0472ae348e310f0119e25" dependencies = [ "hubpack_derive", "serde", @@ -2056,7 +2157,7 @@ dependencies = [ [[package]] name = "hubpack_derive" version = "0.1.0" -source = "git+https://github.com/cbiffle/hubpack?rev=df08cc3a6e1f97381cd0472ae348e310f0119e25#df08cc3a6e1f97381cd0472ae348e310f0119e25" +source = "git+https://github.com/cbiffle/hubpack.git?rev=df08cc3a6e1f97381cd0472ae348e310f0119e25#df08cc3a6e1f97381cd0472ae348e310f0119e25" dependencies = [ "proc-macro2", "quote", @@ -2106,6 +2207,18 @@ dependencies = [ "tokio-rustls", ] +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + [[package]] name = "hyper-tls" version = "0.5.0" @@ -2121,18 +2234,28 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.47" +version = "0.1.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c495f162af0bf17656d0014a0eded5f3cd2f365fdd204548c2869db89359dc7" +checksum = "f5a6ef98976b22b3b7f2f3a806f858cb862044cfa66805aa3ad84cb3d3b785ed" dependencies = [ "android_system_properties", "core-foundation-sys", + "iana-time-zone-haiku", "js-sys", - "once_cell", "wasm-bindgen", "winapi", ] +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fde6edd6cef363e9359ed3c98ba64590ba9eecba2293eb5a723ab32aee8926aa" +dependencies = [ + "cxx", + "cxx-build", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -2201,9 +2324,9 @@ dependencies = [ [[package]] name = "indoc" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05a0bd019339e5d968b37855180087b7b9d512c5046fbd244cf8c95687927d6e" +checksum = "adab1eaa3408fb7f0c777a73e7465fd5656136fc93b670eb6df3c88c2c1344e3" [[package]] name = "instant" @@ -2219,7 +2342,7 @@ name = "internal-dns" version = "0.1.0" dependencies = [ "anyhow", - "clap 4.0.11", + "clap 4.0.14", "dropshot", "expectorate", "internal-dns-client", @@ -2306,15 +2429,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.2" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" +checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" [[package]] name = "js-sys" -version = "0.3.58" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fac17f7123a73ca62df411b1bf727ccc805daa070338fda671c86dac1bdc27" +checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" dependencies = [ "wasm-bindgen", ] @@ -2376,9 +2499,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.134" +version = "0.2.135" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "329c933548736bc49fd575ee68c89e8be4d260064184389a5b77517cddd99ffb" +checksum = "68783febc7782c6c5cb401fbda4de5a9898be1762314da0bb2c10ced61f18b0c" [[package]] name = "libloading" @@ -2393,9 +2516,10 @@ dependencies = [ [[package]] name = "libnet" version = "0.1.0" -source = "git+https://github.com/oxidecomputer/netadm-sys#3e2d8b3f5e7e7eea61424ffbca494af12a930631" +source = "git+https://github.com/oxidecomputer/netadm-sys#bf0fcd1b5d8b224e0821d14942cddfe1808f3996" dependencies = [ "anyhow", + "cfg-if 1.0.0", "colored", "dlpi", "libc", @@ -2428,11 +2552,20 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "link-cplusplus" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" +dependencies = [ + "cc", +] + [[package]] name = "linked-hash-map" -version = "0.5.4" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "lock_api" @@ -2489,17 +2622,32 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata", +] + [[package]] name = "matches" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" +[[package]] +name = "matchit" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" + [[package]] name = "md-5" -version = "0.10.1" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658646b21e0b72f7866c7038ab086d3d5e1cd6271f060fd37defb241949d0582" +checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" dependencies = [ "digest 0.10.5", ] @@ -2543,9 +2691,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc" +checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" dependencies = [ "adler", ] @@ -2907,7 +3055,7 @@ name = "omicron-deploy" version = "0.1.0" dependencies = [ "anyhow", - "clap 4.0.11", + "clap 4.0.14", "crossbeam", "omicron-package", "omicron-sled-agent", @@ -2923,7 +3071,7 @@ dependencies = [ name = "omicron-gateway" version = "0.1.0" dependencies = [ - "clap 4.0.11", + "clap 4.0.14", "dropshot", "expectorate", "futures", @@ -2961,7 +3109,7 @@ dependencies = [ "base64", "bb8", "chrono", - "clap 4.0.11", + "clap 4.0.14", "cookie", "criterion", "crucible-agent-client", @@ -3040,13 +3188,14 @@ name = "omicron-package" version = "0.1.0" dependencies = [ "anyhow", - "clap 4.0.11", + "clap 4.0.14", + "console-subscriber", "futures", "hex", "indicatif", "omicron-common", "omicron-sled-agent", - "omicron-zone-package 0.4.0", + "omicron-zone-package", "rayon", "reqwest", "ring", @@ -3078,11 +3227,10 @@ dependencies = [ "bytes", "cfg-if 1.0.0", "chrono", - "clap 4.0.11", + "clap 4.0.14", "crucible-agent-client", "crucible-client-types", "ddm-admin-client", - "diesel", "dropshot", "expectorate", "futures", @@ -3141,7 +3289,7 @@ name = "omicron-test-utils" version = "0.1.0" dependencies = [ "anyhow", - "clap 4.0.11", + "clap 4.0.14", "dropshot", "expectorate", "futures", @@ -3159,32 +3307,10 @@ dependencies = [ "usdt", ] -[[package]] -name = "omicron-zone-package" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45da86a08794bc3e038552e9777724f204bdd55c8669f098e6b90df3f5bacd0" -dependencies = [ - "anyhow", - "chrono", - "filetime", - "flate2", - "reqwest", - "serde", - "serde_derive", - "tar", - "tempfile", - "thiserror", - "tokio", - "toml", - "walkdir", -] - [[package]] name = "omicron-zone-package" version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222c900d9a67df941c61590869a2a23de13d6cc613d9aaa5dd09c98b1e8dde45" +source = "git+http://github.com/oxidecomputer/omicron-package?branch=composite#4e6e6ab10da2dcf6d0b41e6d9c24faaa59c44ced" dependencies = [ "anyhow", "chrono", @@ -3213,12 +3339,6 @@ version = "11.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" -[[package]] -name = "opaque-debug" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" - [[package]] name = "opaque-debug" version = "0.3.0" @@ -3336,9 +3456,9 @@ dependencies = [ [[package]] name = "os_str_bytes" -version = "6.1.0" +version = "6.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21326818e99cfe6ce1e524c2a805c189a99b5ae555a35d19f9a284b427d86afa" +checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff" [[package]] name = "oso" @@ -3425,7 +3545,7 @@ dependencies = [ name = "oximeter-collector" version = "0.1.0" dependencies = [ - "clap 4.0.11", + "clap 4.0.14", "dropshot", "expectorate", "internal-dns-client", @@ -3456,7 +3576,7 @@ dependencies = [ "async-trait", "bytes", "chrono", - "clap 4.0.11", + "clap 4.0.14", "dropshot", "itertools", "omicron-test-utils", @@ -3618,9 +3738,9 @@ dependencies = [ [[package]] name = "path-dedot" -version = "3.0.17" +version = "3.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d611d5291372b3738a34ebf0d1f849e58b1dcc1101032f76a346eaa1f8ddbb5b" +checksum = "9a81540d94551664b72b72829b12bd167c73c9d25fbac0e04fafa8023f7e4901" dependencies = [ "once_cell", ] @@ -3633,9 +3753,9 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" [[package]] name = "pem" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9a3b09a20e374558580a4914d3b7d89bd61b954a5a5e1dcbea98753addb1947" +checksum = "03c64931a1a212348ec4f3b4362585eca7159d0d09cbdf4a7f74f02173596fd4" dependencies = [ "base64", ] @@ -3648,18 +3768,19 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pest" -version = "2.1.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" +checksum = "dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a" dependencies = [ + "thiserror", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.1.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0" +checksum = "60b75706b9642ebcb34dab3bc7750f811609a0eb1dd8b88c2d15bf628c1c65b2" dependencies = [ "pest", "pest_generator", @@ -3667,9 +3788,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.1.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" +checksum = "f4f9272122f5979a6511a749af9db9bfc810393f63119970d7085fed1c4ea0db" dependencies = [ "pest", "pest_meta", @@ -3680,13 +3801,13 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.1.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d" +checksum = "4c8717927f9b79515e565a64fe46c38b8cd0427e64c40680b14a7365ab09ac8d" dependencies = [ - "maplit", + "once_cell", "pest", - "sha-1 0.8.2", + "sha1", ] [[package]] @@ -3730,18 +3851,18 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.0.10" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e" +checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.10" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb" +checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" dependencies = [ "proc-macro2", "quote", @@ -3778,9 +3899,9 @@ checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" [[package]] name = "plotters" -version = "0.3.1" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a3fd9ec30b9749ce28cd91f255d569591cdf937fe280c312143e3c4bad6f2a" +checksum = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97" dependencies = [ "num-traits", "plotters-backend", @@ -3791,15 +3912,15 @@ dependencies = [ [[package]] name = "plotters-backend" -version = "0.3.2" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d88417318da0eaf0fdcdb51a0ee6c3bed624333bff8f946733049380be67ac1c" +checksum = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142" [[package]] name = "plotters-svg" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "521fa9638fa597e1dc53e9412a4f9cefb01187ee1f7413076f9e6749e2885ba9" +checksum = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f" dependencies = [ "plotters-backend", ] @@ -3827,7 +3948,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede" dependencies = [ "cpufeatures", - "opaque-debug 0.3.0", + "opaque-debug", "universal-hash", ] @@ -3862,7 +3983,7 @@ dependencies = [ "md-5", "memchr", "rand 0.8.5", - "sha2 0.10.2", + "sha2 0.10.6", "stringprep", ] @@ -3945,10 +4066,11 @@ checksum = "c6fa0831dd7cc608c38a5e323422a0077678fa5744aa2be4ad91c4ece8eec8d5" [[package]] name = "proc-macro-crate" -version = "1.1.3" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" dependencies = [ + "once_cell", "thiserror", "toml", ] @@ -3988,11 +4110,11 @@ dependencies = [ [[package]] name = "progenitor" -version = "0.1.2-dev" -source = "git+https://github.com/oxidecomputer/progenitor#8ff1bb5024d39366e662cedc72e2d4425c6cfde6" +version = "0.2.1-dev" +source = "git+https://github.com/oxidecomputer/progenitor#0f4a9f7a3795122d172acdb76798339bc24c832a" dependencies = [ "anyhow", - "clap 3.2.22", + "clap 4.0.14", "openapiv3", "progenitor-client", "progenitor-impl", @@ -4003,8 +4125,8 @@ dependencies = [ [[package]] name = "progenitor-client" -version = "0.1.2-dev" -source = "git+https://github.com/oxidecomputer/progenitor#8ff1bb5024d39366e662cedc72e2d4425c6cfde6" +version = "0.2.1-dev" +source = "git+https://github.com/oxidecomputer/progenitor#0f4a9f7a3795122d172acdb76798339bc24c832a" dependencies = [ "bytes", "futures-core", @@ -4017,8 +4139,8 @@ dependencies = [ [[package]] name = "progenitor-impl" -version = "0.1.2-dev" -source = "git+https://github.com/oxidecomputer/progenitor#8ff1bb5024d39366e662cedc72e2d4425c6cfde6" +version = "0.2.1-dev" +source = "git+https://github.com/oxidecomputer/progenitor#0f4a9f7a3795122d172acdb76798339bc24c832a" dependencies = [ "getopts", "heck 0.4.0", @@ -4039,8 +4161,8 @@ dependencies = [ [[package]] name = "progenitor-macro" -version = "0.1.2-dev" -source = "git+https://github.com/oxidecomputer/progenitor#8ff1bb5024d39366e662cedc72e2d4425c6cfde6" +version = "0.2.1-dev" +source = "git+https://github.com/oxidecomputer/progenitor#0f4a9f7a3795122d172acdb76798339bc24c832a" dependencies = [ "openapiv3", "proc-macro2", @@ -4097,6 +4219,39 @@ dependencies = [ "tempfile", ] +[[package]] +name = "prost" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "399c3c31cdec40583bb68f0b18403400d01ec4289c383aa047560439952c4dd7" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-derive" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7345d5f0e08c0536d7ac7229952590239e77abf0a0100a1b1d890add6ea96364" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "prost-types" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dfaa718ad76a44b3415e6c4d53b17c8f99160dcb3a99b10470fce8ad43f6e3e" +dependencies = [ + "bytes", + "prost", +] + [[package]] name = "quick-error" version = "1.2.3" @@ -4111,9 +4266,9 @@ checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" [[package]] name = "quick-xml" -version = "0.23.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9279fbdacaad3baf559d8cabe0acc3d06e30ea14931af31af79578ac0946decc" +checksum = "11bafc859c6815fbaffbbbf4229ecb767ac913fecb27f9ad4343662e9ef099ea" dependencies = [ "memchr", "serde", @@ -4130,12 +4285,12 @@ dependencies = [ [[package]] name = "r2d2" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545c5bc2b880973c9c10e4067418407a0ccaa3091781d1671d46eb35107cb26f" +checksum = "51de85fb3fb6524929c8a2eb85e6b6d363de4e8c48f9e2c2eac4944abc181c93" dependencies = [ "log", - "parking_lot 0.11.2", + "parking_lot 0.12.1", "scheduled-thread-pool", ] @@ -4189,7 +4344,7 @@ checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha 0.3.1", - "rand_core 0.6.3", + "rand_core 0.6.4", ] [[package]] @@ -4209,7 +4364,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.3", + "rand_core 0.6.4", ] [[package]] @@ -4238,9 +4393,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ "getrandom 0.2.7", ] @@ -4260,7 +4415,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" dependencies = [ - "rand_core 0.6.3", + "rand_core 0.6.4", ] [[package]] @@ -4298,9 +4453,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.2.13" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ "bitflags", ] @@ -4318,18 +4473,18 @@ dependencies = [ [[package]] name = "ref-cast" -version = "1.0.9" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed13bcd201494ab44900a96490291651d200730904221832b9547d24a87d332b" +checksum = "12a733f1746c929b4913fe48f8697fcf9c55e3304ba251a79ffb41adfeaf49c2" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.9" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5234cd6063258a5e32903b53b1b6ac043a0541c8adc1f610f67b0326c7a578fa" +checksum = "5887de4a01acafd221861463be6113e6e87275e79804e56779f4cdc131c60368" dependencies = [ "proc-macro2", "quote", @@ -4352,6 +4507,9 @@ name = "regex-automata" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax", +] [[package]] name = "regex-syntax" @@ -4496,7 +4654,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.10", + "semver 1.0.14", ] [[package]] @@ -4535,9 +4693,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.6" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f" +checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" [[package]] name = "rusty-doors" @@ -4571,9 +4729,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" +checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" [[package]] name = "salty" @@ -4673,6 +4831,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +[[package]] +name = "scratch" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" + [[package]] name = "sct" version = "0.7.0" @@ -4685,9 +4849,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.6.1" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc" +checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" dependencies = [ "bitflags", "core-foundation", @@ -4732,9 +4896,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.10" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41d061efea015927ac527063765e73601444cdc344ba855bc7bd44578b25e1c" +checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" [[package]] name = "semver-parser" @@ -4877,7 +5041,7 @@ dependencies = [ "serde", "serde_json", "serde_with_macros", - "time 0.3.14", + "time 0.3.15", ] [[package]] @@ -4918,18 +5082,6 @@ dependencies = [ "syn", ] -[[package]] -name = "sha-1" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" -dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", -] - [[package]] name = "sha-1" version = "0.10.0" @@ -4962,14 +5114,14 @@ dependencies = [ "cfg-if 1.0.0", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.0", + "opaque-debug", ] [[package]] name = "sha2" -version = "0.10.2" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" +checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" dependencies = [ "cfg-if 1.0.0", "cpufeatures", @@ -5039,14 +5191,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2807892cfa58e081aa1f1111391c7a0649d4fa127a4ffbe34bcbfb35a1171a4" dependencies = [ "digest 0.9.0", - "rand_core 0.6.3", + "rand_core 0.6.4", ] [[package]] name = "similar" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e24979f63a11545f5f2c60141afe249d4f19f84581ea2138065e400941d83d3" +checksum = "62ac7f900db32bf3fd12e0117dd3dc4da74bc52ebaac97f39668446d89694803" [[package]] name = "siphasher" @@ -5056,9 +5208,12 @@ checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" [[package]] name = "slab" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +dependencies = [ + "autocfg", +] [[package]] name = "sled" @@ -5118,7 +5273,7 @@ dependencies = [ "hostname", "slog", "slog-json", - "time 0.3.14", + "time 0.3.15", ] [[package]] @@ -5159,7 +5314,7 @@ dependencies = [ "serde", "serde_json", "slog", - "time 0.3.14", + "time 0.3.15", ] [[package]] @@ -5194,14 +5349,14 @@ dependencies = [ "slog", "term", "thread_local", - "time 0.3.14", + "time 0.3.15", ] [[package]] name = "smallvec" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "smf" @@ -5225,9 +5380,9 @@ dependencies = [ [[package]] name = "snafu" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5177903bf45656592d9eb5c0e22f408fc023aae51dbe2088889b71633ba451f2" +checksum = "dd726aec4ebad65756394ff89a9b9598793d4e30121cd71690244c1e497b3aee" dependencies = [ "doc-comment", "snafu-derive", @@ -5235,9 +5390,9 @@ dependencies = [ [[package]] name = "snafu-derive" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "410b26ed97440d90ced3e2488c868d56a86e2064f5d7d6f417909b286afe25e5" +checksum = "712529e9b0b014eabaa345b38e06032767e3dc393e8b017e853b1d7247094e74" dependencies = [ "heck 0.4.0", "proc-macro2", @@ -5261,7 +5416,7 @@ version = "0.1.0" dependencies = [ "anyhow", "async-trait", - "clap 4.0.11", + "clap 4.0.14", "dropshot", "futures", "gateway-messages", @@ -5295,9 +5450,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "spin" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c530c2b0d0bf8b69304b39fe2001993e267461948b890cd037d8ad4293fa1a0d" +checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09" dependencies = [ "lock_api", ] @@ -5370,7 +5525,7 @@ dependencies = [ "hkdf", "hmac 0.12.1", "hubpack", - "rand_core 0.6.3", + "rand_core 0.6.4", "serde", "sha3", "sprockets-common", @@ -5470,7 +5625,7 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" dependencies = [ - "strum_macros 0.24.1", + "strum_macros 0.24.3", ] [[package]] @@ -5488,9 +5643,9 @@ dependencies = [ [[package]] name = "strum_macros" -version = "0.24.1" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9550962e7cf70d9980392878dfaf1dcc3ece024f4cf3bf3c46b978d0bad61d6c" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ "heck 0.4.0", "proc-macro2", @@ -5526,6 +5681,12 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20518fe4a4c9acf048008599e464deb21beeae3d3578418951a189c235a7a9a8" + [[package]] name = "synstructure" version = "0.12.6" @@ -5680,9 +5841,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3f9a28b618c3a6b9251b6908e9c99e04b9e5c02e6581ccbb67d59c34ef7f9b" +checksum = "d634a985c4d4238ec39cacaed2e7ae552fbd3c476b552c1deac3021b7d7eaf0c" dependencies = [ "itoa", "libc", @@ -5758,9 +5919,20 @@ dependencies = [ "signal-hook-registry", "socket2", "tokio-macros", + "tracing", "winapi", ] +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio", +] + [[package]] name = "tokio-macros" version = "1.8.0" @@ -5819,9 +5991,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6edf2d6bc038a43d31353570e27270603f4648d18f5ed10c0e179abe43255af" +checksum = "d660770404473ccd7bc9f8b28494a811bc18542b915c0855c51e8f419d5223ce" dependencies = [ "futures-core", "pin-project-lite", @@ -5863,6 +6035,38 @@ dependencies = [ "serde", ] +[[package]] +name = "tonic" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55b9af819e54b8f33d453655bef9b9acc171568fb49523078d0cc4e7484200ec" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64", + "bytes", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost", + "prost-derive", + "tokio", + "tokio-stream", + "tokio-util", + "tower", + "tower-layer", + "tower-service", + "tracing", + "tracing-futures", +] + [[package]] name = "toolchain_find" version = "0.2.0" @@ -5903,17 +6107,62 @@ dependencies = [ "walkdir", ] +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "indexmap", + "pin-project", + "pin-project-lite", + "rand 0.8.5", + "slab", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c530c8675c1dbf98facee631536fa116b5fb6382d7dd6dc1b118d970eafe3ba" +dependencies = [ + "bitflags", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-range-header", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + [[package]] name = "tower-service" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.35" +version = "0.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a400e31aa60b9d44a52a8ee0343b5b18566b03a8321e0d321f695cf56e940160" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if 1.0.0", "log", @@ -5924,9 +6173,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.21" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6b8ad3567499f98a1db7a752b07a7c8c7c7c34c332ec00effb2b0027974b7c" +checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" dependencies = [ "proc-macro2", "quote", @@ -5935,22 +6184,36 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.27" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7709595b8878a4965ce5e87ebf880a7d39c9afc6837721b21a5a816a8117d921" +checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" dependencies = [ "once_cell", "valuable", ] +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + [[package]] name = "tracing-subscriber" -version = "0.3.11" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bc28f93baff38037f64e6f43d34cfa1605f27a49c34e8a04c5e78b0babf2596" +checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" dependencies = [ + "matchers", + "once_cell", + "regex", "sharded-slab", "thread_local", + "tracing", "tracing-core", ] @@ -5968,7 +6231,7 @@ dependencies = [ "radix_trie", "rand 0.8.5", "thiserror", - "time 0.3.14", + "time 0.3.15", "tokio", "tracing", "trust-dns-proto", @@ -6033,7 +6296,7 @@ dependencies = [ "futures-util", "serde", "thiserror", - "time 0.3.14", + "time 0.3.15", "tokio", "toml", "tracing", @@ -6075,7 +6338,7 @@ dependencies = [ "httparse", "log", "rand 0.8.5", - "sha-1 0.10.0", + "sha-1", "thiserror", "url", "utf-8", @@ -6089,8 +6352,9 @@ checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" [[package]] name = "typify" -version = "0.0.10-dev" -source = "git+https://github.com/oxidecomputer/typify#4142db962b4c15270fe776c571bf0542f1270a47" +version = "0.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e8486352f3c946e69f983558cfc09b295250b01e01b381ec67a05a812d01d63" dependencies = [ "typify-impl", "typify-macro", @@ -6098,8 +6362,9 @@ dependencies = [ [[package]] name = "typify-impl" -version = "0.0.10-dev" -source = "git+https://github.com/oxidecomputer/typify#4142db962b4c15270fe776c571bf0542f1270a47" +version = "0.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7624d0b911df6e2bbf34a236f76281f93b294cdde1d4df1dbdb748e5a7fefa5" dependencies = [ "heck 0.4.0", "log", @@ -6116,8 +6381,9 @@ dependencies = [ [[package]] name = "typify-macro" -version = "0.0.10-dev" -source = "git+https://github.com/oxidecomputer/typify#4142db962b4c15270fe776c571bf0542f1270a47" +version = "0.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c42802aa033cee7650a4e1509ba7d5848a56f84be7c4b31e4385ee12445e942" dependencies = [ "proc-macro2", "quote", @@ -6131,9 +6397,9 @@ dependencies = [ [[package]] name = "ucd-trie" -version = "0.1.3" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" +checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" [[package]] name = "unicase" @@ -6152,36 +6418,36 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] name = "unicode-ident" -version = "1.0.3" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" [[package]] name = "unicode-normalization" -version = "0.1.19" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" +checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" [[package]] name = "unicode-width" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" [[package]] name = "unicode-xid" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] name = "universal-hash" @@ -6189,7 +6455,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" dependencies = [ - "generic-array 0.14.5", + "generic-array", "subtle", ] @@ -6336,11 +6602,11 @@ dependencies = [ "ff", "group", "rand_chacha 0.3.1", - "rand_core 0.6.3", + "rand_core 0.6.4", "serde", "serde-big-array 0.3.3", "serde_cbor", - "sha2 0.10.2", + "sha2 0.10.6", "sha2 0.9.9", "zeroize", ] @@ -6395,9 +6661,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.81" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c53b543413a17a202f4be280a7e5c62a1c69345f5de525ee64f8cfdbc954994" +checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -6405,13 +6671,13 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.81" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5491a68ab4500fa6b4d726bd67408630c3dbe9c4fe7bda16d5c82a1fd8c7340a" +checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" dependencies = [ "bumpalo", - "lazy_static", "log", + "once_cell", "proc-macro2", "quote", "syn", @@ -6420,9 +6686,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.31" +version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de9a9cec1733468a8c657e57fa2413d2ae2c0129b95e87c5b72b8ace4d13f31f" +checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -6432,9 +6698,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.81" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c441e177922bc58f1e12c022624b6216378e5febc2f0533e41ba443d505b80aa" +checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6442,9 +6708,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.81" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d94ac45fcf608c1f45ef53e748d35660f168490c10b23704c7779ab8f5c3048" +checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" dependencies = [ "proc-macro2", "quote", @@ -6455,15 +6721,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.81" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a89911bd99e5f3659ec4acf9c4d93b0a90fe4a2a11f15328472058edc5261be" +checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" [[package]] name = "web-sys" -version = "0.3.58" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fed94beee57daf8dd7d51f2b15dc2bcde92d7a72304cdf662a4371008b71b90" +checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" dependencies = [ "js-sys", "wasm-bindgen", @@ -6481,22 +6747,22 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.22.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d8de8415c823c8abd270ad483c6feeac771fad964890779f9a8cb24fbbc1bf" +checksum = "368bfe657969fb01238bb756d351dcade285e0f6fcbd36dcb23359a5169975be" dependencies = [ "webpki", ] [[package]] name = "which" -version = "4.2.5" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c4fb54e6113b6a8772ee41c3404fb0301ac79604489467e0a9ce1f3e97c24ae" +checksum = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b" dependencies = [ "either", - "lazy_static", "libc", + "once_cell", ] [[package]] @@ -6613,7 +6879,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5da623d8af10a62342bcbbb230e33e58a63255a58012f8653c578e54bab48df" dependencies = [ "curve25519-dalek", - "rand_core 0.6.3", + "rand_core 0.6.4", "zeroize", ] @@ -6643,7 +6909,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "332f188cc1bcf1fe1064b8c58d150f497e697f49774aa846f2dc949d9a25f236" dependencies = [ "byteorder", - "zerocopy-derive 0.3.1", + "zerocopy-derive 0.3.2", ] [[package]] @@ -6659,13 +6925,13 @@ dependencies = [ [[package]] name = "zerocopy-derive" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0fbc82b82efe24da867ee52e015e58178684bd9dd64c34e66bdf21da2582a9f" +checksum = "6505e6815af7de1746a08f69c69606bb45695a17149517680f3b2149713b19a3" dependencies = [ "proc-macro2", + "quote", "syn", - "synstructure", ] [[package]] @@ -6691,9 +6957,9 @@ dependencies = [ [[package]] name = "zip" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf225bcf73bb52cbb496e70475c7bd7a3f769df699c0020f6c7bd9a96dcf0b8d" +checksum = "537ce7411d25e54e8ae21a7ce0b15840e7bfcff15b51d697ec3266cc76bdf080" dependencies = [ "byteorder", "bzip2", diff --git a/ddm-admin-client/Cargo.toml b/ddm-admin-client/Cargo.toml index db45a1bc3cf..b6c9a201697 100644 --- a/ddm-admin-client/Cargo.toml +++ b/ddm-admin-client/Cargo.toml @@ -11,7 +11,8 @@ slog = "2.7" [build-dependencies] anyhow = "1.0" -omicron-zone-package = "0.3.1" +# omicron-zone-package = "0.3.1" +omicron-zone-package = { git = "http://github.com/oxidecomputer/omicron-package", branch = "composite" } progenitor = { git = "https://github.com/oxidecomputer/progenitor" } quote = "1.0" serde_json = "1.0" diff --git a/ddm-admin-client/build.rs b/ddm-admin-client/build.rs index 5037227ecf2..0c72c69c4df 100644 --- a/ddm-admin-client/build.rs +++ b/ddm-admin-client/build.rs @@ -8,7 +8,7 @@ use anyhow::bail; use anyhow::Context; use anyhow::Result; use omicron_zone_package::config::Config; -use omicron_zone_package::config::ExternalPackageSource; +use omicron_zone_package::package::PackageSource; use quote::quote; use std::env; use std::fs; @@ -23,14 +23,14 @@ fn main() -> Result<()> { let config: Config = toml::de::from_slice(&manifest) .context("failed to parse ../package-manifest.toml")?; let maghemite = config - .external_packages + .packages .get("maghemite") .context("missing maghemite package in ../package-manifest.toml")?; let commit = match &maghemite.source { - ExternalPackageSource::Manual => { + PackageSource::Prebuilt { commit, .. } => commit, + _ => { bail!("maghemite external package must have type `prebuilt`") } - ExternalPackageSource::Prebuilt { commit, .. } => commit, }; // Report a relatively verbose error if we haven't downloaded the requisite diff --git a/package-manifest.toml b/package-manifest.toml index 80d1e20dbcf..14c4254a52c 100644 --- a/package-manifest.toml +++ b/package-manifest.toml @@ -4,142 +4,121 @@ [package.omicron-sled-agent] service_name = "sled-agent" -rust.binary_names = ["sled-agent"] -rust.release = true -zone = false -[[package.omicron-sled-agent.paths]] -from = "smf/sled-agent" -to = "pkg" +source.type = "local" +source.rust.binary_names = ["sled-agent"] +source.rust.release = true +source.paths = [ { from = "smf/sled-agent", to = "pkg" } ] +output.type = "tarball" [package.omicron-nexus] -rust.binary_names = ["nexus"] -rust.release = true service_name = "nexus" -zone = true +source.type = "local" +source.rust.binary_names = ["nexus"] +source.rust.release = true +source.paths = [ + { from = "/opt/ooce/pgsql-13/lib/amd64", to = "/opt/ooce/pgsql-13/lib/amd64" }, + { from = "smf/nexus", to = "/var/svc/manifest/site/nexus" }, + { from = "out/console-assets", to = "/var/nexus/static" }, + # Note, we could just map the whole "out/certs" directory, but this ensures + # both files exist. + { from = "out/certs/cert.pem", to = "/var/nexus/certs/cert.pem" }, + { from = "out/certs/key.pem", to = "/var/nexus/certs/key.pem" } +] +output.type = "zone" setup_hint = """ - Run `./tools/ci_download_console` to download the web console assets - Run `pkg install library/postgresql-13` to download Postgres libraries - Run `./tools/create_self_signed_cert.sh` to generate a certificate """ -[[package.omicron-nexus.paths]] -from = "/opt/ooce/pgsql-13/lib/amd64" -to = "/opt/ooce/pgsql-13/lib/amd64" -[[package.omicron-nexus.paths]] -from = "smf/nexus" -to = "/var/svc/manifest/site/nexus" -[[package.omicron-nexus.paths]] -from = "out/console-assets" -to = "/var/nexus/static" -# Note, we could just map the whole "out/certs" directory, but this ensures -# both files exist. -[[package.omicron-nexus.paths]] -from = "out/certs/cert.pem" -to = "/var/nexus/certs/cert.pem" -[[package.omicron-nexus.paths]] -from = "out/certs/key.pem" -to = "/var/nexus/certs/key.pem" - [package.oximeter-collector] -rust.binary_names = ["oximeter"] -rust.release = true service_name = "oximeter" -zone = true -[[package.oximeter-collector.paths]] -from = "smf/oximeter" -to = "/var/svc/manifest/site/oximeter" +source.type = "local" +source.rust.binary_names = ["oximeter"] +source.rust.release = true +source.paths = [ { from = "smf/oximeter", to = "/var/svc/manifest/site/oximeter" } ] +output.type = "zone" [package.clickhouse] service_name = "clickhouse" -zone = true +source.type = "local" +source.paths = [ + { from = "out/clickhouse", to = "/opt/oxide/clickhouse" }, + { from = "smf/clickhouse", to = "/var/svc/manifest/site/clickhouse" } +] +output.type = "zone" setup_hint = "Run `./tools/ci_download_clickhouse` to download the necessary binaries" -[[package.clickhouse.paths]] -from = "out/clickhouse" -to = "/opt/oxide/clickhouse" -[[package.clickhouse.paths]] -from = "smf/clickhouse" -to = "/var/svc/manifest/site/clickhouse" [package.cockroachdb] service_name = "cockroachdb" -zone = true +source.type = "local" +source.paths = [ + { from = "out/cockroachdb", to = "/opt/oxide/cockroachdb" }, + { from = "common/src/sql", to = "/opt/oxide/cockroachdb/sql" }, + { from = "smf/cockroachdb", to = "/var/svc/manifest/site/cockroachdb" }, +] +output.type = "zone" setup_hint = "Run `./tools/ci_download_cockroachdb` to download the necessary binaries" -[[package.cockroachdb.paths]] -from = "out/cockroachdb" -to = "/opt/oxide/cockroachdb" -[[package.cockroachdb.paths]] -from = "common/src/sql" -to = "/opt/oxide/cockroachdb/sql" -[[package.cockroachdb.paths]] -from = "smf/cockroachdb" -to = "/var/svc/manifest/site/cockroachdb" [package.internal-dns] -rust.binary_names = ["dnsadm", "dns-server"] -rust.release = true service_name = "internal-dns" -zone = true -[[package.internal-dns.paths]] -from = "smf/internal-dns" -to = "/var/svc/manifest/site/internal-dns" +source.type = "local" +source.rust.binary_names = ["dnsadm", "dns-server"] +source.rust.release = true +source.paths = [ { from = "smf/internal-dns", to = "/var/svc/manifest/site/internal-dns" } ] +output.type = "zone" # Packages not built within Omicron, but which must be imported. # Refer to # https://github.com/oxidecomputer/crucible/blob/main/package/README.md # for instructions on building this manually. -[external_package.crucible] +[package.crucible] service_name = "crucible" -zone = true -[external_package.crucible.source] # To manually override the package source (for example, to test a change in # both Crucible and Omicron simultaneously): # # 1. Build the zone image manually # 2. Copy the output zone image from crucible/out to omicron/out # 3. Use type = "manual" instead of the "prebuilt" -type = "prebuilt" -repo = "crucible" -commit = "1d67a53042f19ff7ca30dd20a04da94b7715ed7c" +source.type = "prebuilt" +source.repo = "crucible" +source.commit = "1d67a53042f19ff7ca30dd20a04da94b7715ed7c" # The SHA256 digest is automatically posted to: # https://buildomat.eng.oxide.computer/public/file/oxidecomputer/crucible/image//crucible.sha256.txt -sha256 = "d43fcfabc3f6402cfdbe3a0d31d49ae903f76b5ddec955dcee63236e4a60fdb0" +source.sha256 = "d43fcfabc3f6402cfdbe3a0d31d49ae903f76b5ddec955dcee63236e4a60fdb0" +output.type = "zone" # Refer to # https://github.com/oxidecomputer/propolis/blob/master/package/README.md # for instructions on building this manually. -[external_package.propolis-server] +[package.propolis-server] service_name = "propolis-server" -zone = true -[external_package.propolis-server.source] -type = "prebuilt" -repo = "propolis" -commit = "c59b1ac246b19130bd489cdce217e40a4e51c094" +source.type = "prebuilt" +source.repo = "propolis" +source.commit = "c59b1ac246b19130bd489cdce217e40a4e51c094" # The SHA256 digest is automatically posted to: # https://buildomat.eng.oxide.computer/public/file/oxidecomputer/propolis/image//propolis-server.sha256.txt -sha256 = "0e75d9a22f1ff14b90d04d91e5642d654563cc82f69e2e9cca5a983668d25764" +source.sha256 = "0e75d9a22f1ff14b90d04d91e5642d654563cc82f69e2e9cca5a983668d25764" +output.type = "zone" -[external_package.maghemite] +[package.maghemite] service_name = "mg-ddm" -zone = false -[external_package.maghemite.source] -type = "prebuilt" -repo = "maghemite" +source.type = "prebuilt" +source.repo = "maghemite" # Updating the commit hash here currently requires also updating # `tools/maghemite_openapi_version`. Failing to do so will cause a failure when # building `ddm-admin-client` (which will instruct you to update # `tools/maghemite_openapi_version`). -commit = "21fd8236c23dc38fea5d1e4c8196be685c251da2" +source.commit = "21fd8236c23dc38fea5d1e4c8196be685c251da2" # The SHA256 digest is automatically posted to: # https://buildomat.eng.oxide.computer/public/file/oxidecomputer/maghemite/image//maghemite.sha256.txt -sha256 = "039c9b3e97b0d61012850c1476574742c0cb9274ffa86cfeb15d619854ebacfa" +source.sha256 = "039c9b3e97b0d61012850c1476574742c0cb9274ffa86cfeb15d619854ebacfa" +output.type = "tarball" -[external_package.dendrite-stub] +[package.dendrite-stub] service_name = "dendrite" -zone = true -[external_package.dendrite-stub.only_for_targets] -switch_variant = "stub" -[external_package.dendrite-stub.source] +only_for_targets.switch_variant = "stub" # To manually override the package source: # # 1. Build the zone image manually @@ -148,17 +127,15 @@ switch_variant = "stub" # 1c. cargo xtask dist -o # 2. Copy the output zone image from dendrite/out to omicron/out # 3. Use type = "manual" instead of the "prebuilt" -type = "prebuilt" -repo = "dendrite" -commit = "e5ae7508778d02e079d9a10942ac14ec2064ccb7" -sha256 = "db426f820cdb0de97c3ba3e80d50bad66e4b68e8882088a8cf64e1beb52b0e98" +source.type = "prebuilt" +source.repo = "dendrite" +source.commit = "e5ae7508778d02e079d9a10942ac14ec2064ccb7" +source.sha256 = "db426f820cdb0de97c3ba3e80d50bad66e4b68e8882088a8cf64e1beb52b0e98" +output.type = "zone" -[external_package.dendrite-asic] +[package.dendrite-asic] service_name = "dendrite" -zone = true -[external_package.dendrite-asic.only_for_targets] -switch_variant = "asic" -[external_package.dendrite-asic.source] +only_for_targets.switch_variant = "asic" # To manually override the package source: # # 1. Build the zone image manually @@ -167,7 +144,8 @@ switch_variant = "asic" # 1c. cargo xtask dist -o # 2. Copy the output zone image from dendrite/out to omicron/out # 3. Use type = "manual" instead of the "prebuilt" -type = "prebuilt" -repo = "dendrite" -commit = "e5ae7508778d02e079d9a10942ac14ec2064ccb7" -sha256 = "f5fdde40e15d63387e3c35105209a6e4f9dcf4a001d0a3ee36ad857937a65c62" +source.type = "prebuilt" +source.repo = "dendrite" +source.commit = "e5ae7508778d02e079d9a10942ac14ec2064ccb7" +source.sha256 = "f5fdde40e15d63387e3c35105209a6e4f9dcf4a001d0a3ee36ad857937a65c62" +output.type = "zone" diff --git a/package/Cargo.toml b/package/Cargo.toml index 6a9720e1212..c07c6a40b07 100644 --- a/package/Cargo.toml +++ b/package/Cargo.toml @@ -13,7 +13,8 @@ hex = "0.4.3" indicatif = { version = "0.17.1", features = ["rayon"] } omicron-common = { path = "../common" } omicron-sled-agent = { path = "../sled-agent" } -omicron-zone-package = "0.4.0" +omicron-zone-package = { git = "http://github.com/oxidecomputer/omicron-package", branch = "composite" } +# omicron-zone-package = "0.4.0" rayon = "1.5" reqwest = { version = "0.11", default-features = false, features = ["rustls-tls"] } ring = "0.16" diff --git a/package/src/bin/omicron-package.rs b/package/src/bin/omicron-package.rs index 4f10e283a31..ee2012f7b32 100644 --- a/package/src/bin/omicron-package.rs +++ b/package/src/bin/omicron-package.rs @@ -12,10 +12,9 @@ use omicron_package::{parse, BuildCommand, DeployCommand}; use omicron_sled_agent::cleanup_networking_resources; use omicron_sled_agent::zone; use omicron_zone_package::config::Config as PackageConfig; -use omicron_zone_package::config::ExternalPackage; -use omicron_zone_package::config::ExternalPackageSource; -use omicron_zone_package::package::Package; -use omicron_zone_package::package::Progress; +use omicron_zone_package::package::{Package, PackageOutput, PackageSource}; +use omicron_zone_package::progress::Progress; +use omicron_zone_package::target::Target; use rayon::prelude::*; use ring::digest::{Context as DigestContext, Digest, SHA256}; use slog::debug; @@ -23,7 +22,6 @@ use slog::info; use slog::o; use slog::Drain; use slog::Logger; -use std::collections::BTreeMap; use std::env; use std::fs::create_dir_all; use std::path::{Path, PathBuf}; @@ -40,73 +38,6 @@ enum SubCommand { Deploy(DeployCommand), } -#[derive(Clone, Debug)] -struct Target(BTreeMap); - -impl Target { - // Returns true if this target should include the package. - fn includes_package( - &self, - log: &Logger, - pkg_name: &String, - pkg: &Package, - ) -> bool { - let valid_targets = if let Some(targets) = &pkg.only_for_targets { - // If targets are specified for the packages, filter them. - targets - } else { - // If no targets are specified, assume the package should be - // included by default. - return true; - }; - - // For each of the targets permitted by the package, check if - // the current target matches. - for (k, v) in valid_targets { - let target_value = if let Some(target_value) = self.0.get(k) { - target_value - } else { - info!(log, "{pkg_name}: Omitting package: Missing target value for key {k}"); - return false; - }; - - if target_value != v { - info!(log, "{pkg_name}: Omitting package: Current target '{target_value}' != {v}"); - return false; - }; - } - info!(log, "{pkg_name}: Including because target matches"); - return true; - } -} - -impl std::fmt::Display for Target { - fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { - for (key, value) in &self.0 { - write!(f, "{}={} ", key, value)?; - } - Ok(()) - } -} - -#[derive(thiserror::Error, Debug)] -enum TargetParseError { - #[error("Cannot parse key-value pair out of '{0}'")] - MissingEquals(String), -} - -fn parse_target(s: &str) -> Result { - let kvs = s - .split_whitespace() - .map(|kv| { - kv.split_once('=') - .ok_or_else(|| TargetParseError::MissingEquals(kv.to_string())) - .map(|(k, v)| (k.to_string(), v.to_string())) - }) - .collect::, _>>()?; - Ok(Target(kvs)) -} - // Describes the default target. // // NOTE: This was mostly included so that the addition of the "--target" @@ -136,7 +67,6 @@ struct Args { short, long, help = "Key Value pairs (of the form 'KEY=VALUE') describing the package", - value_parser = parse_target, default_value = DEFAULT_TARGET, )] target: Target, @@ -182,10 +112,14 @@ async fn do_for_all_rust_packages( // First, filter out all Rust packages from the configuration that should be // built, and partition them into "release" and "debug" categories. let (release_pkgs, debug_pkgs): (Vec<_>, _) = config - .packages_for_target() + .package_config + .packages_to_build(&config.target) .into_iter() - .filter_map(|(name, pkg)| { - pkg.rust.as_ref().map(|rust_pkg| (name, rust_pkg.release)) + .filter_map(|(name, pkg)| match &pkg.source { + PackageSource::Local { rust: Some(rust_pkg), .. } => { + Some((name, rust_pkg.release)) + } + _ => None, }) .partition(|(_, release)| *release); @@ -242,19 +176,18 @@ async fn get_sha256_digest(path: &PathBuf) -> Result { } // Accesses a package which is contructed outside of Omicron. -async fn get_external_package( +async fn get_package( ui: &Arc, package_name: &String, - external_package: &ExternalPackage, + package: &Package, output_directory: &Path, ) -> Result<()> { - let progress = ui.add_package(package_name.to_string(), 1); - match &external_package.source { - ExternalPackageSource::Prebuilt { repo, commit, sha256 } => { + let total_work = package.get_total_work(); + let progress = ui.add_package(package_name.to_string(), total_work); + match &package.source { + PackageSource::Prebuilt { repo, commit, sha256 } => { let expected_digest = hex::decode(&sha256)?; - let path = external_package - .package - .get_output_path(package_name, &output_directory); + let path = package.get_output_path(package_name, &output_directory); let should_download = if path.exists() { // Re-download the package if the SHA doesn't match. @@ -304,14 +237,12 @@ async fn get_external_package( let digest = context.finish(); if digest.as_ref() != expected_digest { - bail!("Digest mismatch downloading {}", package_name); + bail!("Digest mismatch downloading {package_name}: Saw {}, expected {}", hex::encode(digest.as_ref()), hex::encode(expected_digest)); } } } - ExternalPackageSource::Manual => { - let path = external_package - .package - .get_output_path(package_name, &output_directory); + PackageSource::Manual => { + let path = package.get_output_path(package_name, &output_directory); if !path.exists() { bail!( "The package for {} (expected at {}) does not exist.", @@ -320,6 +251,20 @@ async fn get_external_package( ); } } + PackageSource::Local { .. } | PackageSource::Composite { .. } => { + progress.set_message("bundle package".to_string()); + package + .create_with_progress(&progress, package_name, &output_directory) + .await + .with_context(|| { + let msg = format!("failed to create {package_name} in {output_directory:?}"); + if let Some(hint) = &package.setup_hint { + format!("{msg}\nHint: {hint}") + } else { + msg + } + })?; + } } progress.finish(); Ok(()) @@ -333,61 +278,35 @@ async fn do_package(config: &Config, output_directory: &Path) -> Result<()> { do_build(&config).await?; - let external_packages = config.external_packages_for_target(); - - let ui_refs = vec![ui.clone(); external_packages.len()]; - let external_pkg_stream = stream::iter(&external_packages) - // It's a pain to clone a value into closures - see - // https://github.com/rust-lang/rfcs/issues/2407 - so in the meantime, - // we explicitly create the references to the UI we need for each - // package. - .zip(stream::iter(ui_refs)) - // We convert the stream type to operate on Results, so we may invoke - // "try_for_each_concurrent" more easily. - .map(Ok::<_, anyhow::Error>) - .try_for_each_concurrent( - None, - |((package_name, package), ui)| async move { - get_external_package( - &ui, - package_name, - package, - output_directory, - ) - .await - }, - ); - - let packages = config.packages_for_target(); - - let ui_refs = vec![ui.clone(); packages.len()]; - let internal_pkg_stream = stream::iter(&packages) - .zip(stream::iter(ui_refs)) - .map(Ok::<_, anyhow::Error>) - .try_for_each_concurrent( - None, - |((package_name, package), ui)| async move { - let total_work = package.get_total_work(); - let progress = - ui.add_package(package_name.to_string(), total_work); - progress.set_message("bundle package".to_string()); - package - .create_with_progress(&progress, package_name, &output_directory) - .await - .with_context(|| { - let msg = format!("failed to create {package_name} in {output_directory:?}"); - if let Some(hint) = &package.setup_hint { - format!("{msg}\nHint: {hint}") - } else { - msg - } - })?; - progress.finish(); - Ok(()) - }, - ); + // Assemble all the non-composite packages before the composite ones. + // + // Since there are not (yet) composite of composite packages, we can do + // this in a simple two-stage build. + let (base_pkgs, composite_pkgs): (Vec<_>, Vec<_>) = config + .package_config + .packages_to_build(&config.target) + .into_iter() + .partition(|(_, pkg)| { + !matches!(pkg.source, PackageSource::Composite { .. }) + }); + + let groups = [base_pkgs, composite_pkgs]; + + for packages in groups { + let ui_refs = vec![ui.clone(); packages.len()]; + let pkg_stream = stream::iter(&packages) + .zip(stream::iter(ui_refs)) + .map(Ok::<_, anyhow::Error>) + .try_for_each_concurrent( + None, + |((package_name, package), ui)| async move { + get_package(&ui, package_name, package, output_directory) + .await + }, + ); - tokio::try_join!(external_pkg_stream, internal_pkg_stream)?; + pkg_stream.await?; + } Ok(()) } @@ -402,9 +321,9 @@ fn do_unpack( })?; // Copy all packages to the install location in parallel. - let packages = config.all_packages_for_target(); + let packages = config.package_config.packages_to_deploy(&config.target); - packages.into_par_iter().try_for_each( + packages.par_iter().try_for_each( |(package_name, package)| -> Result<()> { let tarfile = package.get_output_path(&package_name, artifact_dir); let src = tarfile.as_path(); @@ -428,10 +347,11 @@ fn do_unpack( } // Extract all global zone services. - let global_zone_service_names = config - .all_packages_for_target() - .into_iter() - .filter_map(|(_, p)| if p.zone { None } else { Some(&p.service_name) }); + let global_zone_service_names = + packages.into_iter().filter_map(|(_, p)| match p.output { + PackageOutput::Zone { .. } => None, + PackageOutput::Tarball => Some(&p.service_name), + }); for service_name in global_zone_service_names { let tar_path = install_dir.join(format!("{}.tar", service_name)); @@ -457,7 +377,7 @@ fn do_activate(config: &Config, install_dir: &Path) -> Result<()> { // Install the bootstrap service, which itself extracts and // installs other services. if let Some(package) = - config.packages_for_target().get("omicron-sled-agent") + config.package_config.packages.get("omicron-sled-agent") { let manifest_path = install_dir .join(&package.service_name) @@ -495,9 +415,10 @@ fn uninstall_all_omicron_zones() -> Result<()> { // Attempts to both disable and delete all requested packages. fn uninstall_all_packages(config: &Config) { for (_, package) in config - .all_packages_for_target() + .package_config + .packages_to_deploy(&config.target) .into_iter() - .filter(|(_, package)| !package.zone) + .filter(|(_, package)| matches!(package.output, PackageOutput::Tarball)) { let _ = smf::Adm::new() .disable() @@ -669,44 +590,6 @@ struct Config { target: Target, } -impl Config { - fn packages_for_target(&self) -> BTreeMap { - self.package_config - .packages - .iter() - .filter(|(name, pkg)| { - self.target.includes_package(&self.log, name, pkg) - }) - .map(|(name, pkg)| (name.clone(), pkg)) - .collect() - } - - fn external_packages_for_target( - &self, - ) -> BTreeMap { - self.package_config - .external_packages - .iter() - .filter(|(name, epkg)| { - self.target.includes_package(&self.log, name, &epkg.package) - }) - .map(|(name, pkg)| (name.clone(), pkg)) - .collect() - } - - // Combination of all internal and external packages - fn all_packages_for_target(&self) -> BTreeMap { - self.packages_for_target() - .into_iter() - .chain( - self.external_packages_for_target() - .into_iter() - .map(|(name, epkg)| (name, &epkg.package)), - ) - .collect() - } -} - #[tokio::main] async fn main() -> Result<()> { let args = Args::try_parse()?; diff --git a/sled-agent/Cargo.toml b/sled-agent/Cargo.toml index 9b372cc6caa..8a3f04df0d6 100644 --- a/sled-agent/Cargo.toml +++ b/sled-agent/Cargo.toml @@ -17,7 +17,6 @@ clap = { version = "4.0", features = ["derive"] } crucible-client-types = { git = "https://github.com/oxidecomputer/crucible", rev = "bacffd142fc38a01fe255407b0c8d5d0aacfe778" } crucible-agent-client = { git = "https://github.com/oxidecomputer/crucible", rev = "bacffd142fc38a01fe255407b0c8d5d0aacfe778" } ddm-admin-client = { path = "../ddm-admin-client" } -diesel = { version = "2.0.2", features = ["sqlite", "chrono", "serde_json", "network-address", "uuid"] } dropshot = { git = "https://github.com/oxidecomputer/dropshot", branch = "main", features = [ "usdt-probes" ] } futures = "0.3.24" internal-dns-client = { path = "../internal-dns-client" } From a473fd562a3ff3836e9d89d2024cf112357d3181 Mon Sep 17 00:00:00 2001 From: Sean Klein Date: Thu, 13 Oct 2022 19:53:47 -0700 Subject: [PATCH 2/5] lockfile --- Cargo.lock | 279 ----------------------------------------------------- 1 file changed, 279 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 80b6af5806b..ae1c7adf855 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -160,51 +160,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" -[[package]] -name = "axum" -version = "0.5.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e3356844c4d6a6d6467b8da2cffb4a2820be256f50a3a386c9d152bab31043" -dependencies = [ - "async-trait", - "axum-core", - "bitflags", - "bytes", - "futures-util", - "http", - "http-body", - "hyper", - "itoa", - "matchit", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "serde", - "sync_wrapper", - "tokio", - "tower", - "tower-http", - "tower-layer", - "tower-service", -] - -[[package]] -name = "axum-core" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9f0c0a60006f2a293d82d571f635042a72edf927539b7685bd62d361963839b" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http", - "http-body", - "mime", - "tower-layer", - "tower-service", -] - [[package]] name = "backoff" version = "0.4.0" @@ -669,42 +624,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "console-api" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e57ff02e8ad8e06ab9731d5dc72dc23bef9200778eae1a89d555d8c42e5d4a86" -dependencies = [ - "prost", - "prost-types", - "tonic", - "tracing-core", -] - -[[package]] -name = "console-subscriber" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22a3a81dfaf6b66bce5d159eddae701e3a002f194d378cbf7be5f053c281d9be" -dependencies = [ - "console-api", - "crossbeam-channel", - "crossbeam-utils", - "futures", - "hdrhistogram", - "humantime", - "prost-types", - "serde", - "serde_json", - "thread_local", - "tokio", - "tokio-stream", - "tonic", - "tracing", - "tracing-core", - "tracing-subscriber", -] - [[package]] name = "const-oid" version = "0.6.2" @@ -1950,19 +1869,6 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -[[package]] -name = "hdrhistogram" -version = "7.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f19b9f54f7c7f55e31401bb647626ce0cf0f67b0004982ce815b3ee72a02aa8" -dependencies = [ - "base64", - "byteorder", - "flate2", - "nom", - "num-traits", -] - [[package]] name = "headers" version = "0.3.8" @@ -2105,12 +2011,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "http-range-header" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" - [[package]] name = "httparse" version = "1.8.0" @@ -2207,18 +2107,6 @@ dependencies = [ "tokio-rustls", ] -[[package]] -name = "hyper-timeout" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" -dependencies = [ - "hyper", - "pin-project-lite", - "tokio", - "tokio-io-timeout", -] - [[package]] name = "hyper-tls" version = "0.5.0" @@ -2622,27 +2510,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata", -] - [[package]] name = "matches" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" -[[package]] -name = "matchit" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" - [[package]] name = "md-5" version = "0.10.5" @@ -3189,7 +3062,6 @@ version = "0.1.0" dependencies = [ "anyhow", "clap 4.0.14", - "console-subscriber", "futures", "hex", "indicatif", @@ -4219,39 +4091,6 @@ dependencies = [ "tempfile", ] -[[package]] -name = "prost" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "399c3c31cdec40583bb68f0b18403400d01ec4289c383aa047560439952c4dd7" -dependencies = [ - "bytes", - "prost-derive", -] - -[[package]] -name = "prost-derive" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7345d5f0e08c0536d7ac7229952590239e77abf0a0100a1b1d890add6ea96364" -dependencies = [ - "anyhow", - "itertools", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "prost-types" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dfaa718ad76a44b3415e6c4d53b17c8f99160dcb3a99b10470fce8ad43f6e3e" -dependencies = [ - "bytes", - "prost", -] - [[package]] name = "quick-error" version = "1.2.3" @@ -4507,9 +4346,6 @@ name = "regex-automata" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax", -] [[package]] name = "regex-syntax" @@ -5682,12 +5518,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "sync_wrapper" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20518fe4a4c9acf048008599e464deb21beeae3d3578418951a189c235a7a9a8" - [[package]] name = "synstructure" version = "0.12.6" @@ -5920,20 +5750,9 @@ dependencies = [ "signal-hook-registry", "socket2", "tokio-macros", - "tracing", "winapi", ] -[[package]] -name = "tokio-io-timeout" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" -dependencies = [ - "pin-project-lite", - "tokio", -] - [[package]] name = "tokio-macros" version = "1.8.0" @@ -6036,38 +5855,6 @@ dependencies = [ "serde", ] -[[package]] -name = "tonic" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55b9af819e54b8f33d453655bef9b9acc171568fb49523078d0cc4e7484200ec" -dependencies = [ - "async-stream", - "async-trait", - "axum", - "base64", - "bytes", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-timeout", - "percent-encoding", - "pin-project", - "prost", - "prost-derive", - "tokio", - "tokio-stream", - "tokio-util", - "tower", - "tower-layer", - "tower-service", - "tracing", - "tracing-futures", -] - [[package]] name = "toolchain_find" version = "0.2.0" @@ -6108,51 +5895,6 @@ dependencies = [ "walkdir", ] -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "indexmap", - "pin-project", - "pin-project-lite", - "rand 0.8.5", - "slab", - "tokio", - "tokio-util", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-http" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c530c8675c1dbf98facee631536fa116b5fb6382d7dd6dc1b118d970eafe3ba" -dependencies = [ - "bitflags", - "bytes", - "futures-core", - "futures-util", - "http", - "http-body", - "http-range-header", - "pin-project-lite", - "tower", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" - [[package]] name = "tower-service" version = "0.3.2" @@ -6190,17 +5932,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" dependencies = [ "once_cell", - "valuable", -] - -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", ] [[package]] @@ -6209,12 +5940,8 @@ version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" dependencies = [ - "matchers", - "once_cell", - "regex", "sharded-slab", "thread_local", - "tracing", "tracing-core", ] @@ -6555,12 +6282,6 @@ dependencies = [ "serde", ] -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - [[package]] name = "vcell" version = "0.1.3" From e8b5712ae72d9efc8f8f0c2b683170ec4f459666 Mon Sep 17 00:00:00 2001 From: Sean Klein Date: Mon, 17 Oct 2022 15:21:29 -0400 Subject: [PATCH 3/5] Add composite package, use 0.5 of omicron-package --- Cargo.lock | 6 ++++-- ddm-admin-client/Cargo.toml | 3 +-- package-manifest.toml | 30 +++++++++++++++++++++++------- package/Cargo.toml | 3 +-- 4 files changed, 29 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ae1c7adf855..5536368f4ed 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3181,10 +3181,12 @@ dependencies = [ [[package]] name = "omicron-zone-package" -version = "0.4.0" -source = "git+http://github.com/oxidecomputer/omicron-package?branch=composite#4e6e6ab10da2dcf6d0b41e6d9c24faaa59c44ced" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "482fcd079ad7648de4d4325ba1e83881890f8372de7c570ebb13cbbc0d9894b2" dependencies = [ "anyhow", + "async-trait", "chrono", "filetime", "flate2", diff --git a/ddm-admin-client/Cargo.toml b/ddm-admin-client/Cargo.toml index b6c9a201697..a702732cc35 100644 --- a/ddm-admin-client/Cargo.toml +++ b/ddm-admin-client/Cargo.toml @@ -11,8 +11,7 @@ slog = "2.7" [build-dependencies] anyhow = "1.0" -# omicron-zone-package = "0.3.1" -omicron-zone-package = { git = "http://github.com/oxidecomputer/omicron-package", branch = "composite" } +omicron-zone-package = "0.5.0" progenitor = { git = "https://github.com/oxidecomputer/progenitor" } quote = "1.0" serde_json = "1.0" diff --git a/package-manifest.toml b/package-manifest.toml index 61799711999..8c8df242a18 100644 --- a/package-manifest.toml +++ b/package-manifest.toml @@ -69,13 +69,12 @@ source.paths = [ { from = "smf/internal-dns", to = "/var/svc/manifest/site/inter output.type = "zone" [package.omicron-gateway] -rust.binary_names = ["mgs"] -rust.release = true service_name = "mgs" -zone = true -[[package.omicron-gateway.paths]] -from = "smf/mgs" -to = "/var/svc/manifest/site/mgs" +source.type = "local" +source.rust.binary_names = ["mgs"] +source.rust.release = true +source.paths = [ { from = "smf/mgs", to = "/var/svc/manifest/site/mgs" } ] +output.type = "zone" # Packages not built within Omicron, but which must be imported. @@ -124,6 +123,7 @@ source.commit = "21fd8236c23dc38fea5d1e4c8196be685c251da2" # https://buildomat.eng.oxide.computer/public/file/oxidecomputer/maghemite/image//maghemite.sha256.txt source.sha256 = "039c9b3e97b0d61012850c1476574742c0cb9274ffa86cfeb15d619854ebacfa" output.type = "tarball" +output.intermediate_only = true [package.dendrite-stub] service_name = "dendrite" @@ -141,6 +141,7 @@ source.repo = "dendrite" source.commit = "09c8878be3f78f0a5d384e7f59b93ea66e02e7a4" source.sha256 = "e05d33dc5d3deafae7d618c45b019c87ddd97e7a1fff11fa3ffb7593a3e10eaf" output.type = "zone" +output.intermediate_only = true [package.dendrite-asic] service_name = "dendrite" @@ -156,5 +157,20 @@ only_for_targets.switch_variant = "asic" source.type = "prebuilt" source.repo = "dendrite" source.commit = "09c8878be3f78f0a5d384e7f59b93ea66e02e7a4" -source.sha256 = "e05d33dc5d3deafae7d618c45b019c87ddd97e7a1fff11fa3ffb7593a3e10eaf" +source.sha256 = "208ae10a61f834608378eb135e4b6e5993dc363019b8fba75465b6ea5506b635" +output.type = "zone" +output.intermediate_only = true + +[package.switch-asic] +service_name = "switch" +only_for_targets.switch_variant = "asic" +source.type = "composite" +source.packages = [ "omicron-gateway.tar.gz", "dendrite-asic.tar.gz" ] +output.type = "zone" + +[package.switch-stub] +service_name = "switch" +only_for_targets.switch_variant = "stub" +source.type = "composite" +source.packages = [ "omicron-gateway.tar.gz", "dendrite-stub.tar.gz" ] output.type = "zone" diff --git a/package/Cargo.toml b/package/Cargo.toml index c07c6a40b07..711abbc38d4 100644 --- a/package/Cargo.toml +++ b/package/Cargo.toml @@ -13,8 +13,7 @@ hex = "0.4.3" indicatif = { version = "0.17.1", features = ["rayon"] } omicron-common = { path = "../common" } omicron-sled-agent = { path = "../sled-agent" } -omicron-zone-package = { git = "http://github.com/oxidecomputer/omicron-package", branch = "composite" } -# omicron-zone-package = "0.4.0" +omicron-zone-package = "0.5.0" rayon = "1.5" reqwest = { version = "0.11", default-features = false, features = ["rustls-tls"] } ring = "0.16" From 3b469a56d646e2d827d6b880c0db84e0b65537c1 Mon Sep 17 00:00:00 2001 From: Sean Klein Date: Mon, 17 Oct 2022 15:24:14 -0400 Subject: [PATCH 4/5] Update comments --- package-manifest.toml | 6 +++--- package/src/bin/omicron-package.rs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-manifest.toml b/package-manifest.toml index 8c8df242a18..893c4095613 100644 --- a/package-manifest.toml +++ b/package-manifest.toml @@ -88,7 +88,7 @@ service_name = "crucible" # # 1. Build the zone image manually # 2. Copy the output zone image from crucible/out to omicron/out -# 3. Use type = "manual" instead of the "prebuilt" +# 3. Use source.type = "manual" instead of "prebuilt" source.type = "prebuilt" source.repo = "crucible" source.commit = "1d67a53042f19ff7ca30dd20a04da94b7715ed7c" @@ -135,7 +135,7 @@ only_for_targets.switch_variant = "stub" # 1b. cargo build --features=tofino_stub # 1c. cargo xtask dist -o # 2. Copy dendrite.tar.gz from dendrite/out to omicron/out -# 3. Use type = "manual" instead of the "prebuilt" +# 3. Use source.type = "manual" instead of "prebuilt" source.type = "prebuilt" source.repo = "dendrite" source.commit = "09c8878be3f78f0a5d384e7f59b93ea66e02e7a4" @@ -153,7 +153,7 @@ only_for_targets.switch_variant = "asic" # 1b. cargo build --features= # 1c. cargo xtask dist -o # 2. Copy the output zone image from dendrite/out to omicron/out -# 3. Use type = "manual" instead of the "prebuilt" +# 3. Use source.type = "manual" instead of "prebuilt" source.type = "prebuilt" source.repo = "dendrite" source.commit = "09c8878be3f78f0a5d384e7f59b93ea66e02e7a4" diff --git a/package/src/bin/omicron-package.rs b/package/src/bin/omicron-package.rs index cc9c2ec1ad1..4907d2e7bb8 100644 --- a/package/src/bin/omicron-package.rs +++ b/package/src/bin/omicron-package.rs @@ -175,7 +175,7 @@ async fn get_sha256_digest(path: &PathBuf) -> Result { Ok(context.finish()) } -// Accesses a package which is contructed outside of Omicron. +// Ensures a package exists, either by creating it or downloading it. async fn get_package( ui: &Arc, package_name: &String, From ac12a68129620722e248a8258cbd4a02d8450d6d Mon Sep 17 00:00:00 2001 From: Sean Klein Date: Mon, 17 Oct 2022 15:34:20 -0400 Subject: [PATCH 5/5] Fix intermediate --- package-manifest.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-manifest.toml b/package-manifest.toml index 893c4095613..38c8015ebf8 100644 --- a/package-manifest.toml +++ b/package-manifest.toml @@ -75,6 +75,7 @@ source.rust.binary_names = ["mgs"] source.rust.release = true source.paths = [ { from = "smf/mgs", to = "/var/svc/manifest/site/mgs" } ] output.type = "zone" +output.intermediate_only = true # Packages not built within Omicron, but which must be imported. @@ -123,7 +124,6 @@ source.commit = "21fd8236c23dc38fea5d1e4c8196be685c251da2" # https://buildomat.eng.oxide.computer/public/file/oxidecomputer/maghemite/image//maghemite.sha256.txt source.sha256 = "039c9b3e97b0d61012850c1476574742c0cb9274ffa86cfeb15d619854ebacfa" output.type = "tarball" -output.intermediate_only = true [package.dendrite-stub] service_name = "dendrite"