From 0931744328ade50d7bb1fe15f416a9ba4de42ca5 Mon Sep 17 00:00:00 2001 From: ghe0 Date: Fri, 4 Jul 2025 04:49:57 +0300 Subject: [PATCH] allow dtrfs upgrade --- src/state.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/state.rs b/src/state.rs index 6ed0439..5aff3be 100644 --- a/src/state.rs +++ b/src/state.rs @@ -112,7 +112,8 @@ impl Resources { let mut volumes = config.volumes.clone(); for volume in volumes.iter_mut() { if let Some(reservation) = self.reserved_storage.get(&volume.path) { - volume.max_reservation_mib = volume.max_reservation_mib.saturating_sub(*reservation); + volume.max_reservation_mib = + volume.max_reservation_mib.saturating_sub(*reservation); } } volumes.sort_by_key(|v| v.max_reservation_mib); @@ -660,7 +661,8 @@ impl VM { config: &Config, res: &mut Resources, ) -> Result<(), VMCreationErrors> { - if req.vcpus < self.vcpus { + if req.vcpus < self.vcpus && req.vcpus != 0 && req.memory_mib != 0 && req.disk_size_mib != 0 + { // Downgrade will be upported only after we implement deviation for VMs. // (Deviation from the slot size allows management of VMs with unbalanced resources, // without fully saturating a node. We are disabling downgrades to avoid complexity at @@ -675,7 +677,10 @@ impl VM { } if req.memory_mib > 0 && config.max_mem_reservation_mib - < res.reserved_memory_mib.saturating_sub(self.memory_mib).saturating_add(req.memory_mib) + < res + .reserved_memory_mib + .saturating_sub(self.memory_mib) + .saturating_add(req.memory_mib) { return Err(VMCreationErrors::NotEnoughMemory); }