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

Reply via email to