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