Lior Vernia has uploaded a new change for review. Change subject: core: Add host network QoS entity ......................................................................
core: Add host network QoS entity Created the new entity to represent a host network QoS (different parameters from VM network QoS). Change-Id: I9471e68ba36fcc2f1465059037125a4c19a4c07f Signed-off-by: Lior Vernia <[email protected]> --- M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/BusinessEntitiesDefinitions.java A backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/HostNetworkQos.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/qos/QosBase.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/qos/QosType.java 4 files changed, 102 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/19/34119/1 diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/BusinessEntitiesDefinitions.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/BusinessEntitiesDefinitions.java index 1902702..a6cc287 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/BusinessEntitiesDefinitions.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/BusinessEntitiesDefinitions.java @@ -41,6 +41,7 @@ public static final int NETWORK_MIN_LEGAL_PORT = 1; public static final int NETWORK_MAX_LEGAL_PORT = 65535; public static final int HOST_NIC_NAME_LENGTH = 15; + public static final int HOST_NETWORK_QOS_MAX_SHARES = 100; public static final String BOND_NAME_PREFIX = "bond"; public static final String BOND_NAME_PATTERN = "^" + BOND_NAME_PREFIX + "\\d+$"; diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/HostNetworkQos.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/HostNetworkQos.java new file mode 100644 index 0000000..3943e57 --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/HostNetworkQos.java @@ -0,0 +1,93 @@ +package org.ovirt.engine.core.common.businessentities.network; + +import org.hibernate.validator.constraints.Range; +import org.ovirt.engine.core.common.businessentities.BusinessEntitiesDefinitions; +import org.ovirt.engine.core.common.businessentities.qos.QosBase; +import org.ovirt.engine.core.common.businessentities.qos.QosType; +import org.ovirt.engine.core.common.config.ConfigValues; +import org.ovirt.engine.core.common.utils.ObjectUtils; +import org.ovirt.engine.core.common.validation.annotation.ConfiguredRange; + +public class HostNetworkQos extends QosBase { + + private static final long serialVersionUID = -5062624700835301848L; + + @Range(min = 0, max = BusinessEntitiesDefinitions.HOST_NETWORK_QOS_MAX_SHARES, + message = "ACTION_TYPE_FAILED_NETWORK_QOS_OUT_OF_RANGE_VALUES") + private Integer outAverageLinkshare; + + @ConfiguredRange(min = 0, maxConfigValue = ConfigValues.MaxAverageNetworkQoSValue, + message = "ACTION_TYPE_FAILED_NETWORK_QOS_OUT_OF_RANGE_VALUES") + private Integer outAverageUpperlimit; + + @ConfiguredRange(min = 0, maxConfigValue = ConfigValues.MaxAverageNetworkQoSValue, + message = "ACTION_TYPE_FAILED_NETWORK_QOS_OUT_OF_RANGE_VALUES") + private Integer outAverageRealtime; + + public HostNetworkQos() { + super(QosType.HOSTNETWORK); + } + + public Integer getOutAverageLinkshare() { + return outAverageLinkshare; + } + + public void setOutAverageLinkshare(Integer outAverageLinkshare) { + this.outAverageLinkshare = outAverageLinkshare; + } + + public Integer getOutAverageUpperlimit() { + return outAverageUpperlimit; + } + + public void setOutAverageUpperlimit(Integer outAverageUpperlimit) { + this.outAverageUpperlimit = outAverageUpperlimit; + } + + public Integer getOutAverageRealtime() { + return outAverageRealtime; + } + + public void setOutAverageRealtime(Integer outAverageRealtime) { + this.outAverageRealtime = outAverageRealtime; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("[outAverageLinkshare=") + .append(renderQosParameter(outAverageLinkshare)) + .append(", outAverageUpperlimit=") + .append(renderQosParameter(outAverageUpperlimit)) + .append(", outAverageRealtime=") + .append(renderQosParameter(outAverageRealtime)) + .append("]"); + return builder.toString(); + } + + public boolean equalValues(HostNetworkQos other) { + return ObjectUtils.objectsEqual(getOutAverageLinkshare(), other.getOutAverageLinkshare()) + && ObjectUtils.objectsEqual(getOutAverageUpperlimit(), other.getOutAverageUpperlimit()) + && ObjectUtils.objectsEqual(getOutAverageRealtime(), other.getOutAverageRealtime()); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = super.hashCode(); + result = prime * result + ((outAverageLinkshare == null) ? 0 : outAverageLinkshare.hashCode()); + result = prime * result + ((outAverageRealtime == null) ? 0 : outAverageRealtime.hashCode()); + result = prime * result + ((outAverageUpperlimit == null) ? 0 : outAverageUpperlimit.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (!super.equals(obj)) + return false; + return equalValues((HostNetworkQos) obj); + } + +} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/qos/QosBase.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/qos/QosBase.java index b7f8ee2..2ec3904 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/qos/QosBase.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/qos/QosBase.java @@ -15,6 +15,8 @@ * Base class for QoS objects derived class will hold qos limit according to type. */ public class QosBase extends IVdcQueryable implements BusinessEntity<Guid>, Serializable { + + private static final String UNLIMITED= "Unlimited"; private static final long serialVersionUID = 1122772549710787678L; private Guid id = Guid.Empty; private QosType qosType; @@ -56,6 +58,10 @@ return toString(); } + protected String renderQosParameter(Object qosParameter) { + return (qosParameter == null) ? UNLIMITED : String.valueOf(qosParameter); + } + @Override public Guid getId() { return id; diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/qos/QosType.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/qos/QosType.java index d8709b4..8bdf364 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/qos/QosType.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/qos/QosType.java @@ -9,7 +9,8 @@ ALL(0), STORAGE(1), CPU(2), - NETWORK(3); + NETWORK(3), + HOSTNETWORK(4); private int value; private static final Map<Integer, QosType> valueToStatus = new HashMap<Integer, QosType>(); -- To view, visit http://gerrit.ovirt.org/34119 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I9471e68ba36fcc2f1465059037125a4c19a4c07f Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Lior Vernia <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
