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

Reply via email to