Mike Kolesnik has uploaded a new change for review. Change subject: engine: Added ability to query provider by name ......................................................................
engine: Added ability to query provider by name Provider should be nameable and query-able by it's name. Change-Id: If6188c6f0cc2c0e9f4dbb3eb366dbefefd50ec76 Signed-off-by: Mike Kolesnik <[email protected]> --- M backend/manager/dbscripts/network_providers_sp.sql M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Provider.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkProviderDao.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkProviderDaoDbFacadeImpl.java M backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkProviderDaoTest.java 5 files changed, 53 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/64/12364/1 diff --git a/backend/manager/dbscripts/network_providers_sp.sql b/backend/manager/dbscripts/network_providers_sp.sql index 4b41b73..5604ec4 100644 --- a/backend/manager/dbscripts/network_providers_sp.sql +++ b/backend/manager/dbscripts/network_providers_sp.sql @@ -90,3 +90,18 @@ END; $procedure$ LANGUAGE plpgsql; + + + + +Create or replace FUNCTION GetProviderByName(v_name VARCHAR) +RETURNS SETOF network_providers +AS $procedure$ +BEGIN + RETURN QUERY + SELECT * + FROM network_providers + WHERE name = v_name; +END; $procedure$ +LANGUAGE plpgsql; + diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Provider.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Provider.java index a34b837..3bd0707 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Provider.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Provider.java @@ -8,7 +8,7 @@ import org.ovirt.engine.core.common.validation.group.UpdateEntity; import org.ovirt.engine.core.compat.Guid; -public class Provider extends IVdcQueryable implements BusinessEntity<Guid> { +public class Provider extends IVdcQueryable implements BusinessEntity<Guid>, Nameable { private static final long serialVersionUID = 8279455368568715758L; @@ -24,6 +24,7 @@ @NotNull(message = "VALIDATION_URL_NULL", groups = { CreateEntity.class, UpdateEntity.class }) private String apiAddress; + @Override public String getName() { return name; } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkProviderDao.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkProviderDao.java index 651d23d..8892312 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkProviderDao.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkProviderDao.java @@ -6,4 +6,12 @@ public interface NetworkProviderDao extends GenericDao<Provider, Guid> { + /** + * Query for the provider by name. + * + * @param name + * The name of the provider. + * @return The provider, or <code>null</code> if not found. + */ + Provider getByName(String name); } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkProviderDaoDbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkProviderDaoDbFacadeImpl.java index 34c63f3..78d768a 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkProviderDaoDbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkProviderDaoDbFacadeImpl.java @@ -34,6 +34,13 @@ return NetworkProviderRowMapper.INSTANCE; } + @Override + public Provider getByName(String name) { + return getCallsHandler().executeRead("GetProviderByName", + createEntityRowMapper(), + getCustomMapSqlParameterSource().addValue("name", name)); + } + private static class NetworkProviderRowMapper implements ParameterizedRowMapper<Provider> { public final static NetworkProviderRowMapper INSTANCE = new NetworkProviderRowMapper(); diff --git a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkProviderDaoTest.java b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkProviderDaoTest.java index 4c5dac1..b01517b 100644 --- a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkProviderDaoTest.java +++ b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkProviderDaoTest.java @@ -1,10 +1,16 @@ package org.ovirt.engine.core.dao.network; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +import org.junit.Test; import org.ovirt.engine.core.common.businessentities.Provider; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.BaseGenericDaoTestCase; public class NetworkProviderDaoTest extends BaseGenericDaoTestCase<Guid, Provider, NetworkProviderDao> { + + private static final String PROVIDER_NAME = "provider"; @Override protected Provider generateNewEntity() { @@ -39,4 +45,19 @@ protected int getEneitiesTotalCount() { return 1; } + + @Test + public void getByName() throws Exception { + assertEquals(PROVIDER_NAME, dao.getByName(PROVIDER_NAME).getName()); + } + + @Test + public void getByNameCaseSensitive() throws Exception { + assertNull(dao.getByName(PROVIDER_NAME.toUpperCase())); + } + + @Test + public void getByNameNonExistant() throws Exception { + assertNull(dao.getByName(PROVIDER_NAME + PROVIDER_NAME)); + } } -- To view, visit http://gerrit.ovirt.org/12364 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: If6188c6f0cc2c0e9f4dbb3eb366dbefefd50ec76 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Mike Kolesnik <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
