From 4417aabd70662b195b7d0fab68ad855a05eee4d0 Mon Sep 17 00:00:00 2001 From: nvazquez Date: Thu, 12 Nov 2026 08:36:21 -0300 Subject: [PATCH 1/2] Restrict VDDK check on filesystem only when the agent property for VDDK is set --- .../kvm/resource/LibvirtComputingResource.java | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) 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 1f90a6257557..3fc09fcc543a 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 @@ -1188,20 +1188,16 @@ public boolean configure(final String name, final Map params) th LOGGER.warn("Configured VDDK library dir [{}] is invalid (missing lib64/libvixDiskLib.so), attempting auto-detection", vddkLibDir); vddkLibDir = null; } - if (StringUtils.isBlank(vddkLibDir)) { - vddkLibDir = detectVddkLibDir(); - } if (StringUtils.isNotBlank(vddkLibDir)) { LOGGER.info("Detected VDDK library dir: {}", vddkLibDir); + vddkVersion = detectVddkVersion(); + if (StringUtils.isNotBlank(vddkVersion)) { + LOGGER.info("Detected nbdkit VDDK plugin version: {}", vddkVersion); + } } else { LOGGER.warn("Could not detect a valid VDDK library dir; VDDK conversion will be unavailable"); } - vddkVersion = detectVddkVersion(); - if (StringUtils.isNotBlank(vddkVersion)) { - LOGGER.info("Detected nbdkit VDDK plugin version: {}", vddkVersion); - } - vddkTransports = StringUtils.trimToNull( AgentPropertiesFileHandler.getPropertyValue(AgentProperties.VDDK_TRANSPORTS)); vddkThumbprint = StringUtils.trimToNull( From 699f8960920bb380070bc5155d3bbbd3fe92fe9f Mon Sep 17 00:00:00 2001 From: nvazquez Date: Thu, 12 Nov 2026 13:23:47 -0300 Subject: [PATCH 2/2] Remove detectVddkDir --- .../kvm/resource/LibvirtComputingResource.java | 12 ------------ 1 file changed, 12 deletions(-) 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 3fc09fcc543a..f42a4fae2ffc 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 @@ -368,7 +368,6 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv public static final String WINDOWS_GUEST_CONVERSION_SUPPORTED_CHECK_CMD = "rpm -qa | grep -i virtio-win"; public static final String UBUNTU_WINDOWS_GUEST_CONVERSION_SUPPORTED_CHECK_CMD = "dpkg -l virtio-win"; public static final String UBUNTU_NBDKIT_PKG_CHECK_CMD = "dpkg -l nbdkit"; - public static final String VDDK_AUTODETECT_PATH_CMD = "find / -type d -name 'vmware-vix-disklib-distrib' 2>/dev/null | head -n 1"; public static final int LIBVIRT_CGROUP_CPU_SHARES_MIN = 2; public static final int LIBVIRT_CGROUP_CPU_SHARES_MAX = 262144; @@ -6009,9 +6008,6 @@ public boolean hostSupportsVddk(String overriddenVddkLibDir) { if (StringUtils.isBlank(effectiveVddkLibDir)) { effectiveVddkLibDir = StringUtils.trimToNull(vddkLibDir); } - if (StringUtils.isBlank(effectiveVddkLibDir) || !isVddkLibDirValid(effectiveVddkLibDir)) { - effectiveVddkLibDir = detectVddkLibDir(); - } return hostSupportsInstanceConversion() && isVddkLibDirValid(effectiveVddkLibDir) && StringUtils.isNotBlank(detectVddkVersion()); } @@ -6027,14 +6023,6 @@ protected boolean isVddkLibDirValid(String path) { return libs != null && libs.length > 0; } - protected String detectVddkLibDir() { - String detectedPath = StringUtils.trimToNull(Script.runSimpleBashScript(VDDK_AUTODETECT_PATH_CMD)); - if (StringUtils.isNotBlank(detectedPath) && isVddkLibDirValid(detectedPath)) { - return detectedPath; - } - return null; - } - protected String detectVddkVersion() { try { ProcessBuilder pb = new ProcessBuilder("nbdkit", "vddk", "--version");