Sergey Gotliv has uploaded a new change for review.

Change subject: engine: Modify GetAllConnectableStorageConnections procedure 
and DAO
......................................................................

engine: Modify GetAllConnectableStorageConnections procedure and DAO

Allows to retrieve all connectable storage connections by storage type.
If storage type is not specified then API returns all connectable
storage connections exactly as it was before that change.

Change-Id: I9cea901ff2707bb4caa52e8f8eff06d533d5ddb6
Signed-off-by: Sergey Gotliv <sgot...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectHostToStoragePoolServerCommandBase.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetConnectableStorageServerConnectionsByStoragePoolIdQuery.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageServerConnectionCommandBase.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/AddStorageServerConnectionCommandTest.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAO.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAODbFacadeImpl.java
M 
backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/StorageServerConnectionDAOTest.java
M packaging/dbscripts/storages_san_sp.sql
8 files changed, 53 insertions(+), 16 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/97/24497/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectHostToStoragePoolServerCommandBase.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectHostToStoragePoolServerCommandBase.java
index a890c5d..cf042d5 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectHostToStoragePoolServerCommandBase.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectHostToStoragePoolServerCommandBase.java
@@ -26,7 +26,8 @@
     }
 
     protected void initConnectionList() {
-        _connections = 
DbFacade.getInstance().getStorageServerConnectionDao().getAllConnectableStorageSeverConnection(getStoragePool().getId());
+        _connections = DbFacade.getInstance().getStorageServerConnectionDao()
+                
.getConnectableStorageConnectionsByStorageType(getStoragePool().getId(), null);
         updateConnectionsTypeMap();
     }
 
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetConnectableStorageServerConnectionsByStoragePoolIdQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetConnectableStorageServerConnectionsByStoragePoolIdQuery.java
index 3c1b923..08fa420 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetConnectableStorageServerConnectionsByStoragePoolIdQuery.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetConnectableStorageServerConnectionsByStoragePoolIdQuery.java
@@ -13,6 +13,6 @@
     protected void executeQueryCommand() {
         getQueryReturnValue().setReturnValue(
                 getDbFacade().getStorageServerConnectionDao()
-                        
.getAllConnectableStorageSeverConnection(getParameters().getId()));
+                        
.getConnectableStorageConnectionsByStorageType(getParameters().getId(), null));
     }
 }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageServerConnectionCommandBase.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageServerConnectionCommandBase.java
index 7f75d88..675f302 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageServerConnectionCommandBase.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageServerConnectionCommandBase.java
@@ -71,7 +71,7 @@
         List<StorageServerConnections> connections = null;
         if (connection.getstorage_type() == StorageType.LOCALFS) {
             List<StorageServerConnections> connectionsForPool = storagePoolId 
== null ? Collections.<StorageServerConnections> emptyList() :
-                    
getStorageConnDao().getAllConnectableStorageSeverConnection(storagePoolId);
+                    
getStorageConnDao().getConnectableStorageConnectionsByStorageType(storagePoolId,
 null);
             List<StorageServerConnections> connectionsForPath = 
getStorageConnDao().getAllForStorage(connection.getconnection());
             connections = (List<StorageServerConnections>) 
CollectionUtils.intersection(connectionsForPool, connectionsForPath);
         }
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/AddStorageServerConnectionCommandTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/AddStorageServerConnectionCommandTest.java
index 398a979..1dcc72f 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/AddStorageServerConnectionCommandTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/AddStorageServerConnectionCommandTest.java
@@ -262,7 +262,7 @@
         Guid storagePoolId = Guid.newGuid();
         List<StorageServerConnections> connections = 
Collections.singletonList(existingConn);
 
-        
when(storageConnDao.getAllConnectableStorageSeverConnection(storagePoolId)).thenReturn(connections);
+        
when(storageConnDao.getConnectableStorageConnectionsByStorageType(storagePoolId,
 null)).thenReturn(connections);
         
when(storageConnDao.getAllForStorage(newLocalConnection.getconnection())).thenReturn(connections);
 
         boolean isExists = 
command.isConnWithSameDetailsExists(newLocalConnection, storagePoolId);
@@ -279,7 +279,8 @@
 
         List<StorageServerConnections> connections = 
Collections.singletonList(existingConn);
 
-        
when(storageConnDao.getAllConnectableStorageSeverConnection(existingLocalConnectionStoragePoolId)).thenReturn(connections);
+        
when(storageConnDao.getConnectableStorageConnectionsByStorageType(existingLocalConnectionStoragePoolId,
 null))
+                .thenReturn(connections);
         
when(storageConnDao.getAllForStorage(newLocalConnection.getconnection())).thenReturn(connections);
 
         boolean isExists = 
command.isConnWithSameDetailsExists(newLocalConnection, 
newLocalConnectionStoragePoolId);
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAO.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAO.java
index c122f0d..f61b40e 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAO.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAO.java
@@ -3,6 +3,7 @@
 import java.util.List;
 
 import org.ovirt.engine.core.common.businessentities.StorageServerConnections;
+import org.ovirt.engine.core.common.businessentities.StorageType;
 import org.ovirt.engine.core.compat.Guid;
 
 /**
@@ -47,13 +48,18 @@
     StorageServerConnections getForIqn(String iqn);
 
     /**
-     * Retrieves all connections of Active/Unknown/InActive domains in the 
specified storage pool.
+     * Retrieves all connections of Active/Unknown/InActive domains of the 
specified storage type
+     * in the specified storage pool. If storage type is not specified then 
all connections of the same
+     * domains are returned.
      *
      * @param pool
      *            the storage pool
+     * @param storageType
+     *            the storage type
+     *
      * @return the list of connections
      */
-    List<StorageServerConnections> 
getAllConnectableStorageSeverConnection(Guid pool);
+    List<StorageServerConnections> 
getConnectableStorageConnectionsByStorageType(Guid pool, StorageType 
storageType);
 
     /**
      * Retrieves all connections for the specified volume group.
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAODbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAODbFacadeImpl.java
index 392ae10..ec2166a 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAODbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAODbFacadeImpl.java
@@ -47,11 +47,13 @@
     }
 
     @Override
-    public List<StorageServerConnections> 
getAllConnectableStorageSeverConnection(Guid pool) {
-        return 
getCallsHandler().executeReadList("GetAllConnectableStorageSeverConnection",
+    public List<StorageServerConnections> 
getConnectableStorageConnectionsByStorageType(Guid pool,
+                                                                               
         StorageType storageType) {
+        return 
getCallsHandler().executeReadList("GetConnectableStorageConnectionsByStorageType",
                 mapper,
                 getCustomMapSqlParameterSource()
-                        .addValue("storage_pool_id", pool));
+                        .addValue("storage_pool_id", pool)
+                        .addValue("storage_type", (storageType != null) ? 
storageType.getValue() : null));
     }
 
     @Override
diff --git 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/StorageServerConnectionDAOTest.java
 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/StorageServerConnectionDAOTest.java
index 65a0ce7..77c99a0 100644
--- 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/StorageServerConnectionDAOTest.java
+++ 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/StorageServerConnectionDAOTest.java
@@ -81,7 +81,7 @@
      */
     @Test
     public void testgetAllConnectableStorageSeverConnectionWithNoConnections() 
{
-        List<StorageServerConnections> result = 
dao.getAllConnectableStorageSeverConnection(Guid.newGuid());
+        List<StorageServerConnections> result = 
dao.getConnectableStorageConnectionsByStorageType(Guid.newGuid(), null);
 
         assertNotNull(result);
         assertTrue(result.isEmpty());
@@ -91,13 +91,40 @@
      * Ensures that a set of records are returned.
      */
     @Test
-    public void testgetAllConnectableStorageSeverConnectionl() {
-        List<StorageServerConnections> result = 
dao.getAllConnectableStorageSeverConnection(EXISTING_STORAGE_POOL_ID);
+    public void testGetAllConnectableStorageSeverConnections() {
+        List<StorageServerConnections> result =
+                
dao.getConnectableStorageConnectionsByStorageType(EXISTING_STORAGE_POOL_ID, 
null);
 
         assertNotNull(result);
         assertFalse(result.isEmpty());
     }
 
+    @Test
+    public void testGetConnectableBlockStorageConnections() {
+        List<StorageServerConnections> conns =
+                
dao.getConnectableStorageConnectionsByStorageType(FixturesTool.STORAGE_POOL_RHEL6_ISCSI_OTHER,
 StorageType.ISCSI);
+
+        assertNotNull(conns);
+        assertEquals(2, conns.size());
+
+        for (StorageServerConnections conn : conns) {
+            assertEquals(StorageType.ISCSI, conn.getstorage_type());
+        }
+    }
+
+    @Test
+    public void testGetConnectableFileStorageConnectionsByStorageType() {
+        List<StorageServerConnections> conns =
+                
dao.getConnectableStorageConnectionsByStorageType(FixturesTool.STORAGE_POOL_NFS_2,
 StorageType.NFS);
+
+        assertNotNull(conns);
+        assertEquals(1, conns.size());
+
+        for (StorageServerConnections conn : conns) {
+            assertEquals(StorageType.NFS, conn.getstorage_type());
+        }
+    }
+
     /**
      * Retrieves all connections for the given volume group.
      *
diff --git a/packaging/dbscripts/storages_san_sp.sql 
b/packaging/dbscripts/storages_san_sp.sql
index ffc09c4..b9444fe 100644
--- a/packaging/dbscripts/storages_san_sp.sql
+++ b/packaging/dbscripts/storages_san_sp.sql
@@ -531,7 +531,7 @@
 
 
 
-Create or replace FUNCTION 
GetAllConnectableStorageSeverConnection(v_storage_pool_id UUID)
+Create or replace FUNCTION 
GetConnectableStorageConnectionsByStorageType(v_storage_pool_id UUID, 
v_storage_type integer)
 RETURNS SETOF storage_server_connections STABLE
    AS $procedure$
 BEGIN
@@ -541,12 +541,12 @@
    INNER JOIN  LUNs ON LUN_storage_server_connection_map.LUN_id = LUNs.LUN_id
    INNER JOIN  storage_domains ON LUNs.volume_group_id = 
storage_domains.storage
    INNER JOIN  storage_server_connections ON 
LUN_storage_server_connection_map.storage_server_connection = 
storage_server_connections.id
-   WHERE     (storage_domains.storage_pool_id = v_storage_pool_id  and 
storage_domains.status in(0,3,4))
+   WHERE     (storage_domains.storage_pool_id = v_storage_pool_id  and 
storage_domains.status in(0,3,4) and (v_storage_type is NULL or 
storage_domains.storage_type = v_storage_type))
    UNION
    SELECT distinct storage_server_connections.*
    FROM         storage_server_connections
    INNER JOIN  storage_domains ON storage_server_connections.id = 
storage_domains.storage
-   WHERE     (storage_domains.storage_pool_id = v_storage_pool_id and 
storage_domains.status in(0,3,4));
+   WHERE     (storage_domains.storage_pool_id = v_storage_pool_id and 
storage_domains.status in(0,3,4) and (v_storage_type is NULL or 
storage_domains.storage_type = v_storage_type));
 END; $procedure$
 LANGUAGE plpgsql;
 


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I9cea901ff2707bb4caa52e8f8eff06d533d5ddb6
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Sergey Gotliv <sgot...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to