Tomas Jelinek has uploaded a new change for review. Change subject: core: GetVmTemplatesByStoragePoolIdQuery did not return anything ......................................................................
core: GetVmTemplatesByStoragePoolIdQuery did not return anything The problem was a regression introduced in 88756e3897ba467eb50055a7dda0c1afb11295d0 due to which an incorrect DB call was called. Fixed by implementing the proper DB call (getAllForStoragePool). Change-Id: I62627ca3a9942901abda1ee7522e8f0de1f29764 Signed-off-by: Tomas Jelinek <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVmTemplatesByStoragePoolIdQuery.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAO.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java M packaging/dbscripts/vm_templates_sp.sql 4 files changed, 33 insertions(+), 5 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/79/26079/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVmTemplatesByStoragePoolIdQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVmTemplatesByStoragePoolIdQuery.java index 972411b..9424160 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVmTemplatesByStoragePoolIdQuery.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVmTemplatesByStoragePoolIdQuery.java @@ -1,11 +1,10 @@ package org.ovirt.engine.core.bll; -import java.util.List; - -import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.dal.dbbroker.DbFacade; + +import java.util.List; public class GetVmTemplatesByStoragePoolIdQuery<P extends IdQueryParameters> extends QueriesCommandBase<P> { @@ -15,8 +14,7 @@ @Override protected void executeQueryCommand() { - StoragePool pool = DbFacade.getInstance().getStoragePoolDao().get(getParameters().getId()); - List<VmTemplate> templateList = DbFacade.getInstance().getVmTemplateDao().getAllForStorageDomain(pool.getId()); + List<VmTemplate> templateList = DbFacade.getInstance().getVmTemplateDao().getAllForStoragePool(getParameters().getId()); // Load VmInit and disks for (VmTemplate template : templateList) { VmHandler.updateVmInitFromDB(template, true); diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAO.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAO.java index 84d41b0..573e582 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAO.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAO.java @@ -71,6 +71,15 @@ List<VmTemplate> getAllForVdsGroup(Guid vdsGroup); /** + * Retrieves all templates for the specified storage pool. + * + * @param storagePool + * the storage pool + * @return the list of templates + */ + List<VmTemplate> getAllForStoragePool(Guid storagePool); + + /** * Retrieves all templates for the specified storage domain with optional filtering. * * @param storageDomain diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java index f3324da..741e6c3 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java @@ -114,6 +114,14 @@ } @Override + public List<VmTemplate> getAllForStoragePool(Guid id) { + return getCallsHandler().executeReadList("GetVmTemplatesByStoragePoolId", + VMTemplateRowMapper.instance, + getCustomMapSqlParameterSource() + .addValue("storage_pool_id", id)); + } + + @Override public List<VmTemplate> getAllTemplatesRelatedToQuotaId(Guid quotaId) { return getCallsHandler().executeReadList("GetAllVmTemplatesRelatedToQuotaId", VMTemplateRowMapper.instance, diff --git a/packaging/dbscripts/vm_templates_sp.sql b/packaging/dbscripts/vm_templates_sp.sql index f6912e2..a2d7198 100644 --- a/packaging/dbscripts/vm_templates_sp.sql +++ b/packaging/dbscripts/vm_templates_sp.sql @@ -409,6 +409,19 @@ +Create or replace FUNCTION GetVmTemplatesByStoragePoolId(v_storage_pool_id UUID) RETURNS SETOF vm_templates_view STABLE + AS $procedure$ +BEGIN + RETURN QUERY SELECT DISTINCT vm_templates.* + FROM vm_templates_view vm_templates + where vm_templates.storage_pool_id = v_storage_pool_id; +END; $procedure$ +LANGUAGE plpgsql; + + + + + Create or replace FUNCTION GetVmTemplatesByImageId(v_image_guid UUID) RETURNS SETOF vm_templates_with_plug_info STABLE AS $procedure$ BEGIN -- To view, visit http://gerrit.ovirt.org/26079 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I62627ca3a9942901abda1ee7522e8f0de1f29764 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Tomas Jelinek <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
