ofri masad has uploaded a new change for review.

Change subject: core: Add QoS to to DB and entities
......................................................................

core: Add QoS to to DB and entities

Add the QoS entity to the DB and business entities.

see: http://wiki.ovirt.org/Features/Design/Network_QoS

Change-Id: If39d20b77d06165e4adcc27e6b6dc5458cac93d3
Bug-Url: https://bugzilla.redhat.com/514420
Signed-off-by: Ofri Masad <oma...@redhat.com>
---
A backend/manager/dbscripts/network_qos_sp
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkQoS.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/network/NetworkQoSDao.java
A 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkQoSDaoImpl.java
M backend/manager/modules/dal/src/main/jdbc-resources/engine-daos.properties
A 
backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkQosDaoTest.java
M backend/manager/modules/dal/src/test/resources/fixtures.xml
M packaging/dbscripts/create_tables.sql
9 files changed, 519 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/94/16294/1

diff --git a/backend/manager/dbscripts/network_qos_sp 
b/backend/manager/dbscripts/network_qos_sp
new file mode 100644
index 0000000..9de65a5
--- /dev/null
+++ b/backend/manager/dbscripts/network_qos_sp
@@ -0,0 +1,79 @@
+----------------------------------------------------------------
+-- [network_qos] Table
+----------------------------------------------------------------
+
+Create or replace FUNCTION insert_network_qos(v_id uuid,
+  v_name VARCHAR(50),
+  v_storage_pool_id uuid,
+  v_inbound_average INTEGER,
+  v_inbound_peak INTEGER,
+  v_inbound_burst INTEGER,
+  v_outbound_average INTEGER,
+  v_outbound_peak INTEGER,
+  v_outbound_burst INTEGER)
+RETURNS VOID
+   AS $procedure$
+BEGIN
+INSERT INTO network_qos(id, name, storage_pool_id, inbound_average, 
inbound_peak, inbound_burst, outbound_average, outbound_peak, outbound_burst)
+       VALUES(v_id, v_name, v_storage_pool_id, v_inbound_average, 
v_inbound_peak, v_inbound_burst, v_outbound_average, v_outbound_peak, 
v_outbound_burst);
+END; $procedure$
+LANGUAGE plpgsql;
+
+
+Create or replace FUNCTION update_network_qos(v_id uuid,
+  v_name VARCHAR(50),
+  v_storage_pool_id uuid,
+  v_inbound_average INTEGER,
+  v_inbound_peak INTEGER,
+  v_inbound_burst INTEGER,
+  v_outbound_average INTEGER,
+  v_outbound_peak INTEGER,
+  v_outbound_burst INTEGER)
+RETURNS VOID
+   AS $procedure$
+BEGIN
+      UPDATE network_qos
+      SET name = v_name, storage_pool_id = v_storage_pool_id, inbound_average 
= v_inbound_average, inbound_peak = v_inbound_peak, inbound_burst = 
v_inbound_burst,
+      outbound_average = v_outbound_average, outbound_peak = v_outbound_peak, 
outbound_burst = v_outbound_burst, _update_date = LOCALTIMESTAMP
+      WHERE id = v_id;
+END; $procedure$
+LANGUAGE plpgsql;
+
+
+Create or replace FUNCTION delete_network_qos(v_id UUID) RETURNS VOID
+   AS $procedure$
+BEGIN
+   DELETE FROM network_qos
+   WHERE id = v_id;
+END; $procedure$
+LANGUAGE plpgsql;
+
+
+
+Create or replace FUNCTION get_all_network_qos() RETURNS SETOF network_qos
+   AS $procedure$
+BEGIN
+   RETURN QUERY SELECT *
+   FROM network_qos;
+END; $procedure$
+LANGUAGE plpgsql;
+
+
+Create or replace FUNCTION get_network_qos_by_id(v_id UUID) RETURNS SETOF 
network_qos
+   AS $procedure$
+BEGIN
+RETURN QUERY SELECT *
+   FROM network_qos
+   WHERE id = v_id;
+END; $procedure$
+LANGUAGE plpgsql;
+
+
+Create or replace FUNCTION 
get_all_network_qos_for_storage_pool(v_storage_pool_id UUID) RETURNS SETOF 
network_qos
+   AS $procedure$
+BEGIN
+RETURN QUERY SELECT *
+   FROM network_qos
+   WHERE storage_pool_id = v_storage_pool_id;
+END; $procedure$
+LANGUAGE plpgsql;
\ No newline at end of file
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkQoS.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkQoS.java
new file mode 100644
index 0000000..73fbf0f
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkQoS.java
@@ -0,0 +1,140 @@
+package org.ovirt.engine.core.common.businessentities.network;
+
+
+import org.ovirt.engine.core.common.businessentities.BusinessEntity;
+import org.ovirt.engine.core.common.businessentities.IVdcQueryable;
+import org.ovirt.engine.core.common.utils.ObjectUtils;
+import org.ovirt.engine.core.compat.Guid;
+
+import java.io.Serializable;
+
+public class NetworkQoS extends IVdcQueryable implements Serializable, 
BusinessEntity<Guid> {
+
+    private String name;
+    private Guid storagePoolId;
+    private Integer inboundAverage;
+    private Integer inboundPeak;
+    private Integer inboundBurst;
+    private Integer outboundAverage;
+    private Integer outboundPeak;
+    private Integer outboundBurst;
+
+    private Guid id;
+
+
+    @Override
+    public Guid getId() {
+        return id;
+    }
+
+    @Override
+    public void setId(Guid id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Guid getStoragePoolId() {
+        return storagePoolId;
+    }
+
+    public void setStoragePoolId(Guid storagePoolId) {
+        this.storagePoolId = storagePoolId;
+    }
+
+    public Integer getInboundAverage() {
+        return inboundAverage;
+    }
+
+    public void setInboundAverage(Integer inboundAverage) {
+        this.inboundAverage = inboundAverage;
+    }
+
+    public Integer getInboundPeak() {
+        return inboundPeak;
+    }
+
+    public void setInboundPeak(Integer inboundPeak) {
+        this.inboundPeak = inboundPeak;
+    }
+
+    public Integer getInboundBurst() {
+        return inboundBurst;
+    }
+
+    public void setInboundBurst(Integer inboundBurst) {
+        this.inboundBurst = inboundBurst;
+    }
+
+    public Integer getOutboundAverage() {
+        return outboundAverage;
+    }
+
+    public void setOutboundAverage(Integer outboundAverage) {
+        this.outboundAverage = outboundAverage;
+    }
+
+    public Integer getOutboundPeak() {
+        return outboundPeak;
+    }
+
+    public void setOutboundPeak(Integer outboundPeak) {
+        this.outboundPeak = outboundPeak;
+    }
+
+    public Integer getOutboundBurst() {
+        return outboundBurst;
+    }
+
+    public void setOutboundBurst(Integer outboundBurst) {
+        this.outboundBurst = outboundBurst;
+    }
+
+    public boolean equalValues(NetworkQoS other) {
+        return ObjectUtils.objectsEqual(this.getInboundAverage(), 
other.getInboundAverage())
+                && ObjectUtils.objectsEqual(this.getInboundPeak(), 
other.getInboundPeak())
+                && ObjectUtils.objectsEqual(this.getInboundBurst(), 
other.getInboundBurst())
+                && ObjectUtils.objectsEqual(this.getOutboundAverage(), 
other.getOutboundAverage())
+                && ObjectUtils.objectsEqual(this.getOutboundPeak(), 
other.getOutboundPeak())
+                && ObjectUtils.objectsEqual(this.getOutboundBurst(), 
other.getOutboundBurst());
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null) {
+            return false;
+        }
+        if (!(o instanceof NetworkQoS)) {
+            return false;
+        }
+        NetworkQoS other = (NetworkQoS) o;
+        return ObjectUtils.objectsEqual(this.getName(), other.getName())
+                && ObjectUtils.objectsEqual(this.getStoragePoolId(), 
other.getStoragePoolId())
+                && equalValues(other);
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((id == null) ? 0 : id.hashCode());
+        result = prime * result + ((name == null) ? 0 : name.hashCode());
+        result = prime * result + ((storagePoolId == null) ? 0 : 
storagePoolId.hashCode());
+        result = prime * result + ((inboundAverage == null) ? 0 : 
inboundAverage.hashCode());
+        result = prime * result + ((inboundPeak == null) ? 0 : 
inboundPeak.hashCode());
+        result = prime * result + ((inboundBurst == null) ? 0 : 
inboundBurst.hashCode());
+        result = prime * result + ((outboundAverage == null) ? 0 : 
outboundAverage.hashCode());
+        result = prime * result + ((outboundPeak == null) ? 0 : 
outboundPeak.hashCode());
+        result = prime * result + ((outboundBurst == null) ? 0 : 
outboundBurst.hashCode());
+        return result;
+    }
+}
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 5e09d79..87e3897 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
@@ -105,6 +105,7 @@
 import org.ovirt.engine.core.dao.network.InterfaceDao;
 import org.ovirt.engine.core.dao.network.NetworkClusterDao;
 import org.ovirt.engine.core.dao.network.NetworkDao;
+import org.ovirt.engine.core.dao.network.NetworkQoSDao;
 import org.ovirt.engine.core.dao.network.NetworkViewDao;
 import org.ovirt.engine.core.dao.network.VmNetworkInterfaceDao;
 import org.ovirt.engine.core.dao.network.VmNetworkStatisticsDao;
@@ -963,4 +964,8 @@
     public VmGuestAgentInterfaceDao getVmGuestAgentInterfaceDao() {
         return getDao(VmGuestAgentInterfaceDao.class);
     }
+
+    public NetworkQoSDao getQosDao() {
+        return getDao(NetworkQoSDao.class);
+    }
 }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkQoSDao.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkQoSDao.java
new file mode 100644
index 0000000..ffe0f92
--- /dev/null
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkQoSDao.java
@@ -0,0 +1,12 @@
+package org.ovirt.engine.core.dao.network;
+
+import org.ovirt.engine.core.common.businessentities.network.NetworkQoS;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.dao.GenericDao;
+
+import java.util.List;
+
+public interface NetworkQoSDao extends GenericDao<NetworkQoS, Guid> {
+
+    public List<NetworkQoS> getAllForStoragePoolId(Guid storagePoolId);
+}
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkQoSDaoImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkQoSDaoImpl.java
new file mode 100644
index 0000000..47d07da
--- /dev/null
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkQoSDaoImpl.java
@@ -0,0 +1,91 @@
+package org.ovirt.engine.core.dao.network;
+
+import org.ovirt.engine.core.common.businessentities.network.NetworkQoS;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.dao.BaseDAODbFacade;
+import org.springframework.jdbc.core.RowMapper;
+import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.List;
+
+public class NetworkQoSDaoImpl extends BaseDAODbFacade implements 
NetworkQoSDao {
+
+    protected static final RowMapper<NetworkQoS> mapper =
+            new RowMapper<NetworkQoS>() {
+                @Override
+                public NetworkQoS mapRow(ResultSet rs, int rowNum)
+                        throws SQLException {
+                    NetworkQoS entity = new NetworkQoS();
+                    
entity.setId(Guid.createGuidFromString(rs.getString("id")));
+                    entity.setName(rs.getString("name"));
+                    
entity.setStoragePoolId(Guid.createGuidFromString(rs.getString("storage_pool_id")));
+                    entity.setInboundAverage(rs.getInt("inbound_average"));
+                    entity.setInboundPeak(rs.getInt("inbound_peak"));
+                    entity.setInboundBurst(rs.getInt("inbound_burst"));
+                    entity.setOutboundAverage(rs.getInt("outbound_average"));
+                    entity.setOutboundPeak(rs.getInt("outbound_peak"));
+                    entity.setOutboundBurst(rs.getInt("outbound_burst"));
+                    return entity;
+                }
+            };
+
+
+    @Override
+    public NetworkQoS get(Guid id) {
+        MapSqlParameterSource parameterSource = 
getCustomMapSqlParameterSource().addValue("id", id.getUuid());
+        return getCallsHandler().executeRead("Get_network_qos_by_id", mapper, 
parameterSource);
+    }
+
+    @Override
+    public void save(NetworkQoS networkQoS) {
+        MapSqlParameterSource parameterSource = 
getCustomMapSqlParameterSource()
+                .addValue("id", networkQoS.getId())
+                .addValue("name", networkQoS.getName())
+                .addValue("storage_pool_id", networkQoS.getStoragePoolId())
+                .addValue("inbound_average", networkQoS.getInboundAverage())
+                .addValue("inbound_peak", networkQoS.getInboundPeak())
+                .addValue("inbound_burst", networkQoS.getInboundBurst())
+                .addValue("outbound_average", networkQoS.getOutboundAverage())
+                .addValue("outbound_peak", networkQoS.getOutboundPeak())
+                .addValue("outbound_burst", networkQoS.getOutboundBurst());
+
+        getCallsHandler().executeModification("Insert_network_qos", 
parameterSource);
+    }
+
+    @Override
+    public void update(NetworkQoS networkQoS) {
+        MapSqlParameterSource parameterSource = 
getCustomMapSqlParameterSource()
+                .addValue("id", networkQoS.getId())
+                .addValue("name", networkQoS.getName())
+                .addValue("storage_pool_id", networkQoS.getStoragePoolId())
+                .addValue("inbound_average", networkQoS.getInboundAverage())
+                .addValue("inbound_peak", networkQoS.getInboundPeak())
+                .addValue("inbound_burst", networkQoS.getInboundBurst())
+                .addValue("outbound_average", networkQoS.getOutboundAverage())
+                .addValue("outbound_peak", networkQoS.getOutboundPeak())
+                .addValue("outbound_burst", networkQoS.getOutboundBurst());
+
+        getCallsHandler().executeModification("Update_network_qos", 
parameterSource);
+    }
+
+    @Override
+    public void remove(Guid id) {
+        MapSqlParameterSource parameterSource = 
getCustomMapSqlParameterSource()
+                .addValue("id", id);
+
+        getCallsHandler().executeModification("Delete_network_qos", 
parameterSource);
+    }
+
+    @Override
+    public List<NetworkQoS> getAll() {
+        return getCallsHandler().executeReadList("Get_all_network_qos", 
mapper, getCustomMapSqlParameterSource());
+    }
+
+    @Override
+    public List<NetworkQoS> getAllForStoragePoolId(Guid storagePoolId) {
+        return 
getCallsHandler().executeReadList("Get_all_network_qos_for_storage_pool", 
mapper,
+                getCustomMapSqlParameterSource().addValue("storage_pool_id", 
storagePoolId));
+    }
+}
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 29c73d8..163fc2c 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
@@ -63,3 +63,4 @@
 
GlusterServerServiceDao=org.ovirt.engine.core.dao.gluster.GlusterServerServiceDaoDbFacadeImpl
 
GlusterClusterServiceDao=org.ovirt.engine.core.dao.gluster.GlusterClusterServiceDaoDbFacadeImpl
 GlusterServerDao=org.ovirt.engine.core.dao.gluster.GlusterServerDaoDbFacadeImpl
+NetworkQoSDao=org.ovirt.engine.core.dao.network.NetworkQoSDaoImpl
diff --git 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkQosDaoTest.java
 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkQosDaoTest.java
new file mode 100644
index 0000000..34be347
--- /dev/null
+++ 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkQosDaoTest.java
@@ -0,0 +1,123 @@
+package org.ovirt.engine.core.dao.network;
+
+import org.junit.Test;
+import org.ovirt.engine.core.common.businessentities.network.NetworkQoS;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.dao.BaseDAOTestCase;
+import org.ovirt.engine.core.dao.FixturesTool;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+public class NetworkQosDaoTest extends BaseDAOTestCase {
+
+    private NetworkQoSDao dao = getDbFacade().getQosDao();
+
+    private static final Guid qosAId = 
Guid.createGuidFromString("ae956031-6be2-43d6-bb90-5191c9253314");
+    private static final Guid qosBId = 
Guid.createGuidFromString("ae956031-6be2-43d6-bb90-5191c9253315");
+    private static final Guid qosCId = 
Guid.createGuidFromString("ae956031-6be2-43d6-bb90-5191c9253316");
+    private static final Guid qosDId = 
Guid.createGuidFromString("ae956031-6be2-43d6-bb90-5191c9253317");
+
+
+    /**
+     * Ensures that retrieving with an invalid ID returns null.
+     */
+    @Test
+    public void testGetWithInvalidId() {
+        NetworkQoS result = dao.get(Guid.newGuid());
+
+        assertNull(result);
+    }
+
+    /**
+     * Ensures that retrieving VDS by ID works as expected.
+     */
+    @Test
+    public void testGetNetworkQos() {
+        NetworkQoS result = dao.get(qosAId);
+        NetworkQoS trueA = new NetworkQoS();
+        trueA.setId(qosAId);
+        trueA.setName("qos_a");
+        trueA.setStoragePoolId(FixturesTool.STORAGE_POOL_NFS_2);
+        trueA.setInboundAverage(1000);
+        trueA.setInboundPeak(2000);
+        trueA.setInboundBurst(500);
+        trueA.setOutboundAverage(1000);
+        trueA.setOutboundPeak(2000);
+        trueA.setOutboundBurst(500);
+
+        assertNotNull(result);
+        assertTrue(trueA.equals(result));
+    }
+
+    /**
+     * Test getAll
+     */
+    @Test
+    public void testGetAllNetworkQos() {
+        assertTrue(dao.getAll().size() == 3);
+    }
+
+    /**
+     * test update
+     */
+    @Test
+    public void testUpdateNetworkQos() {
+        NetworkQoS newB = new NetworkQoS();
+        newB.setId(qosBId);
+        newB.setName("newB");
+        newB.setStoragePoolId(FixturesTool.STORAGE_POOL_NFS_2);
+        newB.setInboundAverage(30);
+        newB.setInboundPeak(30);
+        newB.setInboundBurst(30);
+        newB.setOutboundAverage(30);
+        newB.setOutboundPeak(30);
+        newB.setOutboundBurst(30);
+
+        dao.update(newB);
+
+        NetworkQoS afterUpdate = dao.get(qosBId);
+        assertTrue(newB.equals(afterUpdate));
+    }
+
+    /**
+     * test remove
+     */
+    @Test
+    public void testRemoveNetworkQos() {
+        dao.remove(qosCId);
+        NetworkQoS afterRemove = dao.get(qosCId);
+        assertNull(afterRemove);
+    }
+
+    /**
+     * test save
+     */
+    @Test
+    public void testSaveNetworkQos() {
+        NetworkQoS qosD = new NetworkQoS();
+        qosD.setId(qosDId);
+        qosD.setName("qos_d");
+        qosD.setStoragePoolId(FixturesTool.STORAGE_POOL_NFS_2);
+        qosD.setInboundAverage(200);
+        qosD.setInboundPeak(200);
+        qosD.setInboundBurst(200);
+        qosD.setOutboundAverage(200);
+        qosD.setOutboundPeak(200);
+        qosD.setOutboundBurst(200);
+
+        dao.save(qosD);
+        NetworkQoS returnedD = dao.get(qosDId);
+        assertTrue(qosD.equals(returnedD));
+    }
+
+    /**
+     * Test getAllForStoragePool
+     */
+    @Test
+    public void testGetAllNetworkQosForStoragePool() {
+        
assertTrue(dao.getAllForStoragePoolId(FixturesTool.STORAGE_POOL_NFS_2).size() 
== 2);
+    }
+
+}
diff --git a/backend/manager/modules/dal/src/test/resources/fixtures.xml 
b/backend/manager/modules/dal/src/test/resources/fixtures.xml
index c020b0b..09fc19d 100644
--- a/backend/manager/modules/dal/src/test/resources/fixtures.xml
+++ b/backend/manager/modules/dal/src/test/resources/fixtures.xml
@@ -5272,4 +5272,49 @@
             <value>2012-12-31 11:54:27</value>
         </row>
     </table>
+
+       <table name="network_qos">
+               <column>id</column>
+               <column>name</column>
+               <column>storage_pool_id</column>
+               <column>inbound_average</column>
+               <column>inbound_peak</column>
+               <column>inbound_burst</column>
+               <column>outbound_average</column>
+               <column>outbound_peak</column>
+               <column>outbound_burst</column>
+               <row>
+                       <value>ae956031-6be2-43d6-bb90-5191c9253314</value>
+                       <value>qos_a</value>
+                       <value>386bffd1-e7ed-4b08-bce9-d7df10f8c9a0</value>
+                       <value>1000</value>
+                       <value>2000</value>
+                       <value>500</value>
+                       <value>1000</value>
+                       <value>2000</value>
+                       <value>500</value>
+               </row>
+               <row>
+                       <value>ae956031-6be2-43d6-bb90-5191c9253315</value>
+                       <value>qos_b</value>
+                       <value>386bffd1-e7ed-4b08-bce9-d7df10f8c9a0</value>
+                       <value>1200</value>
+                       <value>2400</value>
+                       <value>500</value>
+                       <value>1200</value>
+                       <value>2400</value>
+                       <value>500</value>
+               </row>
+               <row>
+                       <value>ae956031-6be2-43d6-bb90-5191c9253316</value>
+                       <value>qos_c</value>
+                       <value>72b9e200-f48b-4687-83f2-62828f249a47</value>
+                       <value>700</value>
+                       <value>1400</value>
+                       <value>500</value>
+                       <value>700</value>
+                       <value>1400</value>
+                       <value>500</value>
+               </row>
+       </table>
 </dataset>
diff --git a/packaging/dbscripts/create_tables.sql 
b/packaging/dbscripts/create_tables.sql
index 1c6654b..5c988dc 100644
--- a/packaging/dbscripts/create_tables.sql
+++ b/packaging/dbscripts/create_tables.sql
@@ -1167,6 +1167,29 @@
     CONSTRAINT schema_version_primary_key PRIMARY KEY (id)
 ) WITH OIDS;
 
+-- ----------------------------------------------------------------------
+--  table network_qos
+-- ----------------------------------------------------------------------
+
+
+CREATE TABLE network_qos
+(
+  id uuid NOT NULL,
+  name VARCHAR(50) NOT NULL,
+  storage_pool_id uuid NOT NULL,
+  inbound_average INTEGER,
+  inbound_peak INTEGER,
+  inbound_burst INTEGER,
+  outbound_average INTEGER,
+  outbound_peak INTEGER,
+  outbound_burst INTEGER,
+  _create_date TIMESTAMP WITH TIME ZONE default LOCALTIMESTAMP,
+  _update_date TIMESTAMP WITH TIME ZONE default NULL,
+  CONSTRAINT PK_network_qos_id PRIMARY KEY (id)
+) WITH OIDS;
+
+ALTER TABLE network_qos ADD CONSTRAINT network_qos_storage_pool_fk
+FOREIGN KEY(storage_pool_id) REFERENCES storage_pool(id);
 
 -- ----------------------------------------------------------------------
 -- Foreign key constraints


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

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

Reply via email to