diff --git a/CHANGELOG.md b/CHANGELOG.md index d38a3ca..c3a810a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,8 @@ this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ### Changed +- Update `review-protocol` to revision `b0eae25` and adapt tests to its renamed + agent metadata field and public request APIs. - Simplified `list_files` to return only file names instead of unused size and modified-time data. diff --git a/Cargo.lock b/Cargo.lock index 7ffc664..59c5087 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2389,7 +2389,7 @@ checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "review-protocol" version = "0.19.0" -source = "git+https://github.com/petabi/review-protocol.git?tag=0.19.0#257921f8ca478b7b16e45c699e0c95e53c3103bc" +source = "git+https://github.com/petabi/review-protocol.git?rev=b0eae25#b0eae25" dependencies = [ "anyhow", "async-trait", diff --git a/Cargo.toml b/Cargo.toml index 2e07188..451bf3e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ nix = { version = "0.31", features = ["reboot", "fs"] } pnet = { version = "0.35", features = ["pnet_datalink", "std"] } quinn = { version = "0.11", default-features = false } regex = "1.11" -review-protocol = { git = "https://github.com/petabi/review-protocol.git", tag = "0.19.0", features = [ +review-protocol = { git = "https://github.com/petabi/review-protocol.git", rev = "b0eae25", features = [ "client", ] } serde = { version = "1", features = ["derive"] } @@ -37,7 +37,7 @@ uptime_lib = "0.3" [dev-dependencies] quinn = { version = "0.11", features = ["ring", "runtime-tokio"] } rcgen = "0.14" -review-protocol = { git = "https://github.com/petabi/review-protocol.git", tag = "0.19.0", features = [ +review-protocol = { git = "https://github.com/petabi/review-protocol.git", rev = "b0eae25", features = [ "server", ] } rustls = { version = "0.23", features = ["ring"] } diff --git a/src/bin/roxyd/control.rs b/src/bin/roxyd/control.rs index 19ee18d..d5225ba 100644 --- a/src/bin/roxyd/control.rs +++ b/src/bin/roxyd/control.rs @@ -725,7 +725,7 @@ mod tests { conn.connect() ); - assert_eq!(agent_info.app_name, env!("CARGO_PKG_NAME")); + assert_eq!(agent_info.agent_name, env!("CARGO_PKG_NAME")); let inner = conn_result.expect("client connection"); assert_eq!(inner.remote_addr(), server_addr); } @@ -768,7 +768,7 @@ mod tests { conn.connect() ); - assert_eq!(agent_info.app_name, env!("CARGO_PKG_NAME")); + assert_eq!(agent_info.agent_name, env!("CARGO_PKG_NAME")); let inner = conn_result.expect("client connection"); assert_eq!(inner.remote_addr(), server_addr); } @@ -959,60 +959,32 @@ mod tests { }) } - /// Legacy flat request codes from review-protocol 0.19.0 (`client::RequestCode`). - #[cfg(target_os = "linux")] - const FLAT_REQUEST_REBOOT: u32 = 4; - #[cfg(target_os = "linux")] - const FLAT_REQUEST_SHUTDOWN: u32 = 21; - - /// Sends a legacy flat request (review-protocol 0.19.0 wire framing). - #[cfg(target_os = "linux")] - async fn send_legacy_flat_request( - conn: &review_protocol::server::Connection, - request_code: u32, - ) -> anyhow::Result<()> { - let (mut send, mut recv) = conn.open_bi().await?; - let resp: Result<(), String> = - review_protocol::unary_request(&mut send, &mut recv, request_code, ()) - .await - .map_err(|e| anyhow::anyhow!("flat request transport failed: {e}"))?; - resp.map_err(|e| anyhow::anyhow!(e)) - } - #[cfg(target_os = "linux")] #[tokio::test] - async fn dispatch_flat_reboot_request_code_over_live_connection() { - let (inner, server, _endpoint) = setup_test_connection().await; + async fn legacy_reboot_delegates_to_node_power() { let mock = Arc::new(handlers::power::MockPowerBackend::default()); - let task = spawn_dispatch_loop_with_mock(inner, mock.clone()); + let backend: Arc = mock.clone(); + let mut handler = super::RequestHandler::with_power_backend(backend); - send_legacy_flat_request(&server, FLAT_REQUEST_REBOOT) + review_protocol::request::Handler::reboot(&mut handler) .await - .expect("flat reboot should return legacy ()"); + .expect("legacy reboot should succeed"); handlers::power::wait_for_mock_count(&mock.reboot_count, 1).await; - - drop(server); - let task_result = task.await.expect("dispatch task should not panic"); - assert!(task_result.is_ok()); } #[cfg(target_os = "linux")] #[tokio::test] - async fn dispatch_flat_shutdown_request_code_over_live_connection() { - let (inner, server, _endpoint) = setup_test_connection().await; + async fn legacy_shutdown_delegates_to_node_power() { let mock = Arc::new(handlers::power::MockPowerBackend::default()); - let task = spawn_dispatch_loop_with_mock(inner, mock.clone()); + let backend: Arc = mock.clone(); + let mut handler = super::RequestHandler::with_power_backend(backend); - send_legacy_flat_request(&server, FLAT_REQUEST_SHUTDOWN) + review_protocol::request::Handler::shutdown(&mut handler) .await - .expect("flat shutdown should return legacy ()"); + .expect("legacy shutdown should succeed"); handlers::power::wait_for_mock_count(&mock.power_off_count, 1).await; - - drop(server); - let task_result = task.await.expect("dispatch task should not panic"); - assert!(task_result.is_ok()); } #[cfg(target_os = "linux")]