Lior Vernia has uploaded a new change for review.

Change subject: engine: Treat bonds and VLANs properly in host network usage
......................................................................

engine: Treat bonds and VLANs properly in host network usage

Previously VLANs and bond slaves would have been included in the
search for the "bottleneck" interface in network usage, however VLAN
devices' speed is meaningless and bond slaves should be ignored (as
the bond itself will be evaluated).

Change-Id: I71adf32f76414fe34d433177741e73529959992b
Bug-Url: https://bugzilla.redhat.com/1114085
Signed-off-by: Lior Vernia <lver...@redhat.com>
(cherry picked from commit c3b9082346d91264c08a08c9d0106edd62782c4e)
---
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VdsNetworkInterface.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
2 files changed, 21 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/06/31506/1

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..7d1e8ee 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
@@ -283,6 +283,15 @@
     }
 
     /**
+     * Checks whether an interface is part of a bond.
+     *
+     * @return whether the interface is part of a bond.
+     */
+    public boolean isBondSlave() {
+        return getBondName() != null;
+    }
+
+    /**
      * Sets the bond type.
      *
      * @param bondType
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 00c8e1c..4a16c47 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
@@ -701,17 +701,12 @@
                     iface.setSpeed(AssignIntValue(dict, 
VdsProperties.INTERFACE_SPEED));
                     
iface.getStatistics().setStatus(AssignInterfaceStatusValue(dict, 
VdsProperties.iface_status));
 
-                    int hold =
-                            
(iface.getStatistics().getTransmitRate().compareTo(iface.getStatistics().getReceiveRate())
 > 0 ? iface.getStatistics()
-                                    .getTransmitRate()
-                                    : iface
-                                            
.getStatistics().getReceiveRate()).intValue();
-                    if (hold > networkUsage) {
-                        networkUsage = hold;
+                    if (!NetworkUtils.isVlan(iface) && !iface.isBondSlave()) {
+                        networkUsage = (int) Math.max(networkUsage, 
computeInterfaceUsage(iface));
                     }
                 }
             }
-            vds.setUsageNetworkPercent((networkUsage > 100) ? 100 : 
networkUsage);
+            vds.setUsageNetworkPercent(networkUsage);
         }
 
         // ----------- vds cpu statistics info ---------------------
@@ -792,6 +787,15 @@
 
     }
 
+    private static double computeInterfaceUsage(VdsNetworkInterface iface) {
+        return 
Math.max(truncatePercentage(iface.getStatistics().getReceiveRate()),
+                truncatePercentage(iface.getStatistics().getTransmitRate()));
+    }
+
+    private static double truncatePercentage(double value) {
+        return Math.min(100, value);
+    }
+
     public static void updateNumaStatisticsData(VDS vds, Map<String, Object> 
xmlRpcStruct) {
         List<VdsNumaNode> vdsNumaNodes = new ArrayList<>();
         List<CpuStatistics> cpuStatsData = new ArrayList<>();


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I71adf32f76414fe34d433177741e73529959992b
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.5
Gerrit-Owner: Lior Vernia <lver...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to