Gilad Chaplik has uploaded a new change for review.

Change subject: core, db: add getQosByDiskProfile
......................................................................

core, db: add getQosByDiskProfile

a single query to avoid 2:
* getDiskProfile
* getQos

Change-Id: If8e9b246172497412b3dc13d46af85fd155713cf
Signed-off-by: Gilad Chaplik <[email protected]>
---
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/StorageQosDao.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/StorageQosDaoDbFacadeImpl.java
M 
backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/qos/StorageQosDaoTest.java
M packaging/dbscripts/qos_sp.sql
4 files changed, 37 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/17/31817/1

diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/StorageQosDao.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/StorageQosDao.java
index 42e9391..af3fc5c 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/StorageQosDao.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/StorageQosDao.java
@@ -1,6 +1,16 @@
 package org.ovirt.engine.core.dao.qos;
 
 import org.ovirt.engine.core.common.businessentities.qos.StorageQos;
+import org.ovirt.engine.core.compat.Guid;
 
 public interface StorageQosDao extends QosDao<StorageQos> {
+
+    /**
+     * fetches QoS object attached to disk profile
+     *
+     * @param diskProfileId
+     *            the disk profile id
+     * @return qos
+     */
+    StorageQos getQosByDiskProfileId(Guid diskProfileId);
 }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/StorageQosDaoDbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/StorageQosDaoDbFacadeImpl.java
index e9fd57f..466df94 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/StorageQosDaoDbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/StorageQosDaoDbFacadeImpl.java
@@ -5,6 +5,7 @@
 
 import org.ovirt.engine.core.common.businessentities.qos.QosType;
 import org.ovirt.engine.core.common.businessentities.qos.StorageQos;
+import org.ovirt.engine.core.compat.Guid;
 import org.springframework.jdbc.core.RowMapper;
 import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
 
@@ -14,6 +15,15 @@
     }
 
     @Override
+    public StorageQos getQosByDiskProfileId(Guid diskProfileId) {
+        MapSqlParameterSource parameterSource = 
getCustomMapSqlParameterSource()
+                .addValue("disk_profile_id", diskProfileId);
+        return getCallsHandler().executeRead("GetQosByDiskProfile",
+                createEntityRowMapper(),
+                parameterSource);
+    }
+
+    @Override
     protected MapSqlParameterSource createFullParametersMapper(StorageQos obj) 
{
         MapSqlParameterSource map = super.createFullParametersMapper(obj);
         map.addValue("max_throughput", obj.getMaxThroughput());
diff --git 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/qos/StorageQosDaoTest.java
 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/qos/StorageQosDaoTest.java
index ba7b3e1..00fc280 100644
--- 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/qos/StorageQosDaoTest.java
+++ 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/qos/StorageQosDaoTest.java
@@ -97,4 +97,11 @@
         assertEquals(2, allForStoragePoolId.size());
     }
 
+    @Test
+    public void getQosByDiskProfileId() {
+        StorageQos qos = 
dao.getQosByDiskProfileId(FixturesTool.DISK_PROFILE_1);
+        assertNotNull(qos);
+        assertEquals(FixturesTool.QOS_ID_1, qos.getId());
+    }
+
 }
diff --git a/packaging/dbscripts/qos_sp.sql b/packaging/dbscripts/qos_sp.sql
index d71942d..01cb4a5 100644
--- a/packaging/dbscripts/qos_sp.sql
+++ b/packaging/dbscripts/qos_sp.sql
@@ -80,3 +80,13 @@
 LANGUAGE plpgsql;
 
 
+Create or replace FUNCTION GetQosByDiskProfile(v_disk_profile_id UUID) RETURNS 
SETOF qos STABLE
+   AS $procedure$
+BEGIN
+RETURN QUERY SELECT qos.*
+   FROM qos
+   JOIN disk_profiles ON qos.id = disk_profiles.qos_id
+   WHERE disk_profiles.id = v_disk_profile_id;
+END; $procedure$
+LANGUAGE plpgsql;
+


-- 
To view, visit http://gerrit.ovirt.org/31817
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: If8e9b246172497412b3dc13d46af85fd155713cf
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.5
Gerrit-Owner: Gilad Chaplik <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to