Gilad Chaplik has uploaded a new change for review. Change subject: core: add GetDiskProfilesByStorageQosIdQuery ......................................................................
core: add GetDiskProfilesByStorageQosIdQuery This query retireves all disk profiles by qos id. Added to ProfilesDao as well. Change-Id: I6a8e675506cf698d6545a69c919220835fcb835c Signed-off-by: Gilad Chaplik <[email protected]> --- A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetDiskProfilesByStorageQosIdQuery.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/profiles/DiskProfileDaoDbFacadeImpl.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/profiles/ProfilesDao.java M backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/profiles/DiskProfileDaoTest.java M packaging/dbscripts/disk_profiles_sp.sql 6 files changed, 57 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/15/31815/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetDiskProfilesByStorageQosIdQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetDiskProfilesByStorageQosIdQuery.java new file mode 100644 index 0000000..3d1dfeb --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetDiskProfilesByStorageQosIdQuery.java @@ -0,0 +1,17 @@ +package org.ovirt.engine.core.bll; + +import org.ovirt.engine.core.common.queries.IdQueryParameters; + +public class GetDiskProfilesByStorageQosIdQuery extends QueriesCommandBase<IdQueryParameters> { + + public GetDiskProfilesByStorageQosIdQuery(IdQueryParameters parameters) { + super(parameters); + } + + @Override + protected void executeQueryCommand() { + getQueryReturnValue().setReturnValue(getDbFacade().getDiskProfileDao() + .getAllForQos(getParameters().getId())); + } + +} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java index de6fbe7..059791a 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java @@ -368,6 +368,7 @@ GetDiskProfileById, GetAllDiskProfiles, GetDiskProfilesByStorageDomainId, + GetDiskProfilesByStorageQosId, // Default type instead of having to null check Unknown(VdcQueryAuthType.User); diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/profiles/DiskProfileDaoDbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/profiles/DiskProfileDaoDbFacadeImpl.java index 5e3fa4a..6eb3e50 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/profiles/DiskProfileDaoDbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/profiles/DiskProfileDaoDbFacadeImpl.java @@ -30,6 +30,13 @@ } @Override + public List<DiskProfile> getAllForQos(Guid qosId) { + return getCallsHandler().executeReadList("GetDiskProfilesByQosId", + createEntityRowMapper(), + getCustomMapSqlParameterSource().addValue("qos_id", qosId)); + } + + @Override protected RowMapper<DiskProfile> createEntityRowMapper() { return MAPPER; } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/profiles/ProfilesDao.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/profiles/ProfilesDao.java index de9737c..51affc4 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/profiles/ProfilesDao.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/profiles/ProfilesDao.java @@ -1,10 +1,20 @@ package org.ovirt.engine.core.dao.profiles; +import java.util.List; + import org.ovirt.engine.core.common.businessentities.profiles.ProfileBase; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.GenericDao; public interface ProfilesDao<T extends ProfileBase> extends GenericDao<T, Guid> { + /** + * Retrieves all profiles associated with the given QoS id. + * + * @param qosId + * the QoS's ID + * @return the list of profiles + */ + List<T> getAllForQos(Guid qosId); } diff --git a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/profiles/DiskProfileDaoTest.java b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/profiles/DiskProfileDaoTest.java index 35caf37..5e04c3c 100644 --- a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/profiles/DiskProfileDaoTest.java +++ b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/profiles/DiskProfileDaoTest.java @@ -144,4 +144,14 @@ } assertEquals(isAllNull, allValues); } + + @Test + public void testGetByQos() { + List<DiskProfile> allForQos = dao.getAllForQos(FixturesTool.QOS_ID_1); + assertNotNull(allForQos); + assertEquals(2, allForQos.size()); + for (DiskProfile diskProfile : allForQos) { + assertEquals(FixturesTool.QOS_ID_1, diskProfile.getQosId()); + } + } } diff --git a/packaging/dbscripts/disk_profiles_sp.sql b/packaging/dbscripts/disk_profiles_sp.sql index 8bfbfab..aedf748 100644 --- a/packaging/dbscripts/disk_profiles_sp.sql +++ b/packaging/dbscripts/disk_profiles_sp.sql @@ -100,3 +100,15 @@ WHERE storage_domain_id = v_storage_domain_id; END; $procedure$ LANGUAGE plpgsql; + + +Create or replace FUNCTION GetDiskProfilesByQosId(v_qos_id UUID) +RETURNS SETOF disk_profiles STABLE + AS $procedure$ +BEGIN + + RETURN QUERY SELECT * + FROM disk_profiles + WHERE qos_id = v_qos_id; +END; $procedure$ +LANGUAGE plpgsql; -- To view, visit http://gerrit.ovirt.org/31815 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I6a8e675506cf698d6545a69c919220835fcb835c 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
