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
