Martin Betak has uploaded a new change for review.

Change subject: frontend: Fix validation of UnitVmModel
......................................................................

frontend: Fix validation of UnitVmModel

Individual entity models were validated but the validate() method always
returned true since the validity of individual tabs was not taken into
account. This resulted in submitting invalid edits and subsequent
backend validation errors.

Change-Id: Iabba7f93a0541292a1a4c82b675ab0faf141b9b2
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1128444
Signed-off-by: Martin Betak <mbe...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/Model.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
2 files changed, 11 insertions(+), 14 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/45/32645/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/Model.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/Model.java
index 4ec3ebc..30c0158 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/Model.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/Model.java
@@ -617,4 +617,8 @@
     public boolean isValidTab(TabName tab) {
         return !invalidTabs.contains(tab);
     }
+
+    public boolean allTabsValid() {
+        return invalidTabs.isEmpty();
+    }
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
index f58e71d..80119eb 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
@@ -2553,7 +2553,7 @@
         boolean vmInitIsValid = getVmInitModel().validate();
         setValidTab(TabName.FIRST_RUN, vmInitIsValid);
 
-        boolean isValid = hwPartValid && vmInitIsValid && 
getDataCenterWithClustersList().getIsValid();
+        boolean isValid = hwPartValid && vmInitIsValid && allTabsValid();
         getValid().setEntity(isValid);
         ValidationCompleteEvent.fire(getEventBus(), this);
         return isValid;
@@ -2599,32 +2599,25 @@
         setValidTab(TabName.CONSOLE_TAB, getUsbPolicy().getIsValid() && 
getNumOfMonitors().getIsValid()
                 && getSpiceProxy().getIsValid());
         setValidTab(TabName.HOST_TAB, getMigrationDowntime().getIsValid());
-        setValidTab(TabName.RESOURCE_ALLOCATION_TAB, 
getMinAllocatedMemory().getIsValid());
 
         getRngBytes().validateEntity(new IValidation[]{new 
IntegerValidation(0, Integer.MAX_VALUE), new RngDevValidation()});
         getRngPeriod().validateEntity(new IValidation[]{new 
IntegerValidation(0, Integer.MAX_VALUE)});
 
         setValidTab(TabName.TAB_RNG, getRngBytes().getIsValid() && 
getRngPeriod().getIsValid());
 
-        setValidTab(TabName.SYSTEM_TAB, getMemSize().getIsValid() &&
-                            getTotalCPUCores().getIsValid() &&
-                            
getSerialNumberPolicy().getCustomSerialNumber().getIsValid());
-
         // Minimum 'Physical Memory Guaranteed' is 1MB
         validateMemorySize(getMemSize(), Integer.MAX_VALUE, 1);
         if (!(getBehavior() instanceof TemplateVmModelBehavior) && 
getMemSize().getIsValid()) {
             validateMemorySize(getMinAllocatedMemory(), 
getMemSize().getEntity(), 1);
         }
+        setValidTab(TabName.RESOURCE_ALLOCATION_TAB, 
getMinAllocatedMemory().getIsValid());
+
+        setValidTab(TabName.SYSTEM_TAB, getMemSize().getIsValid() &&
+                getTotalCPUCores().getIsValid() &&
+                getSerialNumberPolicy().getCustomSerialNumber().getIsValid());
 
 
-
-        boolean isValid = behaviorValid && customPropertySheetValid && 
getName().getIsValid() && getDescription().getIsValid()
-                && getMinAllocatedMemory().getIsValid()
-                && getNumOfMonitors().getIsValid() && 
getUsbPolicy().getIsValid()
-                && getMigrationDowntime().getIsValid()
-                && getRngBytes().getIsValid()
-                && getRngPeriod().getIsValid()
-                && getTotalCPUCores().getIsValid();
+        boolean isValid = behaviorValid && allTabsValid();
 
         getValid().setEntity(isValid);
         ValidationCompleteEvent.fire(getEventBus(), this);


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iabba7f93a0541292a1a4c82b675ab0faf141b9b2
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Martin Betak <mbe...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to