package org.ovirt.engine.core.common.utils; import org.ovirt.engine.core.common.businessentities.VmOsType; import org.ovirt.engine.core.common.config.Config; import org.ovirt.engine.core.common.config.ConfigValues; public class VmValidationUtils { private static final String X64BIT = "x64"; /** * Check if the memory size is within the correct limits (as per the configuration), taking into account the * OS type. * * @param osType The OS type. * @param memSizeInMB The memory size to validate. * * @return Is the memory within the configured limits or not. */ public static boolean isMemorySizeLegal(VmOsType osType, int memSizeInMB, String clsuter_version) { return memSizeInMB >= getMinMemorySizeInMb() && memSizeInMB <= getMaxMemorySizeInMb(osType, clsuter_version); } /** * Get the configured minimum VM memory size allowed. * * @return The minimum VM memory size allowed (as per configuration). */ public static Integer getMinMemorySizeInMb() { return Config.<Integer> GetValue(ConfigValues.VMMinMemorySizeInMB); } /** * Get the configured maximum VM memory size for this OS type. * * @param osType The type of OS to get the maximum memory for. * * @return The maximum VM memory setting for this OS (as per configuration). */ public static Integer getMaxMemorySizeInMb(VmOsType osType, String clsuter_version) { if ((osType == VmOsType.Other || osType == VmOsType.OtherLinux) || osType.name().toLowerCase().endsWith(X64BIT)) { return Config.<Integer> GetValue(ConfigValues.VM64BitMaxMemorySizeInMB, clsuter_version); } return Config.<Integer> GetValue(ConfigValues.VM32BitMaxMemorySizeInMB); } }