Hello Gilad Chaplik,

I'd like you to do a code review.  Please visit

    http://gerrit.ovirt.org/35676

to review the following change.

Change subject: webadmin: fix storage QoS UI validation
......................................................................

webadmin: fix storage QoS UI validation

The storage values weren't validated.
Also added a check to allow setting total or read/write.

Change-Id: Ia4f69ce1b7751e066c6a1e15f482805bbc7df16a
Bug-Url: https://bugzilla.redhat.com/?????
Signed-off-by: Gilad Chaplik <gchap...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/CpuQosParametersModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/QosModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/QosParametersModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/StorageQosMetricParametersModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/StorageQosParametersModel.java
M 
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
6 files changed, 25 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/76/35676/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/CpuQosParametersModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/CpuQosParametersModel.java
index 21732ef..db3c7a0 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/CpuQosParametersModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/CpuQosParametersModel.java
@@ -26,6 +26,7 @@
         cpuQos.setCpuLimit(getCpuLimit().getEntity());
     }
 
+    @Override
     public boolean validate() {
         if (!getIsAvailable()) {
             return true;
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/QosModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/QosModel.java
index 858a095..e81e39a 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/QosModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/QosModel.java
@@ -40,7 +40,8 @@
     public boolean validate() {
         getName().validateEntity(new IValidation[] { new NotEmptyValidation(), 
new AsciiNameValidation() });
         getDescription().validateEntity(new IValidation[] { new 
AsciiOrNoneValidation() });
-        setIsValid(getIsValid() && getName().getIsValid() && 
getDescription().getIsValid());
+        getQosParametersModel().validate();
+        setIsValid(getName().getIsValid() && getDescription().getIsValid() && 
getQosParametersModel().getIsValid());
         return getIsValid();
     }
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/QosParametersModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/QosParametersModel.java
index 71bcfc7..a93a3e4 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/QosParametersModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/QosParametersModel.java
@@ -9,4 +9,6 @@
 
     public abstract void flush(T qos);
 
+    public abstract boolean validate();
+
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/StorageQosMetricParametersModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/StorageQosMetricParametersModel.java
index 715c756..6b10c8a 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/StorageQosMetricParametersModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/StorageQosMetricParametersModel.java
@@ -6,7 +6,7 @@
 import org.ovirt.engine.ui.uicommonweb.models.Model;
 import org.ovirt.engine.ui.uicommonweb.validation.IValidation;
 import org.ovirt.engine.ui.uicommonweb.validation.IntegerValidation;
-import org.ovirt.engine.ui.uicommonweb.validation.NotEmptyValidation;
+import org.ovirt.engine.ui.uicompat.ConstantsManager;
 import org.ovirt.engine.ui.uicompat.Event;
 import org.ovirt.engine.ui.uicompat.EventArgs;
 
@@ -74,13 +74,27 @@
         validateValue(getRead(), (Integer) 
AsyncDataProvider.getConfigValuePreConverted(maxRead));
         validateValue(getWrite(), (Integer) 
AsyncDataProvider.getConfigValuePreConverted(maxWrite));
 
+        if (getTotal().getEntity() != null && (getRead().getEntity() != null 
|| getWrite().getEntity() != null)) {
+            setErrorMsg(getTotal());
+            setErrorMsg(getRead());
+            setErrorMsg(getWrite());
+        }
+
         setIsValid(getTotal().getIsValid() && getRead().getIsValid() && 
getWrite().getIsValid());
         return getIsValid();
     }
 
+    private void setErrorMsg(EntityModel<Integer> entityModel) {
+        if (entityModel.getEntity() != null) {
+            entityModel.setIsValid(false);
+            
entityModel.getInvalidityReasons().add(ConstantsManager.getInstance()
+                    .getConstants()
+                    .eitherTotalOrReadWriteCanHaveValues());
+        }
+    }
+
     private void validateValue(EntityModel<Integer> entity, Integer maxValue) {
         entity.validateEntity(new IValidation[] {
-                new NotEmptyValidation(),
                 new IntegerValidation(0, maxValue) });
     }
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/StorageQosParametersModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/StorageQosParametersModel.java
index 2d2c879..5ab37b0 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/StorageQosParametersModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/StorageQosParametersModel.java
@@ -81,6 +81,7 @@
         }
     }
 
+    @Override
     public boolean validate() {
         if (!getIsAvailable()) {
             return true;
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
index d24b0ed..570eb4d 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
+++ 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
@@ -2404,5 +2404,8 @@
 
     @DefaultStringValue("Insufficient parameters to test connectivity")
     String testFailedInsufficientParams();
+
+    @DefaultStringValue("Either Total or Read/Write can have values.")
+    String eitherTotalOrReadWriteCanHaveValues();
 }
 


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia4f69ce1b7751e066c6a1e15f482805bbc7df16a
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Tomer Saban <tsa...@redhat.com>
Gerrit-Reviewer: Gilad Chaplik <gchap...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to