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 {