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

Reply via email to