Moti Asayag has uploaded a new change for review.

Change subject: core,engine: Add NetworkView entity
......................................................................

core,engine: Add NetworkView entity

The NetworkView entity represents a view over the network with partial
information of its data-center.

It will serve the search engine to fetch the required information when
searching for network entities.

Change-Id: I60d5473347642ed7d96c89accd675977dd86e017
Bug-Url: https://bugzilla.redhat.com/858742
Signed-off-by: Moti Asayag <masa...@redhat.com>
---
M backend/manager/dbscripts/create_views.sql
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/NetworkView.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/DbFacade.java
A 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/NetworkViewDao.java
A 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/NetworkViewDaoDbFacadeImpl.java
M backend/manager/modules/dal/src/main/jdbc-resources/engine-daos.properties
M 
backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/FixturesTool.java
A 
backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/NetworkViewDaoTest.java
M 
frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
9 files changed, 221 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/52/8652/1

diff --git a/backend/manager/dbscripts/create_views.sql 
b/backend/manager/dbscripts/create_views.sql
index 8fd50b5..180f9fc 100644
--- a/backend/manager/dbscripts/create_views.sql
+++ b/backend/manager/dbscripts/create_views.sql
@@ -1036,6 +1036,28 @@
 AND  q_limit.storage_id IS NULL
 AND  vds_groups.vds_group_id = q_limit.vds_group_id;
 
+----------------------------------------------
+-- Network
+----------------------------------------------
+
+CREATE OR REPLACE VIEW network_view
+AS
+SELECT network.id AS network_id,
+   network.name AS network_name,
+   network.description AS network_description,
+   network.type AS network_type,
+   network.addr AS addr,
+   network.subnet AS subnet,
+   network.gateway AS gateway,
+   network.vlan_id AS vlan_id,
+   network.stp AS stp,
+   network.mtu AS mtu,
+   network.vm_network AS vm_network,
+   network.storage_pool_id AS storage_pool_id,
+   storage_pool.name AS storage_pool_name,
+   storage_pool.compatibility_version AS compatibility_version
+FROM network
+INNER JOIN storage_pool ON network.storage_pool_id = storage_pool.id;
 
 ----------------------------------------------
 -- Query Permissions
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/NetworkView.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/NetworkView.java
new file mode 100644
index 0000000..cebdb5d
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/NetworkView.java
@@ -0,0 +1,89 @@
+package org.ovirt.engine.core.common.businessentities;
+
+import java.io.Serializable;
+
+import org.ovirt.engine.core.compat.Version;
+
+public class NetworkView extends IVdcQueryable implements Serializable {
+
+    private static final long serialVersionUID = 7541192304006710467L;
+
+    private Network network;
+    private String storagePoolName;
+    private Version compatibilityVersion;
+
+    @Override
+    public Object getQueryableId() {
+        return network.getQueryableId();
+    }
+
+    public Network getNetwork() {
+        return network;
+    }
+
+    public void setNetwork(Network network) {
+        this.network = network;
+    }
+
+    public String getStoragePoolName() {
+        return storagePoolName;
+    }
+
+    public void setStoragePoolName(String storagePoolName) {
+        this.storagePoolName = storagePoolName;
+    }
+
+    public Version getCompatibilityVersion() {
+        return compatibilityVersion;
+    }
+
+    public void setCompatabilityVersion(Version compatibilityVersion) {
+        this.compatibilityVersion = compatibilityVersion;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((compatibilityVersion == null) ? 0 : 
compatibilityVersion.hashCode());
+        result = prime * result + ((network == null) ? 0 : network.hashCode());
+        result = prime * result + ((storagePoolName == null) ? 0 : 
storagePoolName.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null) {
+            return false;
+        }
+        if (getClass() != obj.getClass()) {
+            return false;
+        }
+        NetworkView other = (NetworkView) obj;
+        if (compatibilityVersion == null) {
+            if (other.compatibilityVersion != null) {
+                return false;
+            }
+        } else if (!compatibilityVersion.equals(other.compatibilityVersion)) {
+            return false;
+        }
+        if (network == null) {
+            if (other.network != null) {
+                return false;
+            }
+        } else if (!network.equals(other.network)) {
+            return false;
+        }
+        if (storagePoolName == null) {
+            if (other.storagePoolName != null) {
+                return false;
+            }
+        } else if (!storagePoolName.equals(other.storagePoolName)) {
+            return false;
+        }
+        return true;
+    }
+}
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/DbFacade.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/DbFacade.java
index edb3d12..787b238 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/DbFacade.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/DbFacade.java
@@ -16,6 +16,8 @@
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.DiskImageDynamic;
 import org.ovirt.engine.core.common.businessentities.Image;
+import org.ovirt.engine.core.common.businessentities.Network;
+import org.ovirt.engine.core.common.businessentities.Role;
 import org.ovirt.engine.core.common.businessentities.Snapshot;
 import org.ovirt.engine.core.common.businessentities.StorageDomainStatus;
 import org.ovirt.engine.core.common.businessentities.StorageDomainType;
@@ -30,9 +32,7 @@
 import org.ovirt.engine.core.common.businessentities.VmStatistics;
 import org.ovirt.engine.core.common.businessentities.VmTemplate;
 import org.ovirt.engine.core.common.businessentities.image_storage_domain_map;
-import org.ovirt.engine.core.common.businessentities.Network;
 import org.ovirt.engine.core.common.businessentities.permissions;
-import org.ovirt.engine.core.common.businessentities.Role;
 import org.ovirt.engine.core.common.businessentities.storage_domain_dynamic;
 import org.ovirt.engine.core.common.businessentities.storage_domain_static;
 import org.ovirt.engine.core.common.businessentities.storage_domains;
@@ -66,6 +66,7 @@
 import org.ovirt.engine.core.dao.LunDAO;
 import org.ovirt.engine.core.dao.NetworkClusterDAO;
 import org.ovirt.engine.core.dao.NetworkDAO;
+import org.ovirt.engine.core.dao.NetworkViewDao;
 import org.ovirt.engine.core.dao.PermissionDAO;
 import org.ovirt.engine.core.dao.QuotaDAO;
 import org.ovirt.engine.core.dao.RepoFileMetaDataDAO;
@@ -633,6 +634,15 @@
     }
 
     /**
+     * Returns the singleton instance of {@link NetworkViewDao}.
+     *
+     * @return the dao
+     */
+    public NetworkViewDao getNetworkViewDao() {
+        return getDao(NetworkViewDao.class);
+    }
+
+    /**
      * Returns the singleton instance of {@link NetworkClusterDAO}.
      *
      * @return the dao
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/NetworkViewDao.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/NetworkViewDao.java
new file mode 100644
index 0000000..44e2a3a
--- /dev/null
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/NetworkViewDao.java
@@ -0,0 +1,11 @@
+package org.ovirt.engine.core.dao;
+
+import org.ovirt.engine.core.common.businessentities.NetworkView;
+
+/**
+ * <code>NetworkViewDao</code> defines a type for performing Search queries on 
instances of {@link NetworkView}.
+ *
+ *
+ */
+public interface NetworkViewDao extends DAO, SearchDAO<NetworkView> {
+}
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/NetworkViewDaoDbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/NetworkViewDaoDbFacadeImpl.java
new file mode 100644
index 0000000..ed30984
--- /dev/null
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/NetworkViewDaoDbFacadeImpl.java
@@ -0,0 +1,50 @@
+package org.ovirt.engine.core.dao;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.List;
+
+import org.ovirt.engine.core.common.businessentities.Network;
+import org.ovirt.engine.core.common.businessentities.NetworkView;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.compat.NGuid;
+import org.ovirt.engine.core.compat.Version;
+import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
+import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
+
+/**
+ * <code>NetworkViewDaoDbFacadeImpl</code> provides a concrete implementation 
of {@link #NetworViewkDao}.
+ */
+public class NetworkViewDaoDbFacadeImpl extends BaseDAODbFacade implements 
NetworkViewDao {
+
+    @Override
+    public List<NetworkView> getAllWithQuery(String query) {
+        return new SimpleJdbcTemplate(jdbcTemplate).query(query, 
NetworkViewRowMapper.instance);
+    }
+
+    private static class NetworkViewRowMapper implements 
ParameterizedRowMapper<NetworkView> {
+        public final static NetworkViewRowMapper instance = new 
NetworkViewRowMapper();
+
+        @Override
+        public NetworkView mapRow(ResultSet rs, int rowNum) throws 
SQLException {
+            NetworkView entity = new NetworkView();
+            Network network = new Network();
+            
network.setId(Guid.createGuidFromString(rs.getString("network_id")));
+            network.setname(rs.getString("network_name"));
+            network.setdescription(rs.getString("network_description"));
+            network.settype((Integer) rs.getObject("network_type"));
+            network.setaddr(rs.getString("addr"));
+            network.setsubnet(rs.getString("subnet"));
+            network.setgateway(rs.getString("gateway"));
+            network.setvlan_id((Integer) rs.getObject("vlan_id"));
+            network.setstp(rs.getBoolean("stp"));
+            
network.setstorage_pool_id(NGuid.createGuidFromString(rs.getString("storage_pool_id")));
+            network.setMtu(rs.getInt("mtu"));
+            network.setVmNetwork(rs.getBoolean("vm_network"));
+            entity.setNetwork(network);
+            entity.setStoragePoolName(rs.getString("storage_pool_name"));
+            entity.setCompatabilityVersion(new 
Version(rs.getString("compatibility_version")));
+            return entity;
+        }
+    }
+}
diff --git 
a/backend/manager/modules/dal/src/main/jdbc-resources/engine-daos.properties 
b/backend/manager/modules/dal/src/main/jdbc-resources/engine-daos.properties
index 48871ee..bf00603 100644
--- a/backend/manager/modules/dal/src/main/jdbc-resources/engine-daos.properties
+++ b/backend/manager/modules/dal/src/main/jdbc-resources/engine-daos.properties
@@ -55,3 +55,4 @@
 GlusterBrickDao=org.ovirt.engine.core.dao.gluster.GlusterBrickDaoDbFacadeImpl
 GlusterOptionDao=org.ovirt.engine.core.dao.gluster.GlusterOptionDaoDbFacadeImpl
 
ImageStorageDomainMapDao=org.ovirt.engine.core.dao.ImageStorageDomainMapDaoDbFacadeImpl
+NetworkViewDao=org.ovirt.engine.core.dao.NetworkViewDaoDbFacadeImpl
diff --git 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/FixturesTool.java
 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/FixturesTool.java
index a52138b..792f19e 100644
--- 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/FixturesTool.java
+++ 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/FixturesTool.java
@@ -199,4 +199,9 @@
      * EXISTING_STORAGE_CONNECTION_ID
      */
     protected static final Guid EXISTING_DOMAIN_ID_FOR_CONNECTION_ID = new 
Guid("c2211b56-8869-41cd-84e1-78d7cb96f31d");
+
+    /**
+     * ID of an existing network
+     */
+    protected static final Guid EXISTING_NETWORK_ID = new 
Guid("58d5c1c6-cb15-4832-b2a4-023770607188");
 }
diff --git 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/NetworkViewDaoTest.java
 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/NetworkViewDaoTest.java
new file mode 100644
index 0000000..4bf5f2c
--- /dev/null
+++ 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/NetworkViewDaoTest.java
@@ -0,0 +1,30 @@
+package org.ovirt.engine.core.dao;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.List;
+
+import org.junit.Test;
+import org.ovirt.engine.core.common.businessentities.NetworkView;
+
+public class NetworkViewDaoTest extends BaseDAOTestCase {
+    private NetworkViewDao dao;
+
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+        dao = prepareDAO(dbFacade.getNetworkViewDao());
+    }
+
+    /**
+     * Test query
+     */
+    @Test
+    public void testGetAllWithQuery() {
+        List<NetworkView> result =
+                dao.getAllWithQuery(String.format("SELECT * FROM network_view 
where network_id = '%s'",
+                        FixturesTool.EXISTING_NETWORK_ID));
+
+        assertEquals(FixturesTool.EXISTING_NETWORK_ID, 
result.get(0).getNetwork().getId());
+    }
+}
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
 
b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
index c7f16d3..1dfbc15 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
@@ -56,6 +56,7 @@
                <include name="common/businessentities/network_cluster.java" />
                <include name="common/businessentities/NetworkClusterId.java" />
                <include name="common/businessentities/Network.java" />
+        <include name="common/businessentities/NetworkView.java" />            
                <include 
name="common/businessentities/NetworkBootProtocol.java" />
                <include name="common/businessentities/NetworkInterface.java" />
                <include name="common/businessentities/NetworkStatistics.java" 
/>


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

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

Reply via email to