Skip to content

Commit cb2ad0b

Browse files
Muhammad Yuga NugrahaMuhammad Yuga Nugraha
authored andcommitted
refactor: update memory handling
1 parent b576e33 commit cb2ad0b

1 file changed

Lines changed: 8 additions & 11 deletions

File tree

firecracker/microvm.py

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ class MicroVM:
2828
"""
2929
def __init__(self, name: str = None, kernel_file: str = None, initrd_file: str = None, init_file: str = None,
3030
base_rootfs: str = None, rootfs_url: str = None, overlayfs: bool = False, overlayfs_file: str = None,
31-
vcpu: int = None, mem_size_mib: int = None, ip_addr: str = None, bridge: bool = None, bridge_name: str = None,
32-
mmds_enabled: bool = None, mmds_ip: str = None, user_data: str = None, user_data_file: str = None, labels: dict = None,
33-
expose_ports: bool = False, host_port: int = None, dest_port: int = None,
31+
vcpu: int = None, memory: int = None, ip_addr: str = None, bridge: bool = None, bridge_name: str = None,
32+
mmds_enabled: bool = None, mmds_ip: str = None, user_data: str = None, user_data_file: str = None,
33+
labels: dict = None, expose_ports: bool = False, host_port: int = None, dest_port: int = None,
3434
verbose: bool = False, level: str = "INFO") -> None:
3535
"""Initialize a new MicroVM instance with configuration."""
3636
self._microvm_id = generate_id()
@@ -46,16 +46,13 @@ def __init__(self, name: str = None, kernel_file: str = None, initrd_file: str =
4646
self._vmm = VMMManager(verbose=verbose, level=level)
4747

4848
self._vcpu = vcpu or self._config.vcpu
49-
self._mem = self._convert_memory_size(mem_size_mib or self._config.mem_size_mib)
49+
self._memory = int(self._convert_memory_size(memory or self._config.memory))
5050
self._mmds_enabled = mmds_enabled if mmds_enabled is not None else self._config.mmds_enabled
5151
self._mmds_ip = mmds_ip or self._config.mmds_ip
5252

5353
if not isinstance(self._vcpu, int) or self._vcpu <= 0:
5454
raise ValueError("vcpu must be a positive integer")
5555

56-
if self._mem < 128:
57-
raise ValueError("Memory size must be at least 128 MiB")
58-
5956
if user_data_file and user_data:
6057
raise ValueError("Cannot specify both user_data and user_data_file. Use only one of them.")
6158
if user_data_file:
@@ -727,11 +724,11 @@ def _configure_vmm_resources(self):
727724

728725
self._api.machine_config.put(
729726
vcpu_count=self._vcpu,
730-
mem_size_mib=self._mem
727+
mem_size_mib=self._memory
731728
)
732729

733730
if self._config.verbose:
734-
self._logger.info(f"VMM is configured with {self._vcpu} vCPUs and {self._mem} MiB of memory")
731+
self._logger.info(f"VMM is configured with {self._vcpu} vCPUs and {self._memory} MiB of memory")
735732

736733
except Exception as e:
737734
raise ConfigurationError(f"Failed to configure VMM resources: {str(e)}")
@@ -889,7 +886,7 @@ def _convert_memory_size(self, size):
889886
return max(size, MIN_MEMORY)
890887

891888
if isinstance(size, str):
892-
size = size.upper()
889+
size = size.upper().strip()
893890
try:
894891
if size.endswith('G'):
895892
# Convert GB to MiB and ensure minimum
@@ -904,4 +901,4 @@ def _convert_memory_size(self, size):
904901
return max(mem_size, MIN_MEMORY)
905902
except ValueError:
906903
raise ValueError(f"Invalid memory size format: {size}")
907-
raise ValueError(f"Invalid memory size type: {type(size)}")
904+
raise ValueError(f"Invalid memory size type: {type(size)}")

0 commit comments

Comments
 (0)