diff --git a/Cargo.lock b/Cargo.lock index e12588ef0..8c23f6fb7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11,7 +11,7 @@ dependencies = [ "actix-rt 2.7.0", "actix_derive", "bitflags", - "bytes 1.2.1", + "bytes 1.4.0", "crossbeam-channel", "futures-core", "futures-sink", @@ -22,7 +22,7 @@ dependencies = [ "parking_lot 0.11.2", "pin-project-lite 0.2.9", "smallvec", - "tokio 1.21.2", + "tokio 1.26.0", "tokio-util 0.6.10", ] @@ -58,7 +58,7 @@ dependencies = [ "http", "log", "openssl", - "tokio-openssl", + "tokio-openssl 0.4.0", "trust-dns-proto", "trust-dns-resolver", ] @@ -117,8 +117,8 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4ca8ce00b267af8ccebbd647de0d61e0674b6e61185cc7a592ff88772bed655" dependencies = [ - "quote 1.0.21", - "syn 1.0.103", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -127,8 +127,8 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "465a6172cf69b960917811022d8f29bc0b7fa1398bc4f78b3c466673db1213b6" dependencies = [ - "quote 1.0.21", - "syn 1.0.103", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -167,7 +167,7 @@ checksum = "7ea16c295198e958ef31930a6ef37d0fb64e9ca3b6116e6b93a8bdae96ee1000" dependencies = [ "actix-macros 0.2.3", "futures-core", - "tokio 1.21.2", + "tokio 1.26.0", ] [[package]] @@ -240,7 +240,7 @@ dependencies = [ "actix-utils", "futures-util", "openssl", - "tokio-openssl", + "tokio-openssl 0.4.0", ] [[package]] @@ -309,9 +309,9 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad26f77093333e0e7c6ffe54ebe3582d908a104e448723eec6d43d08b07143fb" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -320,9 +320,9 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d44b8fee1ced9671ba043476deddef739dd0959bf77030b26b738cc591737a7" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -333,7 +333,7 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "agent" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-debug-echo", "akri-discovery-utils", @@ -370,7 +370,7 @@ dependencies = [ "serde_json", "serde_yaml", "tempfile", - "tokio 1.21.2", + "tokio 1.26.0", "tokio-stream", "tonic", "tonic-build", @@ -381,10 +381,11 @@ dependencies = [ [[package]] name = "ahash" -version = "0.7.6" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" dependencies = [ + "cfg-if 1.0.0", "getrandom 0.2.8", "once_cell", "version_check", @@ -401,7 +402,7 @@ dependencies = [ [[package]] name = "akri-debug-echo" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-discovery-utils", "akri-shared", @@ -414,14 +415,14 @@ dependencies = [ "serde_derive", "serde_json", "serde_yaml", - "tokio 1.21.2", + "tokio 1.26.0", "tokio-stream", "tonic", ] [[package]] name = "akri-discovery-utils" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-shared", "anyhow", @@ -434,7 +435,7 @@ dependencies = [ "serde_derive", "serde_yaml", "tempfile", - "tokio 1.21.2", + "tokio 1.26.0", "tokio-stream", "tonic", "tonic-build", @@ -443,13 +444,13 @@ dependencies = [ [[package]] name = "akri-onvif" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-discovery-utils", "akri-shared", "anyhow", "async-trait", - "bytes 1.2.1", + "bytes 1.4.0", "env_logger", "futures-util", "hyper", @@ -461,7 +462,7 @@ dependencies = [ "serde_yaml", "sxd-document", "sxd-xpath", - "tokio 1.21.2", + "tokio 1.26.0", "tokio-stream", "tonic", "uuid", @@ -471,7 +472,7 @@ dependencies = [ [[package]] name = "akri-opcua" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-discovery-utils", "akri-shared", @@ -487,7 +488,7 @@ dependencies = [ "serde_derive", "serde_json", "serde_yaml", - "tokio 1.21.2", + "tokio 1.26.0", "tokio-stream", "tonic", "url 2.3.1", @@ -495,7 +496,7 @@ dependencies = [ [[package]] name = "akri-shared" -version = "0.9.4" +version = "0.9.5" dependencies = [ "anyhow", "async-trait", @@ -516,7 +517,7 @@ dependencies = [ "serde_derive", "serde_json", "serde_yaml", - "tokio 1.21.2", + "tokio 1.26.0", "tonic", "tower", "warp", @@ -524,7 +525,7 @@ dependencies = [ [[package]] name = "akri-udev" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-discovery-utils", "anyhow", @@ -541,7 +542,7 @@ dependencies = [ "serde_derive", "serde_json", "serde_yaml", - "tokio 1.21.2", + "tokio 1.26.0", "tokio-stream", "tonic", "udev", @@ -632,7 +633,7 @@ dependencies = [ "parking", "polling", "slab", - "socket2 0.4.7", + "socket2 0.4.9", "waker-fn", "winapi 0.3.9", ] @@ -689,9 +690,9 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -702,13 +703,13 @@ checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" [[package]] name = "async-trait" -version = "0.1.58" +version = "0.1.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e805d94e6b5001b651426cf4cd446b1ab5f319d27bab5c644f61de0a804360c" +checksum = "b84f9ebcc6c1f5b8cb160f6990096a5c127f423fcb6e1ccc46c370cbdfb75dfc" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -723,7 +724,7 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ - "hermit-abi", + "hermit-abi 0.1.19", "libc", "winapi 0.3.9", ] @@ -788,6 +789,12 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "base64" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea22880d78093b0cbe17c89f64a7d457941e65759157ec6cb31a31d652b05e5" + [[package]] name = "bitflags" version = "1.3.2" @@ -870,9 +877,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.11.1" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" +checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" [[package]] name = "byteorder" @@ -888,9 +895,9 @@ checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" [[package]] name = "bytes" -version = "1.2.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" +checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" [[package]] name = "bytestring" @@ -898,7 +905,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b6a75fd3048808ef06af5cd79712be8111960adaf89d90250974b38fc3928a" dependencies = [ - "bytes 1.2.1", + "bytes 1.4.0", ] [[package]] @@ -909,9 +916,9 @@ checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" [[package]] name = "cc" -version = "1.0.73" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" [[package]] name = "cfg-if" @@ -927,16 +934,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.22" +version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" +checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" dependencies = [ "iana-time-zone", "js-sys", "num-integer", "num-traits", "serde", - "time 0.1.44", + "time 0.1.45", "wasm-bindgen", "winapi 0.3.9", ] @@ -992,7 +999,7 @@ checksum = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935" [[package]] name = "controller" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-shared", "anyhow", @@ -1012,7 +1019,7 @@ dependencies = [ "serde_derive", "serde_json", "serde_yaml", - "tokio 1.21.2", + "tokio 1.26.0", ] [[package]] @@ -1038,16 +1045,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2df960f5d869b2dd8532793fde43eb5427cceb126c929747a26823ab0eeb536" -[[package]] -name = "core-foundation" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "core-foundation-sys" version = "0.8.3" @@ -1117,15 +1114,15 @@ version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" dependencies = [ - "quote 1.0.21", - "syn 1.0.103", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] name = "cxx" -version = "1.0.80" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b7d4e43b25d3c994662706a1d4fcfc32aaa6afd287502c111b237093bb23f3a" +checksum = "9a140f260e6f3f79013b8bfc65e7ce630c9ab4388c6a89c71e07226f49487b72" dependencies = [ "cc", "cxxbridge-flags", @@ -1135,41 +1132,41 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.80" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84f8829ddc213e2c1368e51a2564c552b65a8cb6a28f31e576270ac81d5e5827" +checksum = "da6383f459341ea689374bf0a42979739dc421874f112ff26f829b8040b8e613" dependencies = [ "cc", "codespan-reporting", "once_cell", - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2 1.0.51", + "quote 1.0.23", "scratch", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] name = "cxxbridge-flags" -version = "1.0.80" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e72537424b474af1460806647c41d4b6d35d09ef7fe031c5c2fa5766047cc56a" +checksum = "90201c1a650e95ccff1c8c0bb5a343213bdd317c6e600a93075bca2eff54ec97" [[package]] name = "cxxbridge-macro" -version = "1.0.80" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "309e4fb93eed90e1e14bea0da16b209f81813ba9fc7830c20ed151dd7bc0a4d7" +checksum = "0b75aed41bb2e6367cae39e6326ef817a851db13c13e4f3263714ca3cfb8de56" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] name = "darling" -version = "0.13.4" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +checksum = "c0808e1bd8671fb44a113a14e13497557533369847788fa2ae912b6ebfce9fa8" dependencies = [ "darling_core", "darling_macro", @@ -1177,38 +1174,38 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.13.4" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +checksum = "001d80444f28e193f30c2f293455da62dcf9a6b29918a4253152ae2b1de592cb" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2 1.0.51", + "quote 1.0.23", "strsim", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] name = "darling_macro" -version = "0.13.4" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +checksum = "b36230598a2d5de7ec1c6f51f72d8a99a9208daff41de2084d06e3fd3ea56685" dependencies = [ "darling_core", - "quote 1.0.21", - "syn 1.0.103", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] name = "debug-echo-discovery-handler" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-debug-echo", "akri-discovery-utils", "env_logger", "log", - "tokio 1.21.2", + "tokio 1.26.0", ] [[package]] @@ -1228,9 +1225,9 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -1240,10 +1237,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case", - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2 1.0.51", + "quote 1.0.23", "rustc_version 0.4.0", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] @@ -1306,15 +1303,15 @@ checksum = "4bb454f0228b18c7f4c3b0ebbee346ed9c52e7443b0999cd543ff3571205701d" [[package]] name = "dyn-clone" -version = "1.0.9" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f94fa09c2aeea5b8839e414b7b841bf429fd25b9c522116ac97ee87856d88b2" +checksum = "68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30" [[package]] name = "either" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" +checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" [[package]] name = "encoding_rs" @@ -1332,9 +1329,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "570d109b813e904becc80d8d5da38376818a143348413f7149f1340fe04754d4" dependencies = [ "heck 0.4.0", - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -1350,6 +1347,27 @@ dependencies = [ "termcolor", ] +[[package]] +name = "errno" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" +dependencies = [ + "errno-dragonfly", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "event-listener" version = "2.5.3" @@ -1358,9 +1376,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "fastrand" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" dependencies = [ "instant", ] @@ -1453,9 +1471,9 @@ checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" [[package]] name = "futures" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0" +checksum = "13e2792b0ff0340399d58445b88fd9770e3489eff258a4cbc1523418f12abf84" dependencies = [ "futures-channel", "futures-core", @@ -1468,9 +1486,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" +checksum = "2e5317663a9089767a1ec00a487df42e0ca174b61b4483213ac24448e4664df5" dependencies = [ "futures-core", "futures-sink", @@ -1478,15 +1496,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" +checksum = "ec90ff4d0fe1f57d600049061dc6bb68ed03c7d2fbd697274c41805dcb3f8608" [[package]] name = "futures-executor" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" +checksum = "e8de0a35a6ab97ec8869e32a2473f4b1324459e14c29275d14b10cb1fd19b50e" dependencies = [ "futures-core", "futures-task", @@ -1495,9 +1513,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" +checksum = "bfb8371b6fb2aeb2d280374607aeabfc99d95c72edfe51692e42d3d7f0d08531" [[package]] name = "futures-lite" @@ -1516,32 +1534,32 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" +checksum = "95a73af87da33b5acf53acfebdc339fe592ecf5357ac7c0a7734ab9d8c876a70" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] name = "futures-sink" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" +checksum = "f310820bb3e8cfd46c80db4d7fb8353e15dfff853a127158425f31e0be6c8364" [[package]] name = "futures-task" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" +checksum = "dcf79a1bf610b10f42aea489289c5a2c478a786509693b80cd39c44ccd936366" [[package]] name = "futures-util" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" +checksum = "9c1d6de3acfef38d2be4b1f543f553131788603495be83da675e180c8d6b7bd1" dependencies = [ "futures-channel", "futures-core", @@ -1643,7 +1661,7 @@ name = "h2" version = "0.3.3" source = "git+https://github.com/kate-goldenring/h2?branch=v0.3.3-patch#353943d123e9cb7b29e376ee8927be5deffe5f57" dependencies = [ - "bytes 1.2.1", + "bytes 1.4.0", "fnv", "futures-core", "futures-sink", @@ -1651,7 +1669,7 @@ dependencies = [ "http", "indexmap", "slab", - "tokio 1.21.2", + "tokio 1.26.0", "tokio-util 0.6.10", "tracing", ] @@ -1670,7 +1688,7 @@ checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" dependencies = [ "base64 0.13.1", "bitflags", - "bytes 1.2.1", + "bytes 1.4.0", "headers-core", "http", "httpdate", @@ -1711,6 +1729,15 @@ dependencies = [ "libc", ] +[[package]] +name = "hermit-abi" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +dependencies = [ + "libc", +] + [[package]] name = "hex" version = "0.4.3" @@ -1730,13 +1757,13 @@ dependencies = [ [[package]] name = "http" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" dependencies = [ - "bytes 1.2.1", + "bytes 1.4.0", "fnv", - "itoa 1.0.4", + "itoa 1.0.6", ] [[package]] @@ -1745,7 +1772,7 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ - "bytes 1.2.1", + "bytes 1.4.0", "http", "pin-project-lite 0.2.9", ] @@ -1780,7 +1807,7 @@ version = "0.14.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "436ec0091e4f20e655156a30a0df3770fe2900aa301e548e08446ec794b6953c" dependencies = [ - "bytes 1.2.1", + "bytes 1.4.0", "futures-channel", "futures-core", "futures-util", @@ -1791,43 +1818,48 @@ dependencies = [ "httpdate", "itoa 0.4.8", "pin-project-lite 0.2.9", - "socket2 0.4.7", - "tokio 1.21.2", + "socket2 0.4.9", + "tokio 1.26.0", "tower-service", "tracing", "want", ] [[package]] -name = "hyper-timeout" -version = "0.4.1" +name = "hyper-openssl" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +checksum = "d6ee5d7a8f718585d1c3c61dfde28ef5b0bb14734b4db13f5ada856cdc6c612b" dependencies = [ + "http", "hyper", - "pin-project-lite 0.2.9", - "tokio 1.21.2", - "tokio-io-timeout", + "linked_hash_set", + "once_cell", + "openssl", + "openssl-sys", + "parking_lot 0.12.1", + "tokio 1.26.0", + "tokio-openssl 0.6.3", + "tower-layer", ] [[package]] -name = "hyper-tls" -version = "0.5.0" +name = "hyper-timeout" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ - "bytes 1.2.1", "hyper", - "native-tls", - "tokio 1.21.2", - "tokio-native-tls", + "pin-project-lite 0.2.9", + "tokio 1.26.0", + "tokio-io-timeout", ] [[package]] name = "iana-time-zone" -version = "0.1.51" +version = "0.1.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5a6ef98976b22b3b7f2f3a806f858cb862044cfa66805aa3ad84cb3d3b785ed" +checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -1887,9 +1919,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.9.1" +version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" +checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" dependencies = [ "autocfg", "hashbrown", @@ -1904,6 +1936,16 @@ dependencies = [ "cfg-if 1.0.0", ] +[[package]] +name = "io-lifetimes" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfa919a82ea574332e2de6e74b4c36e74d41982b335080fa59d4ef31be20fdf3" +dependencies = [ + "libc", + "windows-sys 0.45.0", +] + [[package]] name = "iovec" version = "0.1.4" @@ -1948,27 +1990,28 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "itoa" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" +checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" [[package]] name = "js-sys" -version = "0.3.60" +version = "0.3.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" dependencies = [ "wasm-bindgen", ] [[package]] name = "json-patch" -version = "0.2.6" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f995a3c8f2bc3dd52a18a583e90f9ec109c047fa1603a853e46bcda14d2e279d" +checksum = "e712e62827c382a77b87f590532febb1f8b2fdbc3eefa1ee37fe7281687075ef" dependencies = [ "serde", "serde_json", + "thiserror", "treediff", ] @@ -1985,12 +2028,12 @@ dependencies = [ [[package]] name = "k8s-openapi" -version = "0.14.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0489fc937cc7616a9abfa61bf39c250d7e32e1325ef028c8d9278dd24ea395b3" +checksum = "3d1985030683a2bac402cbda61222195de80d3f66b4c87ab56e5fea379bd98c3" dependencies = [ - "base64 0.13.1", - "bytes 1.2.1", + "base64 0.20.0", + "bytes 1.4.0", "chrono", "schemars", "serde", @@ -2010,9 +2053,9 @@ dependencies = [ [[package]] name = "kube" -version = "0.69.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86835e9147615457c1edc2b11c723acd1d21372e9cefa80a9d2742f6d69042d0" +checksum = "414d80c69906a91e8ecf4ae16d0fb504e19aa6b099135d35d85298b4e4be3ed3" dependencies = [ "k8s-openapi", "kube-client", @@ -2022,12 +2065,12 @@ dependencies = [ [[package]] name = "kube-client" -version = "0.69.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71f8aa916ee8290fbd0af76b3a28093a8786fccb6286902095a5243484447971" +checksum = "6dc5ae0b9148b4e2ebb0dabda06a0cd65b1eed2f41d792d49787841a68050283" dependencies = [ - "base64 0.13.1", - "bytes 1.2.1", + "base64 0.20.0", + "bytes 1.4.0", "chrono", "dirs-next", "either", @@ -2035,8 +2078,8 @@ dependencies = [ "http", "http-body", "hyper", + "hyper-openssl", "hyper-timeout", - "hyper-tls", "jsonpath_lib", "k8s-openapi", "kube-core", @@ -2048,9 +2091,8 @@ dependencies = [ "serde_json", "serde_yaml", "thiserror", - "tokio 1.21.2", - "tokio-native-tls", - "tokio-util 0.6.10", + "tokio 1.26.0", + "tokio-util 0.7.7", "tower", "tower-http", "tracing", @@ -2058,9 +2100,9 @@ dependencies = [ [[package]] name = "kube-core" -version = "0.69.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da41f98f213796a68fcd4510c88b5fd36de131c1ea30d152474c3f2e1bef1a72" +checksum = "98331c6f1354893f7c50da069e43a3fd1c84e55bbedc7765d9db22ec3291d07d" dependencies = [ "chrono", "form_urlencoded", @@ -2076,38 +2118,39 @@ dependencies = [ [[package]] name = "kube-derive" -version = "0.69.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cd6fdc2e1615a3aecd7e90fe4bda3ba32379e38193251d4ddaccba26579fe22" +checksum = "e4be6ff26b9a34ce831d341e8b33bc78986a33c1be88f5bf9ca84e92e98b1dfb" dependencies = [ "darling", - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2 1.0.51", + "quote 1.0.23", "serde_json", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] name = "kube-runtime" -version = "0.69.1" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e8bf2258850dbc0a062b561656a1d7020fa8040d552e149f0a0361f0d6794e" +checksum = "b698eb8998b46683b0dc3c2ce72c80bc308fc8159f25afa719668c290a037a57" dependencies = [ "ahash", + "async-trait", "backoff", "derivative 2.2.0", "futures", "json-patch", "k8s-openapi", "kube-client", - "parking_lot 0.11.2", + "parking_lot 0.12.1", "pin-project 1.0.12", "serde", "serde_json", "smallvec", "thiserror", - "tokio 1.21.2", - "tokio-util 0.6.10", + "tokio 1.26.0", + "tokio-util 0.7.7", "tracing", ] @@ -2134,9 +2177,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.137" +version = "0.2.139" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" +checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" [[package]] name = "libudev-sys" @@ -2150,9 +2193,9 @@ dependencies = [ [[package]] name = "link-cplusplus" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" +checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" dependencies = [ "cc", ] @@ -2163,6 +2206,21 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" +[[package]] +name = "linked_hash_set" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "linux-raw-sys" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" + [[package]] name = "lock_api" version = "0.4.9" @@ -2256,14 +2314,14 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" +checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" dependencies = [ "libc", "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] @@ -2320,9 +2378,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7e25b214433f669161f414959594216d8e6ba83b6679d3db96899c0b4639033" dependencies = [ "cfg-if 1.0.0", - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -2332,9 +2390,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dffc15b97456ecc84d2bde8c1df79145e154f45225828c4361f676e1b82acd6" dependencies = [ "cfg-if 1.0.0", - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -2361,24 +2419,6 @@ dependencies = [ "twoway", ] -[[package]] -name = "native-tls" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd7e2f3618557f980e0b17e8856252eee3c97fa12c54dff0ca290fb6266ca4a9" -dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - [[package]] name = "net2" version = "0.2.38" @@ -2417,29 +2457,29 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.13.1" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" dependencies = [ - "hermit-abi", + "hermit-abi 0.2.6", "libc", ] [[package]] name = "once_cell" -version = "1.15.0" +version = "1.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" +checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" [[package]] name = "onvif-discovery-handler" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-discovery-utils", "akri-onvif", "env_logger", "log", - "tokio 1.21.2", + "tokio 1.26.0", ] [[package]] @@ -2457,7 +2497,7 @@ dependencies = [ "base64 0.12.3", "bitflags", "byteorder", - "bytes 1.2.1", + "bytes 1.4.0", "chrono", "derivative 1.0.4", "foreign-types", @@ -2474,8 +2514,8 @@ dependencies = [ "serde_derive", "serde_json", "serde_yaml", - "time 0.1.44", - "tokio 1.21.2", + "time 0.1.45", + "tokio 1.26.0", "tokio-util 0.6.10", "url 1.7.2", "uuid", @@ -2483,13 +2523,13 @@ dependencies = [ [[package]] name = "opcua-discovery-handler" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-discovery-utils", "akri-opcua", "env_logger", "log", - "tokio 1.21.2", + "tokio 1.26.0", ] [[package]] @@ -2506,9 +2546,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.42" +version = "0.10.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12fc0523e3bd51a692c8850d075d74dc062ccf251c0110668cbd921917118a13" +checksum = "b102428fd03bc5edf97f62620f7298614c45cedf287c271e7ed450bbaf83f2e1" dependencies = [ "bitflags", "cfg-if 1.0.0", @@ -2525,22 +2565,16 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - [[package]] name = "openssl-sys" -version = "0.9.77" +version = "0.9.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b03b84c3b2d099b81f0953422b4d4ad58761589d0229b5506356afca05a3670a" +checksum = "23bbbf7854cd45b83958ebe919f0e8e516793727652e27fda10a8384cfc790b7" dependencies = [ "autocfg", "cc", @@ -2588,7 +2622,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.4", + "parking_lot_core 0.9.7", ] [[package]] @@ -2607,22 +2641,22 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.4" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0" +checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" dependencies = [ "cfg-if 1.0.0", "libc", "redox_syscall", "smallvec", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "pem" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c64931a1a212348ec4f3b4362585eca7159d0d09cbdf4a7f74f02173596fd4" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" dependencies = [ "base64 0.13.1", ] @@ -2673,9 +2707,9 @@ checksum = "f4f9272122f5979a6511a749af9db9bfc810393f63119970d7085fed1c4ea0db" dependencies = [ "pest", "pest_meta", - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -2723,9 +2757,9 @@ version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "851c8d0ce9bebe43790dedfc86614c23494ac9f423dd618d3a61fc693eafe61e" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -2734,9 +2768,9 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -2759,9 +2793,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" +checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" [[package]] name = "polling" @@ -2779,9 +2813,9 @@ dependencies = [ [[package]] name = "ppv-lite86" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "predicates" @@ -2829,9 +2863,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.47" +version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" +checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6" dependencies = [ "unicode-ident", ] @@ -2890,7 +2924,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020" dependencies = [ - "bytes 1.2.1", + "bytes 1.4.0", "prost-derive", ] @@ -2900,7 +2934,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "355f634b43cdd80724ee7848f95770e7e70eefa6dcf14fea676216573b8fd603" dependencies = [ - "bytes 1.2.1", + "bytes 1.4.0", "heck 0.3.3", "itertools", "log", @@ -2920,9 +2954,9 @@ checksum = "600d2f334aa05acb02a755e217ef1ab6dea4d51b58b7846588b747edec04efba" dependencies = [ "anyhow", "itertools", - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -2931,7 +2965,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "603bbd6394701d13f3f25aada59c7de9d35a6a5887cfc156181234a44002771b" dependencies = [ - "bytes 1.2.1", + "bytes 1.4.0", "prost", ] @@ -2958,11 +2992,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.21" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" dependencies = [ - "proc-macro2 1.0.47", + "proc-macro2 1.0.51", ] [[package]] @@ -3073,15 +3107,6 @@ version = "0.6.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi 0.3.9", -] - [[package]] name = "reqwest" version = "0.11.8" @@ -3089,7 +3114,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c4e0a76dc12a116108933f6301b95e83634e0c47b0afbed6abbaa0601e99258" dependencies = [ "base64 0.13.1", - "bytes 1.2.1", + "bytes 1.4.0", "encoding_rs", "futures-core", "futures-util", @@ -3107,7 +3132,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "tokio 1.21.2", + "tokio 1.26.0", "url 2.3.1", "wasm-bindgen", "wasm-bindgen-futures", @@ -3167,6 +3192,20 @@ dependencies = [ "semver 1.0.14", ] +[[package]] +name = "rustix" +version = "0.36.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd5c6ff11fecd55b40746d1995a02f2eb375bf8c00d192d521ee09f42bef37bc" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys", + "windows-sys 0.45.0", +] + [[package]] name = "rustls" version = "0.19.1" @@ -3191,9 +3230,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.11" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" +checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" [[package]] name = "safemem" @@ -3201,21 +3240,11 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" -[[package]] -name = "schannel" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" -dependencies = [ - "lazy_static", - "windows-sys 0.36.1", -] - [[package]] name = "schemars" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a5fb6c61f29e723026dc8e923d94c694313212abbecbbe5f55a7748eec5b307" +checksum = "02c613288622e5f0c3fdc5dbd4db1c5fbe752746b1d1a56a0630b78fd00de44f" dependencies = [ "dyn-clone", "schemars_derive", @@ -3225,14 +3254,14 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f188d036977451159430f3b8dc82ec76364a42b7e289c2b18a9a18f4470058e9" +checksum = "109da1e6b197438deb6db99952990c7f959572794b80ff93707d55a232545e7c" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2 1.0.51", + "quote 1.0.23", "serde_derive_internals", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] @@ -3249,9 +3278,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "scratch" -version = "1.0.2" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" +checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" [[package]] name = "sct" @@ -3273,29 +3302,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "security-framework" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "semver" version = "0.9.0" @@ -3319,9 +3325,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.147" +version = "1.0.154" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" +checksum = "8cdd151213925e7f1ab45a9bbfb129316bd00799784b174b7cc7bcd16961c49e" dependencies = [ "serde_derive", ] @@ -3338,13 +3344,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.147" +version = "1.0.154" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852" +checksum = "4fc80d722935453bcafdc2c9a73cd6fac4dc1938f0346035d84bf99fa9e33217" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -3353,19 +3359,19 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] name = "serde_json" -version = "1.0.87" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce777b7b150d76b9cf60d28b55f5847135a003f7d7350c6be7a773508ce7d45" +checksum = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea" dependencies = [ "indexmap", - "itoa 1.0.4", + "itoa 1.0.6", "ryu", "serde", ] @@ -3377,7 +3383,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa 1.0.4", + "itoa 1.0.6", "ryu", "serde", ] @@ -3446,18 +3452,18 @@ checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" [[package]] name = "signal-hook-registry" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" dependencies = [ "libc", ] [[package]] name = "slab" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" dependencies = [ "autocfg", ] @@ -3481,9 +3487,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" dependencies = [ "libc", "winapi 0.3.9", @@ -3524,11 +3530,11 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2 1.0.51", + "quote 1.0.23", "serde", "serde_derive", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] @@ -3538,13 +3544,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" dependencies = [ "base-x", - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2 1.0.51", + "quote 1.0.23", "serde", "serde_derive", "serde_json", "sha1 0.6.1", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] @@ -3599,34 +3605,33 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.103" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2 1.0.51", + "quote 1.0.23", "unicode-ident", ] [[package]] name = "tempfile" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +checksum = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95" dependencies = [ "cfg-if 1.0.0", "fastrand", - "libc", "redox_syscall", - "remove_dir_all", - "winapi 0.3.9", + "rustix", + "windows-sys 0.42.0", ] [[package]] name = "termcolor" -version = "1.1.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" dependencies = [ "winapi-util", ] @@ -3645,22 +3650,22 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "thiserror" -version = "1.0.37" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +checksum = "a5ab016db510546d856297882807df8da66a16fb8c4101cb8b30054b0d5b2d9c" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.37" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +checksum = "5420d42e90af0c38c3290abcca25b9b3bdf379fc9f55c528f53a269d9c9a267e" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -3674,9 +3679,9 @@ dependencies = [ [[package]] name = "time" -version = "0.1.44" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" dependencies = [ "libc", "wasi 0.10.0+wasi-snapshot-preview1", @@ -3715,10 +3720,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f" dependencies = [ "proc-macro-hack", - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2 1.0.51", + "quote 1.0.23", "standback", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] @@ -3758,22 +3763,22 @@ dependencies = [ [[package]] name = "tokio" -version = "1.21.2" +version = "1.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099" +checksum = "03201d01c3c27a29c8a5cee5b55a93ddae1ccf6f08f65365c2c918f8c1b76f64" dependencies = [ "autocfg", - "bytes 1.2.1", + "bytes 1.4.0", "libc", "memchr", - "mio 0.8.5", + "mio 0.8.6", "num_cpus", "parking_lot 0.12.1", "pin-project-lite 0.2.9", "signal-hook-registry", - "socket2 0.4.7", + "socket2 0.4.9", "tokio-macros", - "winapi 0.3.9", + "windows-sys 0.45.0", ] [[package]] @@ -3783,38 +3788,40 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" dependencies = [ "pin-project-lite 0.2.9", - "tokio 1.21.2", + "tokio 1.26.0", ] [[package]] name = "tokio-macros" -version = "1.8.0" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" +checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] -name = "tokio-native-tls" -version = "0.3.0" +name = "tokio-openssl" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" +checksum = "3c4b08c5f4208e699ede3df2520aca2e82401b2de33f45e96696a074480be594" dependencies = [ - "native-tls", - "tokio 1.21.2", + "openssl", + "tokio 0.2.25", ] [[package]] name = "tokio-openssl" -version = "0.4.0" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c4b08c5f4208e699ede3df2520aca2e82401b2de33f45e96696a074480be594" +checksum = "c08f9ffb7809f1b20c1b398d92acf4cc719874b3b2b2d9ea2f09b4a80350878a" dependencies = [ + "futures-util", "openssl", - "tokio 0.2.25", + "openssl-sys", + "tokio 1.26.0", ] [[package]] @@ -3824,7 +3831,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" dependencies = [ "rustls", - "tokio 1.21.2", + "tokio 1.26.0", "webpki", ] @@ -3836,7 +3843,7 @@ checksum = "d660770404473ccd7bc9f8b28494a811bc18542b915c0855c51e8f419d5223ce" dependencies = [ "futures-core", "pin-project-lite 0.2.9", - "tokio 1.21.2", + "tokio 1.26.0", ] [[package]] @@ -3847,7 +3854,7 @@ checksum = "f714dd15bead90401d77e04243611caec13726c2408afd5b31901dfcdcb3b181" dependencies = [ "futures-util", "log", - "tokio 1.21.2", + "tokio 1.26.0", "tungstenite", ] @@ -3871,26 +3878,27 @@ version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" dependencies = [ - "bytes 1.2.1", + "bytes 1.4.0", "futures-core", "futures-sink", "log", "pin-project-lite 0.2.9", - "slab", - "tokio 1.21.2", + "tokio 1.26.0", ] [[package]] name = "tokio-util" -version = "0.7.4" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" +checksum = "5427d89453009325de0d8f342c9490009f76e999cb7672d77e46267448f7e6b2" dependencies = [ - "bytes 1.2.1", + "bytes 1.4.0", "futures-core", "futures-sink", "pin-project-lite 0.2.9", - "tokio 1.21.2", + "slab", + "tokio 1.26.0", + "tracing", ] [[package]] @@ -3902,7 +3910,7 @@ dependencies = [ "async-stream", "async-trait", "base64 0.13.1", - "bytes 1.2.1", + "bytes 1.4.0", "futures-core", "futures-util", "h2 0.3.3", @@ -3914,7 +3922,7 @@ dependencies = [ "pin-project 1.0.12", "prost", "prost-derive", - "tokio 1.21.2", + "tokio 1.26.0", "tokio-rustls", "tokio-stream", "tokio-util 0.6.10", @@ -3931,10 +3939,10 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12b52d07035516c2b74337d2ac7746075e7dcae7643816c1b12c5ff8a7484c08" dependencies = [ - "proc-macro2 1.0.47", + "proc-macro2 1.0.51", "prost-build", - "quote 1.0.21", - "syn 1.0.103", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -3950,8 +3958,8 @@ dependencies = [ "pin-project-lite 0.2.9", "rand 0.8.5", "slab", - "tokio 1.21.2", - "tokio-util 0.7.4", + "tokio 1.26.0", + "tokio-util 0.7.7", "tower-layer", "tower-service", "tracing", @@ -3959,13 +3967,13 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.2.5" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aba3f3efabf7fb41fae8534fc20a817013dd1c12cb45441efb6c82e6556b4cd8" +checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" dependencies = [ "base64 0.13.1", "bitflags", - "bytes 1.2.1", + "bytes 1.4.0", "futures-core", "futures-util", "http", @@ -4008,9 +4016,9 @@ version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", ] [[package]] @@ -4034,9 +4042,9 @@ dependencies = [ [[package]] name = "treediff" -version = "3.0.2" +version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "761e8d5ad7ce14bb82b7e61ccc0ca961005a275a060b9644a2431aa11553c2ff" +checksum = "52984d277bdf2a751072b5df30ec0377febdb02f7696d64c2d7d54630bac4303" dependencies = [ "serde_json", ] @@ -4082,9 +4090,9 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "tungstenite" @@ -4094,7 +4102,7 @@ checksum = "e27992fd6a8c29ee7eef28fc78349aa244134e10ad447ce3b9f0ac0ed0fa4ce0" dependencies = [ "base64 0.13.1", "byteorder", - "bytes 1.2.1", + "bytes 1.4.0", "http", "httparse", "log", @@ -4144,18 +4152,18 @@ dependencies = [ [[package]] name = "udev-discovery-handler" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-discovery-utils", "akri-udev", "env_logger", "log", - "tokio 1.21.2", + "tokio 1.26.0", ] [[package]] name = "udev-video-broker" -version = "0.9.4" +version = "0.9.5" dependencies = [ "akri-shared", "env_logger", @@ -4164,7 +4172,7 @@ dependencies = [ "prometheus 0.12.0", "prost", "rscam", - "tokio 1.21.2", + "tokio 1.26.0", "tonic", "tonic-build", ] @@ -4186,9 +4194,9 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] name = "unicode-ident" -version = "1.0.5" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" +checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" [[package]] name = "unicode-normalization" @@ -4304,7 +4312,7 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed7b8be92646fc3d18b06147664ebc5f48d222686cb11a8755e561a735aacc6d" dependencies = [ - "bytes 1.2.1", + "bytes 1.4.0", "futures-channel", "futures-util", "headers", @@ -4321,10 +4329,10 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "tokio 1.21.2", + "tokio 1.26.0", "tokio-stream", "tokio-tungstenite", - "tokio-util 0.7.4", + "tokio-util 0.7.7", "tower-service", "tracing", ] @@ -4349,9 +4357,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -4359,16 +4367,16 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", "wasm-bindgen-shared", ] @@ -4386,32 +4394,32 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" dependencies = [ - "quote 1.0.21", + "quote 1.0.23", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" +checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" [[package]] name = "web-sys" @@ -4425,7 +4433,7 @@ dependencies = [ [[package]] name = "webhook-configuration" -version = "0.9.4" +version = "0.9.5" dependencies = [ "actix", "actix-rt 2.7.0", @@ -4521,19 +4529,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows-sys" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" -dependencies = [ - "windows_aarch64_msvc 0.36.1", - "windows_i686_gnu 0.36.1", - "windows_i686_msvc 0.36.1", - "windows_x86_64_gnu 0.36.1", - "windows_x86_64_msvc 0.36.1", -] - [[package]] name = "windows-sys" version = "0.42.0" @@ -4541,85 +4536,79 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.0", - "windows_i686_gnu 0.42.0", - "windows_i686_msvc 0.42.0", - "windows_x86_64_gnu 0.42.0", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.0", + "windows_x86_64_msvc", ] [[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.0" +name = "windows-sys" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets", +] [[package]] -name = "windows_aarch64_msvc" -version = "0.36.1" +name = "windows-targets" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" +checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] [[package]] -name = "windows_aarch64_msvc" -version = "0.42.0" +name = "windows_aarch64_gnullvm" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" +checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" [[package]] -name = "windows_i686_gnu" -version = "0.36.1" +name = "windows_aarch64_msvc" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" +checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" [[package]] name = "windows_i686_gnu" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" - -[[package]] -name = "windows_i686_msvc" -version = "0.36.1" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" +checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" [[package]] name = "windows_i686_msvc" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" +checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" [[package]] name = "windows_x86_64_gnu" -version = "0.36.1" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" +checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" +checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" [[package]] name = "windows_x86_64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" +checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" [[package]] name = "winreg" @@ -4682,9 +4671,9 @@ checksum = "5c0b0a4701f203ebaecce4971a6bb8575aa07b617bdc39ddfc6ffeff3a38530d" dependencies = [ "heck 0.3.3", "log", - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2 1.0.51", + "quote 1.0.23", + "syn 1.0.109", "xml-rs", ] diff --git a/agent/Cargo.toml b/agent/Cargo.toml index 4d96ba847..d17c7e7d6 100644 --- a/agent/Cargo.toml +++ b/agent/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "agent" -version = "0.9.4" +version = "0.9.5" authors = ["Kate Goldenring ", ""] edition = "2018" rust-version = "1.63.0" @@ -26,9 +26,9 @@ futures-core = "0.3" futures-util = "0.3" hyper = "0.14.2" h2 = "=0.3.3" -kube = { version = "0.69.1", features = ["derive"] } -kube-runtime = "0.69.1" -k8s-openapi = { version = "0.14.0", default-features = false, features = ["schemars", "v1_23"] } +kube = { version = "0.80.0", features = ["derive"] } +kube-runtime = "0.80.0" +k8s-openapi = { version = "0.17.0", default-features = false, features = ["schemars", "v1_23"] } lazy_static = "1.4" log = "0.4" mockall_double = "0.2.0" diff --git a/agent/src/util/config_action.rs b/agent/src/util/config_action.rs index e154fc522..482b8a6af 100644 --- a/agent/src/util/config_action.rs +++ b/agent/src/util/config_action.rs @@ -15,12 +15,17 @@ use akri_shared::{ }; use futures::{StreamExt, TryStreamExt}; use kube::api::{Api, ListParams}; -use kube_runtime::watcher::{watcher, Event}; -use log::{info, trace}; -use std::{collections::HashMap, sync::Arc}; +use kube_runtime::watcher::{default_backoff, watcher, Event}; +use kube_runtime::WatchStreamExt; +use log::{error, info, trace}; +use std::{ + collections::{HashMap, HashSet}, + sync::Arc, +}; use tokio::sync::{broadcast, mpsc, RwLock}; -type ConfigMap = Arc>>; +type ConfigId = (String, String); +type ConfigMap = Arc>>; /// Information for managing a Configuration, such as all applied Instances of that Configuration /// and senders for ceasing to discover instances upon Configuration deletion. @@ -48,7 +53,7 @@ pub async fn do_config_watch( ) -> Result<(), Box> { info!("do_config_watch - enter"); let config_map: ConfigMap = Arc::new(RwLock::new(HashMap::new())); - let kube_interface = k8s::KubeImpl::new().await?; + let kube_interface = Arc::new(k8s::KubeImpl::new().await?); let mut tasks = Vec::new(); // Handle pre-existing configs @@ -57,9 +62,10 @@ pub async fn do_config_watch( let config_map = config_map.clone(); let discovery_handler_map = discovery_handler_map.clone(); let new_discovery_handler_sender = new_discovery_handler_sender.clone(); + let new_kube_interface = kube_interface.clone(); tasks.push(tokio::spawn(async move { handle_config_add( - Arc::new(k8s::KubeImpl::new().await.unwrap()), + new_kube_interface, &config, config_map, discovery_handler_map, @@ -73,7 +79,7 @@ pub async fn do_config_watch( // Watch for new configs and changes tasks.push(tokio::spawn(async move { watch_for_config_changes( - &kube_interface, + kube_interface, config_map, discovery_handler_map, new_discovery_handler_sender, @@ -89,27 +95,32 @@ pub async fn do_config_watch( /// This watches for Configuration events async fn watch_for_config_changes( - kube_interface: &impl KubeInterface, + kube_interface: Arc, config_map: ConfigMap, discovery_handler_map: RegisteredDiscoveryHandlerMap, new_discovery_handler_sender: broadcast::Sender, ) -> Result<(), Box> { trace!("watch_for_config_changes - start"); let resource = Api::::all(kube_interface.get_kube_client()); - let watcher = watcher(resource, ListParams::default()); + let watcher = watcher(resource, ListParams::default()).backoff(default_backoff()); let mut informer = watcher.boxed(); - let mut first_event = true; - // Currently, this does not handle None except to break the - // while. - while let Some(event) = informer.try_next().await? { + // Currently, this does not handle None except to break the loop. + loop { + let event = match informer.try_next().await { + Err(e) => { + error!("Error during watch: {}", e); + continue; + } + Ok(None) => break, + Ok(Some(event)) => event, + }; let new_discovery_handler_sender = new_discovery_handler_sender.clone(); handle_config( - kube_interface, + kube_interface.clone(), event, config_map.clone(), discovery_handler_map.clone(), new_discovery_handler_sender, - &mut first_event, ) .await? } @@ -119,12 +130,11 @@ async fn watch_for_config_changes( /// This takes an event off the Configuration stream and delegates it to the /// correct function based on the event type. async fn handle_config( - kube_interface: &impl KubeInterface, + kube_interface: Arc, event: Event, config_map: ConfigMap, discovery_handler_map: RegisteredDiscoveryHandlerMap, new_discovery_handler_sender: broadcast::Sender, - first_event: &mut bool, ) -> anyhow::Result<()> { trace!("handle_config - something happened to a configuration"); match event { @@ -133,59 +143,98 @@ async fn handle_config( "handle_config - added or modified Configuration {:?}", config.metadata.name.as_ref().unwrap(), ); - // Applied events can either be newly added Configurations or modified Configurations. - // If modified delete all associated instances and device plugins and then recreate them to reflect updated config - // TODO: more gracefully handle modified Configurations by determining what changed rather than delete/re-add - if config_map - .read() - .await - .contains_key(config.metadata.name.as_ref().unwrap()) - { - let do_recreate = should_recreate_config(&config, config_map.clone()).await?; - if !do_recreate { - trace!( - "handle_config - config {:?} has not changed. ignoring config modified event.", - config.metadata.name, - ); - return Ok(()); - } - info!( - "handle_config - modified Configuration {:?}", - config.metadata.name, - ); - handle_config_delete(kube_interface, &config, config_map.clone()).await?; - } - - tokio::spawn(async move { - handle_config_add( - Arc::new(k8s::KubeImpl::new().await.unwrap()), - &config, - config_map, - discovery_handler_map, - new_discovery_handler_sender, - ) - .await - .unwrap(); - }); + handle_config_apply( + kube_interface, + config, + config_map, + discovery_handler_map, + new_discovery_handler_sender, + ) + .await?; } Event::Deleted(config) => { - info!( - "handle_config - deleted Configuration {:?}", - config.metadata.name, + let config_id: ConfigId = ( + config.metadata.namespace.clone().unwrap(), + config.metadata.name.clone().unwrap(), ); - handle_config_delete(kube_interface, &config, config_map).await?; + info!("handle_config - deleted Configuration {:?}", config_id,); + handle_config_delete(kube_interface.as_ref(), config_id, config_map).await?; } - Event::Restarted(_configs) => { - if *first_event { - info!("handle_config - watcher started"); - } else { - return Err(anyhow::anyhow!( - "Configuration watcher restarted - throwing error to restart agent" - )); + Event::Restarted(configs) => { + let new_configs: HashSet = configs + .iter() + .map(|config| { + ( + config.metadata.namespace.clone().unwrap(), + config.metadata.name.clone().unwrap(), + ) + }) + .collect(); + let old_configs: HashSet = config_map.read().await.keys().cloned().collect(); + for config_id in old_configs.difference(&new_configs) { + handle_config_delete( + kube_interface.as_ref(), + config_id.clone(), + config_map.clone(), + ) + .await?; + } + for config in configs { + handle_config_apply( + kube_interface.clone(), + config, + config_map.clone(), + discovery_handler_map.clone(), + new_discovery_handler_sender.clone(), + ) + .await?; } } } - *first_event = false; + Ok(()) +} + +async fn handle_config_apply( + kube_interface: Arc, + config: Configuration, + config_map: ConfigMap, + discovery_handler_map: RegisteredDiscoveryHandlerMap, + new_discovery_handler_sender: broadcast::Sender, +) -> anyhow::Result<()> { + // Applied events can either be newly added Configurations or modified Configurations. + // If modified delete all associated instances and device plugins and then recreate them to reflect updated config + // TODO: more gracefully handle modified Configurations by determining what changed rather than delete/re-add + let config_id: ConfigId = ( + config.metadata.namespace.clone().unwrap(), + config.metadata.name.clone().unwrap(), + ); + if config_map.read().await.contains_key(&config_id) { + let do_recreate = should_recreate_config(&config, config_map.clone()).await?; + if !do_recreate { + trace!( + "handle_config - config {:?} has not changed. ignoring config modified event.", + config.metadata.name, + ); + return Ok(()); + } + info!( + "handle_config - modified Configuration {:?}", + config.metadata.name, + ); + handle_config_delete(kube_interface.as_ref(), config_id, config_map.clone()).await?; + } + + tokio::spawn(async move { + handle_config_add( + kube_interface, + &config, + config_map, + discovery_handler_map, + new_discovery_handler_sender, + ) + .await + .unwrap(); + }); Ok(()) } @@ -198,7 +247,10 @@ async fn handle_config_add( discovery_handler_map: RegisteredDiscoveryHandlerMap, new_discovery_handler_sender: broadcast::Sender, ) -> Result<(), Box> { - let config_name = config.metadata.name.clone(); + let config_id: ConfigId = ( + config.metadata.namespace.clone().unwrap(), + config.metadata.name.clone().unwrap(), + ); // Create a new instance map for this config and add it to the config map let instance_map: InstanceMap = Arc::new(RwLock::new(HashMap::new())); let (stop_discovery_sender, _): (broadcast::Sender<()>, broadcast::Receiver<()>) = @@ -211,10 +263,7 @@ async fn handle_config_add( finished_discovery_receiver, last_generation: config.metadata.generation, }; - config_map - .write() - .await - .insert(config_name.clone().unwrap(), config_info); + config_map.write().await.insert(config_id, config_info); let config = config.clone(); // Keep discovering instances until the config is deleted, signaled by a message from handle_config_delete @@ -239,20 +288,19 @@ async fn handle_config_add( /// Then, for each of the Configuration's Instances, it signals the DevicePluginService to shutdown, /// and deletes the Instance CRD. async fn handle_config_delete( - kube_interface: &impl KubeInterface, - config: &Configuration, + kube_interface: &dyn KubeInterface, + config_id: ConfigId, config_map: ConfigMap, ) -> anyhow::Result<()> { - let name = config.metadata.name.clone().unwrap(); trace!( - "handle_config_delete - for config {} telling do_periodic_discovery to end", - name + "handle_config_delete - for config {:?} telling do_periodic_discovery to end", + config_id ); // Send message to stop observing instances' availability and waits until response is received if config_map .read() .await - .get(&name) + .get(&config_id) .unwrap() .stop_discovery_sender .clone() @@ -262,20 +310,20 @@ async fn handle_config_delete( config_map .write() .await - .get_mut(&name) + .get_mut(&config_id) .unwrap() .finished_discovery_receiver .recv() .await .unwrap(); trace!( - "handle_config_delete - for config {} received message that do_periodic_discovery ended", - name + "handle_config_delete - for config {:?} received message that do_periodic_discovery ended", + config_id ); } else { trace!( - "handle_config_delete - for config {} do_periodic_discovery receiver has been dropped", - name + "handle_config_delete - for config {:?} do_periodic_discovery receiver has been dropped", + config_id ); } @@ -283,10 +331,14 @@ async fn handle_config_delete( let instance_map: InstanceMap; { let mut config_map_locked = config_map.write().await; - instance_map = config_map_locked.get(&name).unwrap().instance_map.clone(); - config_map_locked.remove(&name); + instance_map = config_map_locked + .get(&config_id) + .unwrap() + .instance_map + .clone(); + config_map_locked.remove(&config_id); } - delete_all_instances_in_map(kube_interface, instance_map, config).await?; + delete_all_instances_in_map(kube_interface, instance_map, config_id).await?; Ok(()) } @@ -297,12 +349,15 @@ async fn should_recreate_config( config: &Configuration, config_map: ConfigMap, ) -> Result { - let name = config.metadata.name.as_ref().unwrap(); + let config_id: ConfigId = ( + config.metadata.namespace.clone().unwrap(), + config.metadata.name.clone().unwrap(), + ); let last_generation = config_map .read() .await - .get(name) - .ok_or_else(|| anyhow::anyhow!("Configuration {} not found in ConfigMap", &name))? + .get(&config_id) + .ok_or_else(|| anyhow::anyhow!("Configuration {:?} not found in ConfigMap", &config_id))? .last_generation; if config.metadata.generation <= last_generation { @@ -314,25 +369,24 @@ async fn should_recreate_config( /// This shuts down all a Configuration's Instances and terminates the associated Device Plugins pub async fn delete_all_instances_in_map( - kube_interface: &impl k8s::KubeInterface, + kube_interface: &dyn k8s::KubeInterface, instance_map: InstanceMap, - config: &Configuration, + (namespace, name): ConfigId, ) -> anyhow::Result<()> { let mut instance_map_locked = instance_map.write().await; let instances_to_delete_map = instance_map_locked.clone(); - let namespace = config.metadata.namespace.as_ref().unwrap(); for (instance_name, instance_info) in instances_to_delete_map { trace!( "handle_config_delete - found Instance {} associated with deleted config {:?} ... sending message to end list_and_watch", instance_name, - config.metadata.name + (namespace.clone(), name.clone()), ); instance_info .list_and_watch_message_sender .send(device_plugin_service::ListAndWatchMessageKind::End) .unwrap(); instance_map_locked.remove(&instance_name); - try_delete_instance(kube_interface, &instance_name, namespace).await?; + try_delete_instance(kube_interface, &instance_name, namespace.as_str()).await?; } Ok(()) } @@ -346,38 +400,52 @@ mod config_action_tests { }; use super::*; use akri_shared::{akri::configuration::Configuration, k8s::MockKubeInterface}; - use std::{collections::HashMap, fs, sync::Arc}; + use std::{collections::HashMap, fs, sync::Arc, vec}; use tokio::sync::{broadcast, RwLock}; - // Test that watcher errors on restarts unless it is the first restart (aka initial startup) + // Test that watcher restarts correctly add/remove Configurations #[tokio::test] async fn test_handle_watcher_restart() { let _ = env_logger::builder().is_test(true).try_init(); + + let path_to_config = "../test/yaml/config-a.yaml"; + let config_yaml = fs::read_to_string(path_to_config).expect("Unable to read file"); + let config: Configuration = serde_yaml::from_str(&config_yaml).unwrap(); + let config_id: ConfigId = ( + config.metadata.namespace.clone().unwrap(), + config.metadata.name.clone().unwrap(), + ); + let kube_interface = Arc::new(MockKubeInterface::new()); + let config_map = Arc::new(RwLock::new(HashMap::new())); let dh_map = Arc::new(std::sync::Mutex::new(HashMap::new())); let (tx, mut _rx1) = broadcast::channel(1); - let mut first_event = true; assert!(handle_config( - &MockKubeInterface::new(), - Event::Restarted(Vec::new()), + kube_interface.clone(), + Event::Restarted(vec![config]), config_map.clone(), dh_map.clone(), tx.clone(), - &mut first_event ) .await .is_ok()); - first_event = false; + + // Wait for `handle_config_add` to effectively add the config to the map + // FIXME: This looks a lot like a race window + tokio::time::sleep(tokio::time::Duration::from_micros(100)).await; + assert!(config_map.read().await.contains_key(&config_id)); + assert!(handle_config( - &MockKubeInterface::new(), + kube_interface, Event::Restarted(Vec::new()), - config_map, + config_map.clone(), dh_map, tx, - &mut first_event ) .await - .is_err()); + .is_ok()); + + assert!(!config_map.read().await.contains_key(&config_id)); } #[tokio::test] @@ -386,7 +454,10 @@ mod config_action_tests { let path_to_config = "../test/yaml/config-a.yaml"; let config_yaml = fs::read_to_string(path_to_config).expect("Unable to read file"); let config: Configuration = serde_yaml::from_str(&config_yaml).unwrap(); - let config_name = config.metadata.name.clone().unwrap(); + let config_id: ConfigId = ( + config.metadata.namespace.clone().unwrap(), + config.metadata.name.clone().unwrap(), + ); let mut list_and_watch_message_receivers = Vec::new(); let mut visible_discovery_results = Vec::new(); let mut mock = MockKubeInterface::new(); @@ -399,9 +470,9 @@ mod config_action_tests { .await; let (stop_discovery_sender, mut stop_discovery_receiver) = broadcast::channel(2); let (finished_discovery_sender, finished_discovery_receiver) = mpsc::channel(2); - let mut map: HashMap = HashMap::new(); + let mut map: HashMap = HashMap::new(); map.insert( - config_name.clone(), + config_id.clone(), ConfigInfo { stop_discovery_sender, instance_map: instance_map.clone(), @@ -415,11 +486,11 @@ mod config_action_tests { .times(2) .returning(move |_, _| Ok(())); tokio::spawn(async move { - handle_config_delete(&mock, &config, config_map.clone()) + handle_config_delete(&mock, config_id.clone(), config_map.clone()) .await .unwrap(); // Assert that config is removed from map after it has been deleted - assert!(!config_map.read().await.contains_key(&config_name)); + assert!(!config_map.read().await.contains_key(&config_id)); }); // Assert that handle_config_delete tells start_discovery to end @@ -502,9 +573,12 @@ mod config_action_tests { finished_discovery_receiver, last_generation: Some(1), }; - let config_name = config.metadata.name.clone().unwrap(); + let config_id: ConfigId = ( + config.metadata.namespace.clone().unwrap(), + config.metadata.name.clone().unwrap(), + ); let config_map: ConfigMap = Arc::new(RwLock::new(HashMap::new())); - config_map.write().await.insert(config_name, config_info); + config_map.write().await.insert(config_id, config_info); (config, config_map) } } diff --git a/controller/Cargo.toml b/controller/Cargo.toml index 289312062..62a9f79a0 100644 --- a/controller/Cargo.toml +++ b/controller/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "controller" -version = "0.9.4" +version = "0.9.5" authors = ["", ""] edition = "2018" rust-version = "1.63.0" @@ -15,9 +15,9 @@ chrono = "0.4.10" env_logger = "0.9.0" futures = "0.3.1" anyhow = "1.0.38" -kube = { version = "0.69.1", features = ["derive"] } -kube-runtime = "0.69.1" -k8s-openapi = { version = "0.14.0", default-features = false, features = ["schemars", "v1_23"] } +kube = { version = "0.80.0", features = ["derive"] } +kube-runtime = "0.80.0" +k8s-openapi = { version = "0.17.0", default-features = false, features = ["schemars", "v1_23"] } lazy_static = "1.4" log = "0.4" prometheus = { version = "0.12.0", features = ["process"] } diff --git a/controller/src/util/instance_action.rs b/controller/src/util/instance_action.rs index b0d83d254..862cfc340 100644 --- a/controller/src/util/instance_action.rs +++ b/controller/src/util/instance_action.rs @@ -13,7 +13,8 @@ use futures::{StreamExt, TryStreamExt}; use k8s_openapi::api::batch::v1::JobSpec; use k8s_openapi::api::core::v1::{Pod, PodSpec}; use kube::api::{Api, ListParams}; -use kube_runtime::watcher::{watcher, Event}; +use kube_runtime::watcher::{default_backoff, watcher, Event}; +use kube_runtime::WatchStreamExt; use log::{error, info, trace}; use std::collections::HashMap; use std::sync::Arc; @@ -92,12 +93,19 @@ async fn internal_do_instance_watch( ) -> Result<(), Box> { trace!("internal_do_instance_watch - enter"); let resource = Api::::all(kube_interface.get_kube_client()); - let watcher = watcher(resource, ListParams::default()); + let watcher = watcher(resource, ListParams::default()).backoff(default_backoff()); let mut informer = watcher.boxed(); let mut first_event = true; - // Currently, this does not handle None except to break the - // while. - while let Some(event) = informer.try_next().await? { + // Currently, this does not handle None except to break the loop. + loop { + let event = match informer.try_next().await { + Err(e) => { + error!("Error during watch: {}", e); + continue; + } + Ok(None) => break, + Ok(Some(event)) => event, + }; // Aquire lock to ensure cleanup_instance_and_configuration_svcs and the // inner loop handle_instance call in internal_do_instance_watch // cannot execute at the same time. diff --git a/controller/src/util/node_watcher.rs b/controller/src/util/node_watcher.rs index 9da65a68a..98079dcab 100644 --- a/controller/src/util/node_watcher.rs +++ b/controller/src/util/node_watcher.rs @@ -9,8 +9,9 @@ use akri_shared::{ use futures::{StreamExt, TryStreamExt}; use k8s_openapi::api::core::v1::{Node, NodeStatus}; use kube::api::{Api, ListParams}; -use kube_runtime::watcher::{watcher, Event}; -use log::{info, trace}; +use kube_runtime::watcher::{default_backoff, watcher, Event}; +use kube_runtime::WatchStreamExt; +use log::{error, info, trace}; use std::collections::HashMap; /// Node states that NodeWatcher is interested in @@ -55,13 +56,20 @@ impl NodeWatcher { trace!("watch - enter"); let kube_interface = k8s::KubeImpl::new().await?; let resource = Api::::all(kube_interface.get_kube_client()); - let watcher = watcher(resource, ListParams::default()); + let watcher = watcher(resource, ListParams::default()).backoff(default_backoff()); let mut informer = watcher.boxed(); let mut first_event = true; - // Currently, this does not handle None except to break the - // while. - while let Some(event) = informer.try_next().await? { + // Currently, this does not handle None except to break the loop. + loop { + let event = match informer.try_next().await { + Err(e) => { + error!("Error during watch: {}", e); + continue; + } + Ok(None) => break, + Ok(Some(event)) => event, + }; self.handle_node(event, &kube_interface, &mut first_event) .await?; } diff --git a/controller/src/util/pod_watcher.rs b/controller/src/util/pod_watcher.rs index 0ef202ead..829257733 100644 --- a/controller/src/util/pod_watcher.rs +++ b/controller/src/util/pod_watcher.rs @@ -13,8 +13,9 @@ use async_std::sync::Mutex; use futures::{StreamExt, TryStreamExt}; use k8s_openapi::api::core::v1::{Pod, ServiceSpec}; use kube::api::{Api, ListParams}; -use kube_runtime::watcher::{watcher, Event}; -use log::{info, trace}; +use kube_runtime::watcher::{default_backoff, watcher, Event}; +use kube_runtime::WatchStreamExt; +use log::{error, info, trace}; use std::{collections::HashMap, sync::Arc}; type PodSlice = [Pod]; @@ -122,28 +123,31 @@ impl BrokerPodWatcher { } /// This watches for broker Pod events - pub async fn watch( - &mut self, - ) -> Result<(), Box> { + pub async fn watch(&mut self) -> anyhow::Result<()> { trace!("watch - enter"); let kube_interface = k8s::KubeImpl::new().await?; let resource = Api::::all(kube_interface.get_kube_client()); let watcher = watcher( resource, ListParams::default().labels(AKRI_CONFIGURATION_LABEL_NAME), - ); + ) + .backoff(default_backoff()); let mut informer = watcher.boxed(); let synchronization = Arc::new(Mutex::new(())); let mut first_event = true; loop { - // Currently, this does not handle None except to break the - // while. - while let Some(event) = informer.try_next().await? { - let _lock = synchronization.lock().await; - self.handle_pod(event, &kube_interface, &mut first_event) - .await?; - } + let event = match informer.try_next().await { + Err(e) => { + error!("Error during watch: {}", e); + continue; + } + Ok(None) => return Err(anyhow::anyhow!("Watch stream ended")), + Ok(Some(event)) => event, + }; + let _lock = synchronization.lock().await; + self.handle_pod(event, &kube_interface, &mut first_event) + .await?; } } diff --git a/deployment/helm/Chart.yaml b/deployment/helm/Chart.yaml index fff9dc290..cdbef896a 100644 --- a/deployment/helm/Chart.yaml +++ b/deployment/helm/Chart.yaml @@ -15,9 +15,9 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.9.4 +version: 0.9.5 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. -appVersion: 0.9.4 +appVersion: 0.9.5 diff --git a/discovery-handler-modules/debug-echo-discovery-handler/Cargo.toml b/discovery-handler-modules/debug-echo-discovery-handler/Cargo.toml index 798e95f36..d279698a5 100644 --- a/discovery-handler-modules/debug-echo-discovery-handler/Cargo.toml +++ b/discovery-handler-modules/debug-echo-discovery-handler/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "debug-echo-discovery-handler" -version = "0.9.4" +version = "0.9.5" authors = ["Kate Goldenring "] edition = "2018" rust-version = "1.63.0" diff --git a/discovery-handler-modules/onvif-discovery-handler/Cargo.toml b/discovery-handler-modules/onvif-discovery-handler/Cargo.toml index 80f2bcbef..814eda212 100644 --- a/discovery-handler-modules/onvif-discovery-handler/Cargo.toml +++ b/discovery-handler-modules/onvif-discovery-handler/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "onvif-discovery-handler" -version = "0.9.4" +version = "0.9.5" authors = ["Kate Goldenring "] edition = "2018" rust-version = "1.63.0" diff --git a/discovery-handler-modules/opcua-discovery-handler/Cargo.toml b/discovery-handler-modules/opcua-discovery-handler/Cargo.toml index c080259b5..93ec5b90e 100644 --- a/discovery-handler-modules/opcua-discovery-handler/Cargo.toml +++ b/discovery-handler-modules/opcua-discovery-handler/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "opcua-discovery-handler" -version = "0.9.4" +version = "0.9.5" authors = ["Kate Goldenring "] edition = "2018" rust-version = "1.63.0" diff --git a/discovery-handler-modules/udev-discovery-handler/Cargo.toml b/discovery-handler-modules/udev-discovery-handler/Cargo.toml index 4910e6cda..1fa5af2cc 100644 --- a/discovery-handler-modules/udev-discovery-handler/Cargo.toml +++ b/discovery-handler-modules/udev-discovery-handler/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "udev-discovery-handler" -version = "0.9.4" +version = "0.9.5" authors = ["Kate Goldenring "] edition = "2018" rust-version = "1.63.0" diff --git a/discovery-handlers/debug-echo/Cargo.toml b/discovery-handlers/debug-echo/Cargo.toml index 556c63463..ae23498c3 100644 --- a/discovery-handlers/debug-echo/Cargo.toml +++ b/discovery-handlers/debug-echo/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "akri-debug-echo" -version = "0.9.4" +version = "0.9.5" authors = ["Kate Goldenring "] edition = "2018" rust-version = "1.63.0" diff --git a/discovery-handlers/onvif/Cargo.toml b/discovery-handlers/onvif/Cargo.toml index 2b712f9b2..75a8073cd 100644 --- a/discovery-handlers/onvif/Cargo.toml +++ b/discovery-handlers/onvif/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "akri-onvif" -version = "0.9.4" +version = "0.9.5" authors = ["Kate Goldenring "] edition = "2018" rust-version = "1.63.0" diff --git a/discovery-handlers/opcua/Cargo.toml b/discovery-handlers/opcua/Cargo.toml index 3eb6b6d00..cf15301b6 100644 --- a/discovery-handlers/opcua/Cargo.toml +++ b/discovery-handlers/opcua/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "akri-opcua" -version = "0.9.4" +version = "0.9.5" authors = ["Kate Goldenring "] edition = "2018" rust-version = "1.63.0" diff --git a/discovery-handlers/udev/Cargo.toml b/discovery-handlers/udev/Cargo.toml index 56a4afc70..59ed95b24 100644 --- a/discovery-handlers/udev/Cargo.toml +++ b/discovery-handlers/udev/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "akri-udev" -version = "0.9.4" +version = "0.9.5" authors = ["Kate Goldenring "] edition = "2018" rust-version = "1.63.0" diff --git a/discovery-utils/Cargo.toml b/discovery-utils/Cargo.toml index 6a4d81059..904f19971 100644 --- a/discovery-utils/Cargo.toml +++ b/discovery-utils/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "akri-discovery-utils" -version = "0.9.4" +version = "0.9.5" authors = ["Kate Goldenring "] edition = "2018" rust-version = "1.63.0" diff --git a/samples/brokers/udev-video-broker/Cargo.toml b/samples/brokers/udev-video-broker/Cargo.toml index 819ff5715..b484c382e 100644 --- a/samples/brokers/udev-video-broker/Cargo.toml +++ b/samples/brokers/udev-video-broker/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "udev-video-broker" -version = "0.9.4" +version = "0.9.5" authors = ["Kate Goldenring ", ""] edition = "2018" rust-version = "1.63.0" diff --git a/shared/Cargo.toml b/shared/Cargo.toml index 7f2b2eb8c..149ef6490 100644 --- a/shared/Cargo.toml +++ b/shared/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "akri-shared" -version = "0.9.4" +version = "0.9.5" authors = [""] edition = "2018" rust-version = "1.63.0" @@ -15,9 +15,9 @@ futures = "0.3.1" futures-util = "0.3" env_logger = "0.9.0" hyper = { version = "0.14.2", package = "hyper" } -kube = { version = "0.69.1", features = ["derive"] } -kube-runtime = "0.69.1" -k8s-openapi = { version = "0.14.0", default-features = false, features = ["schemars", "v1_23"] } +kube = { version = "0.80.0", features = ["derive"] } +kube-runtime = "0.80.0" +k8s-openapi = { version = "0.17.0", default-features = false, features = ["schemars", "v1_23"] } log = "0.4" mockall = "0.10.2" prometheus = { version = "0.11.0", features = ["process"] } diff --git a/shared/src/akri/configuration.rs b/shared/src/akri/configuration.rs index de5ae9cd9..4bd3db7ca 100644 --- a/shared/src/akri/configuration.rs +++ b/shared/src/akri/configuration.rs @@ -53,7 +53,6 @@ pub enum BrokerSpec { #[derive(CustomResource, Serialize, Deserialize, Clone, Debug, JsonSchema)] // group = API_NAMESPACE and version = API_VERSION #[kube(group = "akri.sh", version = "v0", kind = "Configuration", namespaced)] -#[kube(apiextensions = "v1")] #[serde(rename_all = "camelCase")] pub struct ConfigurationSpec { /// This defines the `DiscoveryHandler` that should be used to diff --git a/shared/src/akri/instance.rs b/shared/src/akri/instance.rs index 0253c32c6..a436907b1 100644 --- a/shared/src/akri/instance.rs +++ b/shared/src/akri/instance.rs @@ -20,7 +20,6 @@ pub type InstanceList = ObjectList; #[serde(rename_all = "camelCase")] // group = API_NAMESPACE and version = API_VERSION #[kube(group = "akri.sh", version = "v0", kind = "Instance", namespaced)] -#[kube(apiextensions = "v1")] pub struct InstanceSpec { /// This contains the name of the corresponding Configuration pub configuration_name: String, diff --git a/version.txt b/version.txt index a602fc9e2..b0bb87854 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -0.9.4 +0.9.5 diff --git a/webhooks/validating/configuration/Cargo.toml b/webhooks/validating/configuration/Cargo.toml index b852fcc40..ce834b2d0 100644 --- a/webhooks/validating/configuration/Cargo.toml +++ b/webhooks/validating/configuration/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "webhook-configuration" -version = "0.9.4" +version = "0.9.5" authors = ["DazWilkin "] edition = "2018" rust-version = "1.63.0" @@ -11,9 +11,9 @@ actix-web = { version = "3.3.2", features = ["openssl"] } actix-rt = "2.2.0" akri-shared = { path = "../../../shared" } clap = "3.2.20" -kube = { version = "0.69.1", features = ["derive"] } -kube-runtime = "0.69.1" -k8s-openapi = { version = "0.14.0", default-features = false, features = ["schemars", "v1_23"] } +kube = { version = "0.80.0", features = ["derive"] } +kube-runtime = "0.80.0" +k8s-openapi = { version = "0.17.0", default-features = false, features = ["schemars", "v1_23"] } openapi = { git = "https://github.com/DazWilkin/openapi-admission-v1", tag = "v1.1.0" } openssl = "0.10" rustls = "0.19.0"