From 7eae9d0fd6ef35c051835d9bbfa3f2460274a61d Mon Sep 17 00:00:00 2001 From: Alex Lyn Date: Thu, 30 Apr 2026 16:32:24 +0800 Subject: [PATCH] runtime-rs: Update sandbox status to include created_at field Ensure the `created_at` timestamp is correctly propagated in the sandbox status. Although `created_at` is present in the `SandboxStatus` and `SandboxStatusResponse` data structures, it was previously omitted during the status transition. This commit completes the implementation by passing the value recorded during sandbox initialization. Signed-off-by: Alex Lyn --- src/runtime-rs/crates/runtimes/common/src/types/mod.rs | 1 + src/runtime-rs/crates/runtimes/src/manager.rs | 2 +- .../crates/runtimes/virt_container/src/sandbox.rs | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/runtime-rs/crates/runtimes/common/src/types/mod.rs b/src/runtime-rs/crates/runtimes/common/src/types/mod.rs index d0f40d78ab..30b630abcd 100644 --- a/src/runtime-rs/crates/runtimes/common/src/types/mod.rs +++ b/src/runtime-rs/crates/runtimes/common/src/types/mod.rs @@ -233,6 +233,7 @@ pub struct SandboxStatus { pub pid: u32, pub state: String, pub info: std::collections::HashMap, + pub created_at: Option, } #[derive(Debug, Clone)] diff --git a/src/runtime-rs/crates/runtimes/src/manager.rs b/src/runtime-rs/crates/runtimes/src/manager.rs index 8be85f5701..458cdbe3eb 100644 --- a/src/runtime-rs/crates/runtimes/src/manager.rs +++ b/src/runtime-rs/crates/runtimes/src/manager.rs @@ -581,7 +581,7 @@ impl RuntimeHandlerManager { sandbox_id: status.sandbox_id, pid: status.pid, state: status.state, - created_at: None, + created_at: status.created_at, exited_at: None, })) } diff --git a/src/runtime-rs/crates/runtimes/virt_container/src/sandbox.rs b/src/runtime-rs/crates/runtimes/virt_container/src/sandbox.rs index fdcf7626c5..a956509448 100644 --- a/src/runtime-rs/crates/runtimes/virt_container/src/sandbox.rs +++ b/src/runtime-rs/crates/runtimes/virt_container/src/sandbox.rs @@ -98,6 +98,7 @@ pub enum SandboxState { struct SandboxInner { state: SandboxState, exit_info: Option, + created_at: Option, } impl SandboxInner { @@ -105,6 +106,7 @@ impl SandboxInner { Self { state: SandboxState::Init, exit_info: None, + created_at: None, } } } @@ -864,6 +866,7 @@ impl Sandbox for VirtSandbox { .context("create sandbox")?; inner.state = SandboxState::Running; + inner.created_at = Some(std::time::SystemTime::now()); let sandbox = self.clone(); tokio::spawn(async move { @@ -985,7 +988,8 @@ impl Sandbox for VirtSandbox { sandbox_id: self.sid.clone(), pid: std::process::id(), state, - ..Default::default() + info: std::collections::HashMap::new(), + created_at: inner.created_at, }) }