Yevgeny Zaspitsky has uploaded a new change for review.

Change subject: engine: move speed property from VdsNetworkInterface to 
VdsNetworkStatistics
......................................................................

engine: move speed property from VdsNetworkInterface to VdsNetworkStatistics

Move speed property from VdsNetworkInterface to VdsNetworkStatistics.
The propery is moved in order to allow refreshing it on through
getVdsStats verb, which is called every 15 seconds.

Change-Id: If4be28a786bee1eae6367c4ef19c9ee3b4afec61
Bug-Url: https://bugzilla.redhat.com/980363
Signed-off-by: Yevgeny Zaspitsky <yzasp...@redhat.com>
---
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkInterface.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/Nic.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VdsNetworkInterface.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VdsNetworkStatistics.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VmNic.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/InterfaceDaoDbFacadeImpl.java
M 
backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/InterfaceDaoTest.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/HostNicStatisticalQuery.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostNicResourceTest.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostNicsResourceTest.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostNicMapper.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostInterfaceListModel.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkHostView.java
M packaging/dbscripts/create_views.sql
M packaging/dbscripts/network_sp.sql
A packaging/dbscripts/upgrade/03_05_0720_move_vds_interface_speed.sql
18 files changed, 141 insertions(+), 76 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/13/28913/1

diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkInterface.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkInterface.java
index 8657dc1..b01d4e5 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkInterface.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkInterface.java
@@ -25,8 +25,6 @@
 
     private Integer type;
 
-    private Integer speed;
-
     protected T statistics;
 
     public NetworkInterface() {
@@ -97,25 +95,6 @@
     }
 
     /**
-     * Sets the speed of the network device in megabits per second.
-     *
-     * @param speed
-     *            the speed.
-     */
-    public void setSpeed(Integer speed) {
-        this.speed = speed;
-    }
-
-    /**
-     * Returns the speed of the network device in megabits per second.
-     *
-     * @return the speed
-     */
-    public Integer getSpeed() {
-        return speed;
-    }
-
-    /**
      * Sets the type of network device.
      *
      * @param type
@@ -160,7 +139,6 @@
         result = prime * result + ((id == null) ? 0 : id.hashCode());
         result = prime * result + ((macAddress == null) ? 0 : 
macAddress.hashCode());
         result = prime * result + ((name == null) ? 0 : name.hashCode());
-        result = prime * result + ((speed == null) ? 0 : speed.hashCode());
         result = prime * result + ((type == null) ? 0 : type.hashCode());
         return result;
     }
@@ -196,13 +174,6 @@
                 return false;
             }
         } else if (!name.equals(other.name)) {
-            return false;
-        }
-        if (speed == null) {
-            if (other.speed != null) {
-                return false;
-            }
-        } else if (!speed.equals(other.speed)) {
             return false;
         }
         if (type == null) {
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/Nic.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/Nic.java
index a3f76b9..5ba5a9a 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/Nic.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/Nic.java
@@ -10,7 +10,7 @@
 
     public Nic(String macAddress, Integer speed, String bondName) {
         setMacAddress(macAddress);
-        setSpeed(speed);
+        getStatistics().setSpeed(speed);
         setBondName(bondName);
     }
 
@@ -42,8 +42,6 @@
                 .append(getMtu())
                 .append(", bridged=")
                 .append(isBridged())
-                .append(", speed=")
-                .append(getSpeed())
                 .append(", type=")
                 .append(getType())
                 .append(", networkImplementationDetails=")
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VdsNetworkInterface.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VdsNetworkInterface.java
index d64a52f..cdb03ae 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VdsNetworkInterface.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VdsNetworkInterface.java
@@ -432,8 +432,6 @@
                 .append(getMtu())
                 .append(", bridged=")
                 .append(isBridged())
-                .append(", speed=")
-                .append(getSpeed())
                 .append(", type=")
                 .append(getType())
                 .append(", networkImplementationDetails=")
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VdsNetworkStatistics.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VdsNetworkStatistics.java
index 1821a47..fd493c2 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VdsNetworkStatistics.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VdsNetworkStatistics.java
@@ -11,6 +11,26 @@
     private static final long serialVersionUID = 1627744622924441184L;
 
     private Guid vdsId;
+    private Integer speed;
+
+    /**
+     * Sets the speed of the network device in megabits per second.
+     *
+     * @param speed
+     *            the speed.
+     */
+    public void setSpeed(Integer speed) {
+        this.speed = speed;
+    }
+
+    /**
+     * Returns the speed of the network device in megabits per second.
+     *
+     * @return the speed
+     */
+    public Integer getSpeed() {
+        return speed;
+    }
 
     /**
      * Sets the VDS instance id.
@@ -30,4 +50,44 @@
     public Guid getVdsId() {
         return vdsId;
     }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = super.hashCode();
+        result = prime * result + ((speed == null) ? 0 : speed.hashCode());
+        result = prime * result + ((vdsId == null) ? 0 : vdsId.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (!super.equals(obj)) {
+            return false;
+        }
+        if (!(obj instanceof VdsNetworkStatistics)) {
+            return false;
+        }
+        VdsNetworkStatistics other = (VdsNetworkStatistics) obj;
+        if (speed == null) {
+            if (other.speed != null) {
+                return false;
+            }
+        } else if (!speed.equals(other.speed)) {
+            return false;
+        }
+        if (vdsId == null) {
+            if (other.vdsId != null) {
+                return false;
+            }
+        } else if (!vdsId.equals(other.vdsId)) {
+            return false;
+        }
+        return true;
+    }
+
+
 }
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VmNic.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VmNic.java
index 93f406a..3141b96 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VmNic.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VmNic.java
@@ -27,6 +27,7 @@
     private Guid vmId;
     private Guid vnicProfileId;
     private Guid vmTemplateId;
+    private Integer speed;
 
     /**
      * Link State of the Nic. <BR>
@@ -37,6 +38,25 @@
     public VmNic() {
         super(new VmNetworkStatistics(), VmInterfaceType.pv.getValue());
         linked = true;
+    }
+
+    /**
+     * Returns the speed of the network device in megabits per second.
+     *
+     * @return the speed
+     */
+    public Integer getSpeed() {
+        return speed;
+    }
+
+    /**
+     * Sets the speed of the network device in megabits per second.
+     *
+     * @param speed
+     *            the speed.
+     */
+    public void setSpeed(Integer speed) {
+        this.speed = speed;
     }
 
     public void setVmId(Guid vmId) {
@@ -129,6 +149,7 @@
         result = prime * result + ((getVmId() == null) ? 0 : 
getVmId().hashCode());
         result = prime * result + ((getVnicProfileId() == null) ? 0 : 
getVnicProfileId().hashCode());
         result = prime * result + ((getVmTemplateId() == null) ? 0 : 
getVmTemplateId().hashCode());
+        result = prime * result + ((getSpeed() == null) ? 0 : 
getSpeed().hashCode());
         return result;
     }
 
@@ -153,6 +174,9 @@
         if (!ObjectUtils.objectsEqual(getVmTemplateId(), 
other.getVmTemplateId())) {
             return false;
         }
+        if (!ObjectUtils.objectsEqual(getSpeed(), other.getSpeed())) {
+            return false;
+        }
         return true;
     }
 }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/InterfaceDaoDbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/InterfaceDaoDbFacadeImpl.java
index 9ffe5cf..5baf1b7 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/InterfaceDaoDbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/InterfaceDaoDbFacadeImpl.java
@@ -97,7 +97,8 @@
                 .addValue("tx_drop", stats.getTransmitDropRate())
                 .addValue("tx_rate", stats.getTransmitRate())
                 .addValue("iface_status", stats.getStatus())
-                .addValue("vds_id", stats.getVdsId());
+                .addValue("vds_id", stats.getVdsId())
+                .addValue("speed", stats.getSpeed());
     }
 
     @Override
@@ -118,7 +119,6 @@
                 .addValue("mac_addr", nic.getMacAddress())
                 .addValue("name", nic.getName())
                 .addValue("network_name", nic.getNetworkName())
-                .addValue("speed", nic.getSpeed())
                 .addValue("subnet", nic.getSubnet())
                 .addValue("boot_protocol", nic.getBootProtocol())
                 .addValue("type", nic.getType())
@@ -296,7 +296,7 @@
                     
entity.getStatistics().setTransmitDropRate(rs.getDouble("tx_drop"));
                     
entity.getStatistics().setStatus(InterfaceStatus.forValue(rs.getInt("iface_status")));
                     entity.getStatistics().setVdsId(getGuidDefaultEmpty(rs, 
"vds_id"));
-                    entity.setType((Integer) rs.getObject("type"));
+                    entity.setType(rs.getInt("type"));
                     entity.setGateway(rs.getString("gateway"));
                     entity.setSubnet(rs.getString("subnet"));
                     entity.setAddress(rs.getString("addr"));
@@ -330,13 +330,13 @@
                     VdsNetworkInterface iface;
 
                     String macAddress = rs.getString("mac_addr");
-                    Integer vlanId = (Integer) rs.getObject("vlan_id");
+                    Integer vlanId = rs.getInt("vlan_id");
                     String baseInterface = rs.getString("base_interface");
-                    Integer bondType = (Integer) rs.getObject("bond_type");
+                    Integer bondType = rs.getInt("bond_type");
                     String bondName = rs.getString("bond_name");
-                    Boolean isBond = (Boolean) rs.getObject("is_bond");
+                    Boolean isBond = rs.getBoolean("is_bond");
                     String bondOptions = rs.getString("bond_opts");
-                    Integer speed = (Integer) rs.getObject("speed");
+                    Integer speed = rs.getInt("speed");
 
                     if (Boolean.TRUE.equals(isBond) && vlanId != null) {
                         iface = new VdsNetworkInterface();
@@ -347,7 +347,7 @@
                         iface.setBondName(bondName);
                         iface.setBonded(isBond);
                         iface.setBondOptions(bondOptions);
-                        iface.setSpeed(speed);
+                        iface.getStatistics().setSpeed(speed);
                     } else if (Boolean.TRUE.equals(isBond)) {
                         iface = new Bond(macAddress, bondOptions, bondType);
                     } else if (vlanId != null) {
diff --git 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/InterfaceDaoTest.java
 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/InterfaceDaoTest.java
index 26dd2e8..e7cf430 100644
--- 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/InterfaceDaoTest.java
+++ 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/InterfaceDaoTest.java
@@ -49,14 +49,16 @@
         newQos.setInboundPeak(30);
         newQos.setInboundBurst(30);
 
+        newVdsStatistics = new VdsNetworkStatistics();
+        newVdsStatistics.setSpeed(1000);
+
         newVdsInterface = new VdsNetworkInterface();
-        newVdsInterface.setStatistics(new VdsNetworkStatistics());
+        newVdsInterface.setStatistics(newVdsStatistics);
         newVdsInterface.setId(Guid.newGuid());
         newVdsInterface.setName("eth77");
         newVdsInterface.setNetworkName("enginet");
         newVdsInterface.setAddress("192.168.122.177");
         newVdsInterface.setSubnet("255.255.255.0");
-        newVdsInterface.setSpeed(1000);
         newVdsInterface.setType(3);
         newVdsInterface.setBootProtocol(NetworkBootProtocol.STATIC_IP);
         newVdsInterface.setMacAddress("01:C0:81:21:71:17");
@@ -64,7 +66,6 @@
         newVdsInterface.setMtu(1500);
         newVdsInterface.setQos(newQos);
 
-        newVdsStatistics = newVdsInterface.getStatistics();
     }
 
     /**
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/HostNicStatisticalQuery.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/HostNicStatisticalQuery.java
index fd31c7a..2b5ef50 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/HostNicStatisticalQuery.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/HostNicStatisticalQuery.java
@@ -30,8 +30,8 @@
     public List<Statistic> getStatistics(VdsNetworkInterface iface) {
         NetworkStatistics s = iface.getStatistics();
 
-        return asList(setDatum(clone(DATA_RX), 
RxTxCalculator.percent2bytes(iface.getSpeed(), s.getReceiveRate())),
-                setDatum(clone(DATA_TX), 
RxTxCalculator.percent2bytes(iface.getSpeed(), s.getTransmitRate())),
+        return asList(setDatum(clone(DATA_RX), 
RxTxCalculator.percent2bytes(iface.getStatistics().getSpeed(), 
s.getReceiveRate())),
+                setDatum(clone(DATA_TX), 
RxTxCalculator.percent2bytes(iface.getStatistics().getSpeed(), 
s.getTransmitRate())),
                 setDatum(clone(ERRS_RX), s.getReceiveDropRate()),
                 setDatum(clone(ERRS_TX), s.getTransmitDropRate()));
     }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostNicResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostNicResourceTest.java
index a904c47..0374c2a 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostNicResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostNicResourceTest.java
@@ -459,9 +459,9 @@
     protected VdsNetworkInterface setUpStatisticalExpectations() throws 
Exception {
         VdsNetworkStatistics stats = 
control.createMock(VdsNetworkStatistics.class);
         VdsNetworkInterface entity = 
control.createMock(VdsNetworkInterface.class);
-        expect(entity.getSpeed()).andReturn(SPEED).anyTimes();
         expect(entity.getStatistics()).andReturn(stats);
         expect(entity.getId()).andReturn(NIC_ID).anyTimes();
+        expect(stats.getSpeed()).andReturn(SPEED).anyTimes();
         expect(stats.getReceiveRate()).andReturn(RECEIVE_RATE);
         expect(stats.getTransmitRate()).andReturn(TRANSMIT_RATE);
         expect(stats.getReceiveDropRate()).andReturn(RECEIVE_DROP_RATE);
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostNicsResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostNicsResourceTest.java
index 6cdffd5..be4f1ff 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostNicsResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostNicsResourceTest.java
@@ -379,7 +379,7 @@
         entity.setId(GUIDS[index]);
         entity.setName(NAMES[index]);
         entity.setNetworkName(NETWORK_NAME);
-        entity.setSpeed(NIC_SPEED);
+        entity.getStatistics().setSpeed(NIC_SPEED);
         entity = setUpStatistics(entity, GUIDS[index]);
         entity.getStatistics().setStatus(NIC_STATUS);
         entity.setBootProtocol(BOOT_PROTOCOL);
@@ -391,7 +391,7 @@
         entity.setId(MASTER_GUID);
         entity.setName(MASTER_NAME);
         entity.setNetworkName(NETWORK_NAME);
-        entity.setSpeed(NIC_SPEED);
+        entity.getStatistics().setSpeed(NIC_SPEED);
         entity.setBonded(true);
         entity.setBootProtocol(BOOT_PROTOCOL);
         return setUpStatistics(entity, MASTER_GUID);
@@ -402,7 +402,7 @@
         entity.setId(SLAVE_GUID);
         entity.setName(SLAVE_NAME);
         entity.setNetworkName(NETWORK_NAME);
-        entity.setSpeed(NIC_SPEED);
+        entity.getStatistics().setSpeed(NIC_SPEED);
         entity.setBondName(MASTER_NAME);
         entity.setBootProtocol(BOOT_PROTOCOL);
         return setUpStatistics(entity, SLAVE_GUID);
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostNicMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostNicMapper.java
index f321acb..4c07e49 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostNicMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostNicMapper.java
@@ -11,8 +11,8 @@
 import org.ovirt.engine.api.model.NicStatus;
 import org.ovirt.engine.api.model.Option;
 import org.ovirt.engine.api.model.Options;
-import org.ovirt.engine.api.restapi.utils.CustomPropertiesParser;
 import org.ovirt.engine.api.model.VLAN;
+import org.ovirt.engine.api.restapi.utils.CustomPropertiesParser;
 import org.ovirt.engine.api.restapi.utils.GuidUtils;
 import org.ovirt.engine.core.common.businessentities.network.Bond;
 import org.ovirt.engine.core.common.businessentities.network.InterfaceStatus;
@@ -133,8 +133,9 @@
                 model.setStatus(StatusUtils.create(nicStatus));
             }
         }
-        if(entity.getSpeed()!=null && entity.getSpeed()>0){
-            model.setSpeed(entity.getSpeed() * 1000L * 1000);
+        final Integer nicSpeed = entity.getStatistics().getSpeed();
+        if (nicSpeed != null && nicSpeed > 0) {
+            model.setSpeed(nicSpeed * 1000L * 1000);
         }
         if (!StringUtils.isEmpty(entity.getBondOptions())) {
             if(model.getBonding() == null) model.setBonding(new Bonding());
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
index cfffcc1..c256a0a 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
@@ -690,7 +690,7 @@
                     iface.getStatistics().setReceiveDropRate(rx_dropped != 
null ? rx_dropped : 0);
                     iface.getStatistics().setTransmitRate(tx_rate != null ? 
tx_rate : 0);
                     iface.getStatistics().setTransmitDropRate(tx_dropped != 
null ? tx_dropped : 0);
-                    iface.setSpeed(AssignIntValue(dict, 
VdsProperties.INTERFACE_SPEED));
+                    iface.getStatistics().setSpeed(AssignIntValue(dict, 
VdsProperties.INTERFACE_SPEED));
                     
iface.getStatistics().setStatus(AssignInterfaceStatusValue(dict, 
VdsProperties.iface_status));
 
                     int hold =
@@ -1417,7 +1417,7 @@
         if (nic != null) {
             if (nic.get("speed") != null) {
                 Object speed = nic.get("speed");
-                iface.setSpeed((Integer) speed);
+                iface.getStatistics().setSpeed((Integer) speed);
             }
             iface.setAddress((String) nic.get("addr"));
             iface.setSubnet((String) nic.get("netmask"));
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java
index b49fad8..b414b45 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java
@@ -505,6 +505,7 @@
 
         cloneNetworkStatisticss(instance, obj);
         obj.setVdsId(instance.getVdsId());
+        obj.setSpeed(instance.getSpeed());
 
         return obj;
     }
@@ -524,7 +525,6 @@
         obj.setMacAddress(vdsNetworkInterface.getMacAddress());
         obj.setName(vdsNetworkInterface.getName());
         obj.setNetworkName(vdsNetworkInterface.getNetworkName());
-        obj.setSpeed(vdsNetworkInterface.getSpeed());
         
obj.setStatistics(cloneVdsNetworkStatistics(vdsNetworkInterface.getStatistics()));
 
         return obj;
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostInterfaceListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostInterfaceListModel.java
index 49a770a..637b585 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostInterfaceListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostInterfaceListModel.java
@@ -536,7 +536,7 @@
         hi.setName(nic.getName());
         hi.setAddress(nic.getAddress());
         hi.setMAC(nic.getMacAddress());
-        hi.setSpeed(nic.getSpeed());
+        hi.setSpeed(nic.getStatistics().getSpeed());
         hi.setRxRate(nic.getStatistics().getReceiveRate());
         hi.setRxDrop(nic.getStatistics().getReceiveDropRate());
         hi.setTxRate(nic.getStatistics().getTransmitRate());
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkHostView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkHostView.java
index ae4df6f..eb3cef4 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkHostView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkHostView.java
@@ -135,8 +135,8 @@
             new TextColumnWithTooltip<PairQueryable<VdsNetworkInterface, 
VDS>>() {
                 @Override
                 public String getValue(PairQueryable<VdsNetworkInterface, VDS> 
object) {
-                    if (object.getFirst() != null && 
object.getFirst().getSpeed() != null) {
-                        return String.valueOf(object.getFirst().getSpeed());
+                    if (object.getFirst() != null && 
object.getFirst().getStatistics().getSpeed() != null) {
+                        return 
String.valueOf(object.getFirst().getStatistics().getSpeed());
                     }
                     return null;
                 }
@@ -153,8 +153,8 @@
 
         @Override
         protected Double getSpeed(PairQueryable<VdsNetworkInterface, VDS> 
object) {
-            if (object.getFirst() != null && object.getFirst().getSpeed() != 
null) {
-                return object.getFirst().getSpeed().doubleValue();
+            if (object.getFirst() != null && 
object.getFirst().getStatistics().getSpeed() != null) {
+                return 
object.getFirst().getStatistics().getSpeed().doubleValue();
             } else {
                 return null;
             }
@@ -173,8 +173,8 @@
 
         @Override
         protected Double getSpeed(PairQueryable<VdsNetworkInterface, VDS> 
object) {
-            if (object.getFirst() != null && object.getFirst().getSpeed() != 
null) {
-                return object.getFirst().getSpeed().doubleValue();
+            if (object.getFirst() != null && 
object.getFirst().getStatistics().getSpeed() != null) {
+                return 
object.getFirst().getStatistics().getSpeed().doubleValue();
             } else {
                 return null;
             }
diff --git a/packaging/dbscripts/create_views.sql 
b/packaging/dbscripts/create_views.sql
index fc02220..4b7f095 100644
--- a/packaging/dbscripts/create_views.sql
+++ b/packaging/dbscripts/create_views.sql
@@ -922,8 +922,8 @@
 CREATE OR REPLACE VIEW vds_interface_view AS
   SELECT vds_interface_statistics.rx_rate, vds_interface_statistics.tx_rate, 
vds_interface_statistics.rx_drop,
       vds_interface_statistics.tx_drop, vds_interface_statistics.iface_status, 
vds_interface.type, vds_interface.gateway,
-      vds_interface.subnet, vds_interface.addr, vds_interface.speed, 
vds_interface.base_interface, vds_interface.vlan_id, vds_interface.bond_type,
-      vds_interface.bond_name, vds_interface.is_bond, vds_interface.bond_opts, 
vds_interface.mac_addr,
+      vds_interface.subnet, vds_interface.addr, 
vds_interface_statistics.speed, vds_interface.base_interface, 
vds_interface.vlan_id,
+      vds_interface.bond_type, vds_interface.bond_name, vds_interface.is_bond, 
vds_interface.bond_opts, vds_interface.mac_addr,
       vds_interface.network_name, vds_interface.name, vds_static.vds_id, 
vds_static.vds_name,  vds_interface.id,
       vds_interface.boot_protocol, vds_interface.mtu as mtu, 
vds_interface.bridged, 1 AS is_vds, vds_interface.qos_overridden AS 
qos_overridden,
       vds_interface.labels as labels, vds_interface.custom_properties AS 
custom_properties, vds_static.vds_group_id as vds_group_id
@@ -933,7 +933,7 @@
 
 CREATE OR REPLACE VIEW vm_interface_view AS
   SELECT vm_interface_statistics.rx_rate, vm_interface_statistics.tx_rate, 
vm_interface_statistics.rx_drop,
-      vm_interface_statistics.tx_drop, vm_interface_statistics.iface_status, 
vm_interface.type, vm_interface.speed,
+      vm_interface_statistics.tx_drop, vm_interface_statistics.iface_status, 
vm_interface.type, vds_interface_statistics.speed,
       vm_interface.mac_addr, network.name AS network_name, vm_interface.name, 
vm_interface.vnic_profile_id, vm_static.vm_guid, vm_interface.vmt_guid,
       vm_static.vm_name, vm_interface.id, 0 AS boot_protocol, 0 AS is_vds, 
vm_device.is_plugged,
       vm_device.custom_properties, vnic_profiles.port_mirroring AS 
port_mirroring, vm_interface.linked,
@@ -945,7 +945,7 @@
   LEFT JOIN (vnic_profiles JOIN network ON network.id = 
vnic_profiles.network_id) ON vnic_profiles.id = vm_interface.vnic_profile_id
   UNION
   SELECT vm_interface_statistics.rx_rate, vm_interface_statistics.tx_rate, 
vm_interface_statistics.rx_drop,
-      vm_interface_statistics.tx_drop, vm_interface_statistics.iface_status, 
vm_interface.type, vm_interface.speed,
+      vm_interface_statistics.tx_drop, vm_interface_statistics.iface_status, 
vm_interface.type, vds_interface_statistics.speed,
       vm_interface.mac_addr, network.name AS network_name, vm_interface.name, 
vm_interface.vnic_profile_id, NULL::uuid as vm_guid,
       vm_interface.vmt_guid, vm_templates.vm_name AS vm_name, vm_interface.id, 
0 AS boot_protocol, 0 AS is_vds,
       vm_device.is_plugged as is_plugged, vm_device.custom_properties as 
custom_properties, vnic_profiles.port_mirroring AS port_mirroring,
diff --git a/packaging/dbscripts/network_sp.sql 
b/packaging/dbscripts/network_sp.sql
index 9f9f5d7..05143c1 100644
--- a/packaging/dbscripts/network_sp.sql
+++ b/packaging/dbscripts/network_sp.sql
@@ -295,7 +295,6 @@
  v_mac_addr VARCHAR(20) ,
  v_name VARCHAR(50),
  v_network_name VARCHAR(50) ,
- v_speed INTEGER ,
  v_subnet VARCHAR(20) ,
  v_boot_protocol INTEGER ,
  v_type INTEGER ,
@@ -329,7 +328,6 @@
  v_mac_addr VARCHAR(20) ,
  v_name VARCHAR(50),
  v_network_name VARCHAR(50) ,
- v_speed INTEGER ,
  v_subnet VARCHAR(20) ,
  v_boot_protocol INTEGER ,
  v_type INTEGER ,
@@ -848,12 +846,13 @@
        v_tx_drop DECIMAL(18,0) ,
        v_tx_rate DECIMAL(18,0) ,
        v_iface_status INTEGER ,
-       v_vds_id UUID)
+       v_vds_id UUID,
+       v_speed INTEGER)
 RETURNS VOID
    AS $procedure$
 BEGIN
-INSERT INTO vds_interface_statistics(id, rx_drop, rx_rate, tx_drop, tx_rate, 
vds_id, iface_status)
-       VALUES(v_id, v_rx_drop, v_rx_rate, v_tx_drop, v_tx_rate, 
v_vds_id,v_iface_status);
+INSERT INTO vds_interface_statistics(id, rx_drop, rx_rate, tx_drop, tx_rate, 
vds_id, iface_status, speed)
+       VALUES(v_id, v_rx_drop, v_rx_rate, v_tx_drop, v_tx_rate, 
v_vds_id,v_iface_status, v_speed);
 END; $procedure$
 LANGUAGE plpgsql;
 
@@ -867,15 +866,22 @@
  v_tx_drop DECIMAL(18,0) ,
  v_tx_rate DECIMAL(18,0) ,
  v_iface_status INTEGER ,
- v_vds_id UUID)
+ v_vds_id UUID ,
+ v_speed INTEGER)
 RETURNS VOID
 
        --The [vds_interface_statistics] table doesn't have a timestamp column. 
Optimistic concurrency logic cannot be generated
    AS $procedure$
 BEGIN
       UPDATE vds_interface_statistics
-      SET rx_drop = v_rx_drop,rx_rate = v_rx_rate,tx_drop = v_tx_drop,tx_rate 
= v_tx_rate,
-      vds_id = v_vds_id,iface_status = v_iface_status, _update_date = 
LOCALTIMESTAMP
+      SET rx_drop = v_rx_drop,
+          rx_rate = v_rx_rate,
+          tx_drop = v_tx_drop,
+          tx_rate = v_tx_rate,
+          vds_id = v_vds_id,
+          speed = v_speed,
+          iface_status = v_iface_status,
+          _update_date = LOCALTIMESTAMP
       WHERE id = v_id;
 END; $procedure$
 LANGUAGE plpgsql;
diff --git 
a/packaging/dbscripts/upgrade/03_05_0720_move_vds_interface_speed.sql 
b/packaging/dbscripts/upgrade/03_05_0720_move_vds_interface_speed.sql
new file mode 100644
index 0000000..747cb74
--- /dev/null
+++ b/packaging/dbscripts/upgrade/03_05_0720_move_vds_interface_speed.sql
@@ -0,0 +1,6 @@
+select fn_db_add_column('vds_interface_statistics', 'speed', 'INTEGER default 
NULL');
+
+update vds_interface_statistics
+set speed = (select speed from vds_interface where vds_interface_statistics.id 
= vds_interface.id);
+
+select fn_db_drop_column('vds_interface', 'speed');


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

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

Reply via email to