MCPcopy Create free account
hub / github.com/cloud-hypervisor/cloud-hypervisor / vm_resize

Method vm_resize

vmm/src/lib.rs:2148–2175  ·  view source on GitHub ↗
(
        &mut self,
        desired_vcpus: Option<u32>,
        desired_ram: Option<u64>,
        desired_balloon: Option<u64>,
    )

Source from the content-addressed store, hash-verified

2146 }
2147
2148 fn vm_resize(
2149 &mut self,
2150 desired_vcpus: Option<u32>,
2151 desired_ram: Option<u64>,
2152 desired_balloon: Option<u64>,
2153 ) -> result::Result<(), VmError> {
2154 self.vm_config.as_ref().ok_or(VmError::VmNotCreated)?;
2155
2156 if let Some(ref mut vm) = self.vm {
2157 vm.resize(desired_vcpus, desired_ram, desired_balloon)
2158 .inspect_err(|e| error!("Error when resizing VM: {e:?}"))?;
2159 Ok(())
2160 } else {
2161 let mut config = self.vm_config.as_ref().unwrap().lock().unwrap();
2162 if let Some(desired_vcpus) = desired_vcpus {
2163 config.cpus.boot_vcpus = desired_vcpus;
2164 }
2165 if let Some(desired_ram) = desired_ram {
2166 config.memory.size = desired_ram;
2167 }
2168 if let Some(desired_balloon) = desired_balloon
2169 && let Some(balloon_config) = &mut config.balloon
2170 {
2171 balloon_config.size = desired_balloon;
2172 }
2173 Ok(())
2174 }
2175 }
2176
2177 fn vm_resize_disk(&mut self, id: String, desired_size: u64) -> result::Result<(), VmError> {
2178 self.vm_config.as_ref().ok_or(VmError::VmNotCreated)?;

Callers 1

api_vm_resizeMethod · 0.45

Calls 1

resizeMethod · 0.45

Tested by

no test coverage detected