Arik Hadas has uploaded a new change for review.

Change subject: frontend: disable stateless mode for diskless vm
......................................................................

frontend: disable stateless mode for diskless vm

This patch disable the 'Run Stateless' check-box in the run-once dialog,
in both webadmin and user portal, for diskless VM.

Change-Id: I54a3c720edf863dcbc520ef41194d3816f9a0048
Bug-Url: https://bugzilla.redhat.com/907968
Signed-off-by: Arik Hadas <[email protected]>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
2 files changed, 21 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/14/12914/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
index 6e244f9..c1c4dc2 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
@@ -835,6 +835,13 @@
             {
                 UserPortalListModel userPortalListModel = 
(UserPortalListModel) model;
                 ArrayList<Disk> vmDisks = (ArrayList<Disk>) 
((VdcQueryReturnValue) returnValue).getReturnValue();
+                RunOnceModel runOnceModel = (RunOnceModel) 
userPortalListModel.getWindow();
+
+                if (vmDisks.isEmpty()) {
+                    runOnceModel.getRunAsStateless().setIsChangable(false);
+                    
runOnceModel.getRunAsStateless().setChangeProhibitionReason("Diskless Virtual 
Machine cannot run in stateless mode"); //$NON-NLS-1$
+                    runOnceModel.getRunAsStateless().setEntity(false);
+                }
 
                 boolean hasBootableDisk = false;
                 for (Disk disk : vmDisks) {
@@ -846,8 +853,7 @@
 
                 if (!hasBootableDisk)
                 {
-                    BootSequenceModel bootSequenceModel =
-                            ((RunOnceModel) 
userPortalListModel.getWindow()).getBootSequence();
+                    BootSequenceModel bootSequenceModel = 
runOnceModel.getBootSequence();
                     
bootSequenceModel.getHardDiskOption().setIsChangable(false);
                     bootSequenceModel.getHardDiskOption()
                             .setChangeProhibitionReason("Virtual Machine must 
have at least one bootable disk defined to boot from hard disk."); //$NON-NLS-1$
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
index 4fd5dff..cc08574 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
@@ -1402,7 +1402,8 @@
         RunOnceUpdateFloppy(vm, new ArrayList<String>());
         RunOnceUpdateImages(vm);
         RunOnceUpdateDomains();
-        RunOnceUpdateBootSequence(vm);
+        updateInterfacesRelatedRunOnceData(vm);
+        updateDisksRelatedRunOnceData(vm);
         RunOnceLoadHosts(vm);
 
         UICommand tempVar = new UICommand("OnRunOnce", this); //$NON-NLS-1$
@@ -1442,7 +1443,7 @@
         model.getDisplayProtocol().setSelectedItem(isVncSelected ? vncProtocol 
: qxlProtocol);
     }
 
-    private void RunOnceUpdateBootSequence(VM vm)
+    private void updateInterfacesRelatedRunOnceData(VM vm)
     {
         AsyncQuery _asyncQuery = new AsyncQuery();
         _asyncQuery.setModel(this);
@@ -1467,11 +1468,9 @@
         };
 
         Frontend.RunQuery(VdcQueryType.GetVmInterfacesByVmId, new 
IdQueryParameters(vm.getId()), _asyncQuery);
-
-        setIsBootFromHardDiskAllowedForVm(vm);
     }
 
-    private void setIsBootFromHardDiskAllowedForVm(VM vm) {
+    private void updateDisksRelatedRunOnceData(VM vm) {
         AsyncQuery vmDisksQuery = new AsyncQuery();
         vmDisksQuery.setModel(this);
 
@@ -1479,8 +1478,15 @@
             @Override
             public void OnSuccess(Object model, Object returnValue)
             {
-                VmListModel userPortalListModel = (VmListModel) model;
+                VmListModel vmListModel = (VmListModel) model;
                 ArrayList<Disk> vmDisks = (ArrayList<Disk>) 
((VdcQueryReturnValue) returnValue).getReturnValue();
+                RunOnceModel runOnceModel = (RunOnceModel) 
vmListModel.getWindow();
+
+                if (vmDisks.isEmpty()) {
+                    runOnceModel.getRunAsStateless().setIsChangable(false);
+                    
runOnceModel.getRunAsStateless().setChangeProhibitionReason("Diskless Virtual 
Machine cannot run in stateless mode"); //$NON-NLS-1$
+                    runOnceModel.getRunAsStateless().setEntity(false);
+                }
 
                 boolean hasBootableDisk = false;
                 for (Disk disk : vmDisks) {
@@ -1492,8 +1498,7 @@
 
                 if (!hasBootableDisk)
                 {
-                    BootSequenceModel bootSequenceModel =
-                            ((RunOnceModel) 
userPortalListModel.getWindow()).getBootSequence();
+                    BootSequenceModel bootSequenceModel = 
runOnceModel.getBootSequence();
                     
bootSequenceModel.getHardDiskOption().setIsChangable(false);
                     bootSequenceModel.getHardDiskOption()
                             .setChangeProhibitionReason("Virtual Machine must 
have at least one bootable disk defined to boot from hard disk."); //$NON-NLS-1$


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I54a3c720edf863dcbc520ef41194d3816f9a0048
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Arik Hadas <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to