From 9d9f90af1adc9c912d9a517564e101fca13766e3db88f85cf7d55d0ac110fa4a Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Tue, 7 Apr 2026 21:20:15 +0200 Subject: [PATCH] Preserve vcpus/memory/disk in VmHandle for QEMU start --- crates/orchestrator/src/hypervisor.rs | 9 +++++++++ crates/orchestrator/src/scheduler.rs | 3 +++ crates/orchestrator/src/vm_adapter.rs | 9 ++++++--- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/crates/orchestrator/src/hypervisor.rs b/crates/orchestrator/src/hypervisor.rs index 7455cee..e230b0e 100644 --- a/crates/orchestrator/src/hypervisor.rs +++ b/crates/orchestrator/src/hypervisor.rs @@ -53,6 +53,12 @@ pub struct VmHandle { pub ssh_host_port: Option, /// MAC address of the VM's network interface. pub mac_addr: Option, + /// vCPU count (preserved from prepare for start). + pub vcpus: u16, + /// Memory in MB (preserved from prepare for start). + pub memory_mb: u64, + /// Disk size in GB. + pub disk_gb: Option, } #[derive(Debug, Clone, Copy, PartialEq, Eq)] @@ -99,6 +105,9 @@ impl Hypervisor for NoopHypervisor { console_socket: None, ssh_host_port: None, mac_addr: None, + vcpus: 0, + memory_mb: 0, + disk_gb: None, }) } async fn start(&self, vm: &VmHandle) -> Result<()> { diff --git a/crates/orchestrator/src/scheduler.rs b/crates/orchestrator/src/scheduler.rs index 739fc06..c59a4c6 100644 --- a/crates/orchestrator/src/scheduler.rs +++ b/crates/orchestrator/src/scheduler.rs @@ -971,6 +971,9 @@ mod tests { console_socket: None, ssh_host_port: None, mac_addr: None, + vcpus: 0, + memory_mb: 0, + disk_gb: None, }) } async fn start(&self, _vm: &VmHandle) -> miette::Result<()> { diff --git a/crates/orchestrator/src/vm_adapter.rs b/crates/orchestrator/src/vm_adapter.rs index 86af8fb..04221ec 100644 --- a/crates/orchestrator/src/vm_adapter.rs +++ b/crates/orchestrator/src/vm_adapter.rs @@ -196,6 +196,9 @@ fn to_orch_handle(h: &vm_manager::VmHandle) -> VmHandle { console_socket: h.console_socket.clone(), ssh_host_port: h.ssh_host_port, mac_addr: h.mac_addr.clone(), + vcpus: h.vcpus, + memory_mb: h.memory_mb, + disk_gb: h.disk_gb, } } @@ -218,9 +221,9 @@ fn to_vm_handle(h: &VmHandle) -> vm_manager::VmHandle { qmp_socket: Some(h.work_dir.join("qmp.sock")), console_socket: h.console_socket.clone(), vnc_addr: None, - vcpus: 0, - memory_mb: 0, - disk_gb: None, + vcpus: h.vcpus, + memory_mb: h.memory_mb, + disk_gb: h.disk_gb, network: vm_manager::NetworkConfig::User, ssh_host_port: h.ssh_host_port, mac_addr: h.mac_addr.clone(),