diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java index 13518de5cb3c..0ae8a206b949 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@ -3366,7 +3366,7 @@ private boolean isIoUringEnabled() { if (!meetRequirements) { return false; } - return isUbuntuHost() || isIoUringSupportedByQemu(); + return isUbuntuOrDebianHost() || isIoUringSupportedByQemu(); } /** @@ -3379,13 +3379,14 @@ public boolean isQemuDiscardBugFree(DiskDef.DiskBus diskBus) { return diskBus != DiskDef.DiskBus.IDE || getHypervisorQemuVersion() >= HYPERVISOR_QEMU_VERSION_IDE_DISCARD_FIXED; } - public boolean isUbuntuHost() { + public boolean isUbuntuOrDebianHost() { Map versionString = getVersionStrings(); String hostKey = "Host.OS"; if (MapUtils.isEmpty(versionString) || !versionString.containsKey(hostKey) || versionString.get(hostKey) == null) { return false; } - return versionString.get(hostKey).equalsIgnoreCase("ubuntu"); + return versionString.get(hostKey).equalsIgnoreCase("ubuntu") + || versionString.get(hostKey).startsWith("Debian"); } private KVMPhysicalDisk getPhysicalDiskFromNfsStore(String dataStoreUrl, DataTO data) { @@ -5348,14 +5349,14 @@ public boolean isSecureMode(String bootMode) { public boolean hostSupportsInstanceConversion() { int exitValue = Script.runSimpleBashScriptForExitValue(INSTANCE_CONVERSION_SUPPORTED_CHECK_CMD); - if (isUbuntuHost() && exitValue == 0) { + if (isUbuntuOrDebianHost() && exitValue == 0) { exitValue = Script.runSimpleBashScriptForExitValue(UBUNTU_NBDKIT_PKG_CHECK_CMD); } return exitValue == 0; } public boolean hostSupportsWindowsGuestConversion() { - if (isUbuntuHost()) { + if (isUbuntuOrDebianHost()) { int exitValue = Script.runSimpleBashScriptForExitValue(UBUNTU_WINDOWS_GUEST_CONVERSION_SUPPORTED_CHECK_CMD); return exitValue == 0; } diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtCheckConvertInstanceCommandWrapper.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtCheckConvertInstanceCommandWrapper.java index d3ebb28b106a..b94b48300036 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtCheckConvertInstanceCommandWrapper.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtCheckConvertInstanceCommandWrapper.java @@ -32,7 +32,7 @@ public class LibvirtCheckConvertInstanceCommandWrapper extends CommandWrapper hostDetails = new HashMap(); - if (hostSupportsUefi(libvirtComputingResource.isUbuntuHost()) && libvirtComputingResource.isUefiPropertiesFileLoaded()) { + if (hostSupportsUefi(libvirtComputingResource.isUbuntuOrDebianHost()) && libvirtComputingResource.isUefiPropertiesFileLoaded()) { hostDetails.put(Host.HOST_UEFI_ENABLE, Boolean.TRUE.toString()); } return new ReadyAnswer(command, hostDetails); } - private boolean hostSupportsUefi(boolean isUbuntuHost) { + private boolean hostSupportsUefi(boolean isUbuntuOrDebianHost) { int timeout = AgentPropertiesFileHandler.getPropertyValue(AgentProperties.AGENT_SCRIPT_TIMEOUT) * 1000; // Get property value & convert to milliseconds int result; - if (isUbuntuHost) { + if (isUbuntuOrDebianHost) { logger.debug("Running command : [dpkg -l ovmf] with timeout : " + timeout + " ms"); result = Script.executeCommandForExitValue(timeout, Script.getExecutableAbsolutePath("dpkg"), "-l", "ovmf"); } else {