From f023fc53c0acc68716a46cbce66ffc67dde2461d Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Mon, 8 Jan 2024 17:51:04 +0530 Subject: [PATCH] engine-schema: fix finding guestos mapping with parent version (#8426) GuestOS mappings are retrieved from the parent hypervisor version when a minor, patch hypervisor version doesn't exist. Fixes #8412 Signed-off-by: Abhishek Kumar --- .../storage/dao/GuestOSHypervisorDaoImpl.java | 45 +++++++++++++++++-- 1 file changed, 41 insertions(+), 4 deletions(-) diff --git a/engine/schema/src/main/java/com/cloud/storage/dao/GuestOSHypervisorDaoImpl.java b/engine/schema/src/main/java/com/cloud/storage/dao/GuestOSHypervisorDaoImpl.java index e03e3f7ce64..69f4d4a3ceb 100644 --- a/engine/schema/src/main/java/com/cloud/storage/dao/GuestOSHypervisorDaoImpl.java +++ b/engine/schema/src/main/java/com/cloud/storage/dao/GuestOSHypervisorDaoImpl.java @@ -20,9 +20,12 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import org.apache.cloudstack.utils.CloudStackVersion; import org.apache.commons.collections.CollectionUtils; +import org.apache.log4j.Logger; import org.springframework.stereotype.Component; +import com.cloud.hypervisor.Hypervisor; import com.cloud.storage.GuestOSHypervisorVO; import com.cloud.utils.db.Filter; import com.cloud.utils.db.QueryBuilder; @@ -32,6 +35,7 @@ import com.cloud.utils.db.SearchCriteria; @Component public class GuestOSHypervisorDaoImpl extends GenericDaoBase implements GuestOSHypervisorDao { + private static final Logger s_logger = Logger.getLogger(GuestOSHypervisorDaoImpl.class); protected final SearchBuilder guestOsSearch; protected final SearchBuilder mappingSearch; @@ -80,6 +84,29 @@ public class GuestOSHypervisorDaoImpl extends GenericDaoBase listByGuestOsId(long guestOsId) { SearchCriteria sc = guestOsSearch.create(); @@ -87,8 +114,7 @@ public class GuestOSHypervisorDaoImpl extends GenericDaoBase sc = mappingSearch.create(); String version = "default"; if (!(hypervisorVersion == null || hypervisorVersion.isEmpty())) { @@ -100,6 +126,12 @@ public class GuestOSHypervisorDaoImpl extends GenericDaoBase sc = userDefinedMappingSearch.create(); @@ -123,8 +155,7 @@ public class GuestOSHypervisorDaoImpl extends GenericDaoBase sc = guestOsNameSearch.create(); String version = "default"; if (!(hypervisorVersion == null || hypervisorVersion.isEmpty())) { @@ -138,6 +169,12 @@ public class GuestOSHypervisorDaoImpl extends GenericDaoBase sc = guestOsNameSearch.create();