#![allow(dead_code)]
use anyhow::Result;
use std::path::Path;
use crate::vsock::VsockClient;
pub async fn check_vm_health(vsock_path: &Path) -> Result<bool> {
let client = VsockClient::for_firecracker(vsock_path.to_path_buf());
Ok(client.ping().await.unwrap_or(false))
}
#[derive(Debug, Clone)]
pub struct VmHealth {
pub id: String,
pub process_alive: bool,
pub agent_responding: bool,
pub age_secs: u64,
}
impl VmHealth {
pub fn is_healthy(&self) -> bool {
self.process_alive && self.agent_responding
}
}