From 3af24f39ceede98c1ca6310cc0855a2420daf20d Mon Sep 17 00:00:00 2001 From: Renato Westphal Date: Tue, 23 Jan 2024 23:19:19 -0300 Subject: [PATCH] chore: bump tonic to v0.10 Signed-off-by: Renato Westphal --- Cargo.toml | 6 ++-- holo-daemon/Cargo.toml | 2 +- holo-daemon/src/northbound/client/gnmi.rs | 16 +++++----- holo-daemon/src/northbound/client/grpc.rs | 38 +++++++++++------------ 4 files changed, 31 insertions(+), 31 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 166cd429..31c74640 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -52,7 +52,7 @@ netlink-sys = "0.8" num-derive = "0.3" num-traits = "0.2" pickledb = "0.5" -prost = "0.11" +prost = "0.12" rand = "0.8.5" rtnetlink = "0.13" serde = { version = "1.0", features = ["derive", "rc"] } @@ -63,8 +63,8 @@ similar = "2.0" smallvec = { version = "1.11", features = ["serde"] } socket2 = { version = "0.4", features = ["all"] } tokio = { version = "1.0", features = ["full"] } -tonic = { version = "0.9", features = ["tls"] } -tonic-build = "0.9" +tonic = { version = "0.10", features = ["tls"] } +tonic-build = "0.10" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] } yang2 = { version = "0.8", features = ["bundled"] } diff --git a/holo-daemon/Cargo.toml b/holo-daemon/Cargo.toml index a7ac75ae..c37dd2c1 100644 --- a/holo-daemon/Cargo.toml +++ b/holo-daemon/Cargo.toml @@ -7,7 +7,7 @@ edition.workspace = true [dependencies] console-subscriber = "0.1.8" -prost-types = "0.11" +prost-types = "0.12" toml = "0.5" tokio-uring = { version = "0.4", optional = true } tokio-stream = "0.1" diff --git a/holo-daemon/src/northbound/client/gnmi.rs b/holo-daemon/src/northbound/client/gnmi.rs index fb6cca1b..13fd6782 100644 --- a/holo-daemon/src/northbound/client/gnmi.rs +++ b/holo-daemon/src/northbound/client/gnmi.rs @@ -101,24 +101,24 @@ impl proto::GNmi for GNmiService { // Get data type. let data_type = - match proto::get_request::DataType::from_i32(grpc_request.r#type) { - Some(proto::get_request::DataType::All) => api::DataType::All, - Some(proto::get_request::DataType::Config) => { + match proto::get_request::DataType::try_from(grpc_request.r#type) { + Ok(proto::get_request::DataType::All) => api::DataType::All, + Ok(proto::get_request::DataType::Config) => { api::DataType::Configuration } - Some( + Ok( proto::get_request::DataType::State | proto::get_request::DataType::Operational, ) => api::DataType::State, - None => { + Err(_) => { return Err(Status::invalid_argument("Invalid data type")) } }; // Get encoding type. - let encoding = match proto::Encoding::from_i32(grpc_request.encoding) { - Some(proto::Encoding::Proto) => proto::Encoding::Proto, - Some(proto::Encoding::JsonIetf) => proto::Encoding::JsonIetf, + let encoding = match proto::Encoding::try_from(grpc_request.encoding) { + Ok(proto::Encoding::Proto) => proto::Encoding::Proto, + Ok(proto::Encoding::JsonIetf) => proto::Encoding::JsonIetf, _ => return Err(Status::invalid_argument("Invalid data encoding")), }; diff --git a/holo-daemon/src/northbound/client/grpc.rs b/holo-daemon/src/northbound/client/grpc.rs index bda6c4b2..ca44e3a8 100644 --- a/holo-daemon/src/northbound/client/grpc.rs +++ b/holo-daemon/src/northbound/client/grpc.rs @@ -97,8 +97,8 @@ impl proto::Northbound for NorthboundService { // Convert and relay gRPC request to the northbound. let data_type = api::DataType::try_from(grpc_request.r#type)?; - let encoding = proto::Encoding::from_i32(grpc_request.encoding) - .ok_or_else(|| Status::invalid_argument("Invalid data encoding"))?; + let encoding = proto::Encoding::try_from(grpc_request.encoding) + .map_err(|_| Status::invalid_argument("Invalid data encoding"))?; let path = (!grpc_request.path.is_empty()).then_some(grpc_request.path); let nb_request = api::client::Request::Get(api::client::GetRequest { data_type, @@ -149,8 +149,8 @@ impl proto::Northbound for NorthboundService { let config_tree = grpc_request.config.ok_or_else(|| { Status::invalid_argument("Missing 'config' field") })?; - let encoding = proto::Encoding::from_i32(config_tree.encoding) - .ok_or_else(|| Status::invalid_argument("Invalid data encoding"))?; + let encoding = proto::Encoding::try_from(config_tree.encoding) + .map_err(|_| Status::invalid_argument("Invalid data encoding"))?; let config = DataTree::parse_string( yang_ctx, &config_tree.data, @@ -194,11 +194,13 @@ impl proto::Northbound for NorthboundService { let config_tree = grpc_request.config.ok_or_else(|| { Status::invalid_argument("Missing 'config' field") })?; - let encoding = proto::Encoding::from_i32(config_tree.encoding) - .ok_or_else(|| Status::invalid_argument("Invalid data encoding"))?; + let encoding = proto::Encoding::try_from(config_tree.encoding) + .map_err(|_| Status::invalid_argument("Invalid data encoding"))?; let operation = - proto::commit_request::Operation::from_i32(grpc_request.operation) - .ok_or(Status::invalid_argument("Invalid commit operation"))?; + proto::commit_request::Operation::try_from(grpc_request.operation) + .map_err(|_| { + Status::invalid_argument("Invalid commit operation") + })?; let config = match operation { proto::commit_request::Operation::Merge => { let config = DataTree::parse_string( @@ -275,8 +277,8 @@ impl proto::Northbound for NorthboundService { let data = grpc_request .data .ok_or_else(|| Status::invalid_argument("Missing 'data' field"))?; - let encoding = proto::Encoding::from_i32(data.encoding) - .ok_or_else(|| Status::invalid_argument("Invalid data encoding"))?; + let encoding = proto::Encoding::try_from(data.encoding) + .map_err(|_| Status::invalid_argument("Invalid data encoding"))?; let data = DataTree::parse_op_string( yang_ctx, &data.data, @@ -386,8 +388,8 @@ impl proto::Northbound for NorthboundService { let nb_response = responder_rx.await.unwrap()?; // Convert and relay northbound response to the gRPC client. - let encoding = proto::Encoding::from_i32(grpc_request.encoding) - .ok_or_else(|| Status::invalid_argument("Invalid data encoding"))?; + let encoding = proto::Encoding::try_from(grpc_request.encoding) + .map_err(|_| Status::invalid_argument("Invalid data encoding"))?; let config = nb_response .dtree .print_string( @@ -460,15 +462,13 @@ impl TryFrom for api::DataType { type Error = Status; fn try_from(data_type: i32) -> Result { - match proto::get_request::DataType::from_i32(data_type) { - Some(proto::get_request::DataType::All) => Ok(api::DataType::All), - Some(proto::get_request::DataType::Config) => { + match proto::get_request::DataType::try_from(data_type) { + Ok(proto::get_request::DataType::All) => Ok(api::DataType::All), + Ok(proto::get_request::DataType::Config) => { Ok(api::DataType::Configuration) } - Some(proto::get_request::DataType::State) => { - Ok(api::DataType::State) - } - None => Err(Status::invalid_argument("Invalid data type")), + Ok(proto::get_request::DataType::State) => Ok(api::DataType::State), + Err(_) => Err(Status::invalid_argument("Invalid data type")), } } }