From 8c2e32f07529876aeae53863bc82bbdec7cd5008 Mon Sep 17 00:00:00 2001 From: Alex Lyn Date: Fri, 29 Aug 2025 17:17:23 +0800 Subject: [PATCH] kata-types: Support create_container_timeout set within configuration Since it aligns with the create_container_timeout definition in runtime-go, we need to set the value in configuration.toml in seconds, not milliseconds. We must also convert it to milliseconds when the configuration is loaded for request_timeout_ms. Signed-off-by: Alex Lyn --- src/libs/kata-types/src/config/agent.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/libs/kata-types/src/config/agent.rs b/src/libs/kata-types/src/config/agent.rs index 73b472ed3c..20d1ddaf82 100644 --- a/src/libs/kata-types/src/config/agent.rs +++ b/src/libs/kata-types/src/config/agent.rs @@ -6,6 +6,7 @@ use std::io::Result; use crate::config::{ConfigOps, TomlConfig}; +use serde::{Deserialize, Deserializer}; pub use vendor::AgentVendor; @@ -117,7 +118,8 @@ pub struct Agent { /// have sufficient time to complete. #[serde( default = "default_request_timeout", - rename = "create_container_timeout" + rename = "create_container_timeout", + deserialize_with = "deserialize_secs_to_millis" )] pub request_timeout_ms: u32, @@ -205,6 +207,15 @@ fn default_health_check_timeout() -> u32 { 90_000 } +fn deserialize_secs_to_millis<'de, D>(deserializer: D) -> std::result::Result +where + D: Deserializer<'de>, +{ + let secs = u32::deserialize(deserializer)?; + + Ok(secs.saturating_mul(1000)) +} + impl Agent { fn validate(&self) -> Result<()> { if self.dial_timeout_ms == 0 {