Shahar Havivi has uploaded a new change for review.

Change subject: ui: edit VM override user qxl flag
......................................................................

ui: edit VM override user qxl flag

Bug-Url: https://bugzilla.redhat.com/1111565
Change-Id: I1cbb3128b8251311d3fa1c2b25ed5e90642e0e24
Signed-off-by: Shahar Havivi <[email protected]>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingPoolModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewPoolModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/ExistingPoolInstanceTypeManager.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/ExistingVmInstanceTypeManager.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/InstanceTypeManager.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/NewPoolInstanceTypeManager.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/NewVmInstanceTypeManager.java
13 files changed, 126 insertions(+), 36 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/21/30021/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingPoolModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingPoolModelBehavior.java
index bdf238d..67bf300 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingPoolModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingPoolModelBehavior.java
@@ -1,5 +1,7 @@
 package org.ovirt.engine.ui.uicommonweb.models.vms;
 
+import java.util.ArrayList;
+import java.util.List;
 import org.ovirt.engine.core.common.businessentities.ActionGroup;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.StorageDomain;
@@ -19,9 +21,6 @@
 import 
org.ovirt.engine.ui.uicommonweb.models.vms.instancetypes.InstanceTypeManager;
 import 
org.ovirt.engine.ui.uicommonweb.validation.ExistingPoolNameLengthValidation;
 import org.ovirt.engine.ui.uicommonweb.validation.IValidation;
-
-import java.util.ArrayList;
-import java.util.List;
 
 public class ExistingPoolModelBehavior extends PoolModelBehaviorBase {
 
@@ -45,6 +44,7 @@
         }
 
         instanceTypeManager = new ExistingPoolInstanceTypeManager(getModel(), 
pool);
+        instanceTypeManager.setAlwaysEnabledFieldUpdate(true);
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
index 3540f00..d1057d2 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
@@ -56,8 +56,11 @@
         getModel().getInstanceTypes().setIsChangable(!vm.isRunning());
 
         loadDataCenter();
-
         instanceTypeManager = new ExistingVmInstanceTypeManager(getModel(), 
vm);
+
+        if (vm.getVmPoolId() != null) {
+            instanceTypeManager.setAlwaysEnabledFieldUpdate(true);
+        }
     }
 
     private void loadDataCenter() {
@@ -347,7 +350,15 @@
     }
 
     @Override
-    public InstanceTypeManager getInstanceTypeManager() {
-        return instanceTypeManager;
+    public void enableSinglePCI(boolean enabled) {
+        super.enableSinglePCI(enabled);
+        if (getInstanceTypeManager() != null) {
+            getInstanceTypeManager().maybeSetSingleQxlPci(vm.getStaticData());
+        }
+    }
+
+    @Override
+    public ExistingVmInstanceTypeManager getInstanceTypeManager() {
+        return (ExistingVmInstanceTypeManager) instanceTypeManager;
     }
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewPoolModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewPoolModelBehavior.java
index 7b21a0d..1b7f683 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewPoolModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewPoolModelBehavior.java
@@ -2,7 +2,6 @@
 
 import java.util.ArrayList;
 import java.util.List;
-
 import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
 import org.ovirt.engine.core.common.businessentities.VmTemplate;
@@ -128,4 +127,10 @@
     public InstanceTypeManager getInstanceTypeManager() {
         return instanceTypeManager;
     }
+
+    @Override
+    public void enableSinglePCI(boolean enabled) {
+        super.enableSinglePCI(enabled);
+        getModel().getIsSingleQxlEnabled().setEntity(enabled);
+    }
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java
index 40eaaf6..3b9f999 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java
@@ -4,7 +4,6 @@
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
-
 import org.ovirt.engine.core.common.businessentities.ActionGroup;
 import org.ovirt.engine.core.common.businessentities.Disk;
 import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType;
@@ -478,4 +477,10 @@
             
getModel().getName().setEntity(getModel().getBaseTemplate().getSelectedItem().getName());
         }
     }
+
+    @Override
+    public void enableSinglePCI(boolean enabled) {
+        super.enableSinglePCI(enabled);
+        getModel().getIsSingleQxlEnabled().setEntity(vm.getSingleQxlPci());
+    }
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java
index c9fb84a..baaeeba 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java
@@ -1,5 +1,7 @@
 package org.ovirt.engine.ui.uicommonweb.models.vms;
 
+import java.util.ArrayList;
+import java.util.List;
 import org.ovirt.engine.core.common.businessentities.InstanceType;
 import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.StoragePool;
@@ -21,9 +23,6 @@
 import 
org.ovirt.engine.ui.uicommonweb.models.vms.instancetypes.InstanceTypeManager;
 import 
org.ovirt.engine.ui.uicommonweb.models.vms.instancetypes.NewVmInstanceTypeManager;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
-
-import java.util.ArrayList;
-import java.util.List;
 
 public class NewVmModelBehavior extends VmModelBehaviorBase {
 
@@ -358,4 +357,11 @@
     public InstanceTypeManager getInstanceTypeManager() {
         return instanceTypeManager;
     }
+
+    @Override
+    public void enableSinglePCI(boolean enabled) {
+        super.enableSinglePCI(enabled);
+        getModel().getIsSingleQxlEnabled().setEntity(enabled);
+    }
+
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java
index 1846ada..b439c43 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java
@@ -4,7 +4,6 @@
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
-
 import org.ovirt.engine.core.common.businessentities.DisplayType;
 import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
@@ -241,4 +240,13 @@
         return template;
     }
 
+    @Override
+    public void enableSinglePCI(boolean enabled) {
+        super.enableSinglePCI(enabled);
+        if (enabled) {
+            
getModel().getIsSingleQxlEnabled().setEntity(template.getSingleQxlPci() && 
getModel().getIsQxlSupported());
+        } else {
+            getModel().getIsSingleQxlEnabled().setEntity(false);
+        }
+    }
 }
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 21b6b81..b352c30 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
@@ -9,7 +9,6 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-
 import org.ovirt.engine.core.common.businessentities.BootSequence;
 import org.ovirt.engine.core.common.businessentities.DisplayType;
 import org.ovirt.engine.core.common.businessentities.InstanceType;
@@ -2132,16 +2131,21 @@
         }
     }
 
-    private void handleQxlClusterLevel() {
+    public boolean getIsQxlSupported() {
         // Enable Single PCI only on cluster 3.3 and high and on Linux OS
         boolean isLinux = getIsLinuxOS();
         boolean isQxl = getDisplayType() == DisplayType.qxl;
         boolean clusterSupportsSinglePci = getSelectedCluster() != null &&
         
Version.v3_3.compareTo(getSelectedCluster().getcompatibility_version()) <= 0;
 
-        getBehavior().enableSinglePCI(isLinux && isQxl && 
clusterSupportsSinglePci);
+        return isLinux && isQxl && clusterSupportsSinglePci;
+    }
+
+    private void handleQxlClusterLevel() {
+        getBehavior().enableSinglePCI(getIsQxlSupported());
 
         if (getSelectedCluster() != null) {
+            boolean isQxl = getDisplayType() == DisplayType.qxl;
             boolean spiceFileTransferToggle = isQxl
                     && 
AsyncDataProvider.isSpiceFileTransferToggleSupported(getSelectedCluster().getcompatibility_version().toString());
             if (!spiceFileTransferToggle) {
@@ -2290,7 +2294,7 @@
         getMigrationDowntime().setIsChangable(Boolean.TRUE.equals(entity));
     }
 
-    private DisplayType getDisplayType() {
+    public DisplayType getDisplayType() {
         EntityModel<DisplayType> entityModel = 
getDisplayProtocol().getSelectedItem();
         if (entityModel == null)
         {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
index 0d72cde..d9b9e32 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
@@ -1,5 +1,12 @@
 package org.ovirt.engine.ui.uicommonweb.models.vms;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
 import java.util.Set;
 import org.ovirt.engine.core.common.TimeZoneType;
 import org.ovirt.engine.core.common.businessentities.ActionGroup;
@@ -41,14 +48,6 @@
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
 import org.ovirt.engine.ui.uicompat.UIConstants;
 import org.ovirt.engine.ui.uicompat.UIMessages;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
 
 public abstract class VmModelBehaviorBase<TModel extends UnitVmModel> {
 
@@ -1119,7 +1118,9 @@
 
     public void enableSinglePCI(boolean enabled) {
         getModel().getIsSingleQxlEnabled().setIsChangable(enabled);
-        getModel().getIsSingleQxlEnabled().setEntity(enabled);
+        if (!enabled) {
+            getModel().getIsSingleQxlEnabled().setEntity(false);
+        }
     }
 
     protected void updateRngDevice(Guid templateId) {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/ExistingPoolInstanceTypeManager.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/ExistingPoolInstanceTypeManager.java
index 12c877e..711bea5 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/ExistingPoolInstanceTypeManager.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/ExistingPoolInstanceTypeManager.java
@@ -37,4 +37,9 @@
     protected Guid getSelectedInstanceTypeId() {
         return super.getSelectedInstanceTypeId() == null ? 
pool.getInstanceTypeId() : super.getSelectedInstanceTypeId();
     }
+
+    protected void maybeSetSingleQxlPci(VmBase vmBase) {
+        maybeSetEntity(getModel().getIsSingleQxlEnabled(), 
pool.getSingleQxlPci());
+        getModel().getIsSingleQxlEnabled().setEntity(pool.getSingleQxlPci() && 
getModel().getIsQxlSupported());
+    }
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/ExistingVmInstanceTypeManager.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/ExistingVmInstanceTypeManager.java
index 1bdc74a..549dae2 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/ExistingVmInstanceTypeManager.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/ExistingVmInstanceTypeManager.java
@@ -45,4 +45,9 @@
     protected Guid getSelectedInstanceTypeId() {
         return super.getSelectedInstanceTypeId() == null ? 
vm.getInstanceTypeId() : super.getSelectedInstanceTypeId();
     }
+
+    @Override
+    public void maybeSetSingleQxlPci(VmBase vmBase) {
+        maybeSetEntity(getModel().getIsSingleQxlEnabled(), 
vm.getSingleQxlPci() && getModel().getIsQxlSupported());
+    }
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/InstanceTypeManager.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/InstanceTypeManager.java
index 61458eb..0f500e1 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/InstanceTypeManager.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/InstanceTypeManager.java
@@ -1,5 +1,8 @@
 package org.ovirt.engine.ui.uicommonweb.models.vms.instancetypes;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
 import org.ovirt.engine.core.common.businessentities.DisplayType;
 import org.ovirt.engine.core.common.businessentities.InstanceType;
 import org.ovirt.engine.core.common.businessentities.MigrationSupport;
@@ -27,10 +30,6 @@
 import org.ovirt.engine.ui.uicompat.EventArgs;
 import org.ovirt.engine.ui.uicompat.IEventListener;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
 /**
  * Base class which takes care about copying the proper fields from instance 
type/template/vm static to the VM.
  *
@@ -44,6 +43,9 @@
  *
  */
 public abstract class InstanceTypeManager {
+
+    // turns the maybeSet* to always let the entity be set - useful for e.g. 
pooled VMs were everything is disabled but has to be set according to the 
underlying VM
+    private boolean alwaysEnabledFieldUpdate = false;
 
     private final UnitVmModel model;
 
@@ -375,7 +377,7 @@
         return false;
     }
 
-    private void updateDefaultDisplayRelatedFields(VmBase vmBase) {
+    protected void updateDefaultDisplayRelatedFields(VmBase vmBase) {
         // Update display protocol selected item
         if (model.getDisplayProtocol().getItems() == null) {
             return;
@@ -399,17 +401,21 @@
         maybeSetSelectedItem(model.getNumOfMonitors(), 
vmBase.getNumOfMonitors());
         maybeSetSelectedItem(model.getUsbPolicy(), vmBase.getUsbPolicy());
         maybeSetEntity(model.getIsSmartcardEnabled(), 
vmBase.isSmartcardEnabled());
+        maybeSetSingleQxlPci(vmBase);
+    }
+
+    protected void maybeSetSingleQxlPci(VmBase vmBase) {
         maybeSetEntity(model.getIsSingleQxlEnabled(), 
vmBase.getSingleQxlPci());
     }
 
-    private <T> void maybeSetSelectedItem(ListModel<T> listModel, T value) {
-        if (listModel != null && listModel.getIsChangable() && 
listModel.getIsAvailable()) {
-            listModel.setSelectedItem(value);
+    protected <T> void maybeSetSelectedItem(ListModel<T> entityModel, T value) 
{
+        if (alwaysEnabledFieldUpdate || (entityModel != null && 
entityModel.getIsChangable() && entityModel.getIsAvailable())) {
+            entityModel.setSelectedItem(value);
         }
     }
 
-    private <T> void maybeSetEntity(EntityModel<T> listModel, T value) {
-        if (listModel != null && listModel.getIsChangable() && 
listModel.getIsAvailable()) {
+    protected <T> void maybeSetEntity(EntityModel<T> listModel, T value) {
+        if (alwaysEnabledFieldUpdate || (listModel != null && 
listModel.getIsChangable() && listModel.getIsAvailable())) {
             listModel.setEntity(value);
         }
     }
@@ -422,11 +428,14 @@
         void activated();
     }
 
+    public void setAlwaysEnabledFieldUpdate(boolean alwaysEnabledFieldUpdate) {
+        this.alwaysEnabledFieldUpdate = alwaysEnabledFieldUpdate;
+    }
+
     /**
      * The source from which the data has to be copyed to managed fields.
      *
      * It can be an instance type, a template or a VM's static data
      */
     protected abstract VmBase getSource();
-
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/NewPoolInstanceTypeManager.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/NewPoolInstanceTypeManager.java
index 9952a42..9eadbee 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/NewPoolInstanceTypeManager.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/NewPoolInstanceTypeManager.java
@@ -1,6 +1,7 @@
 package org.ovirt.engine.ui.uicommonweb.models.vms.instancetypes;
 
 import org.ovirt.engine.core.common.businessentities.VmBase;
+import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.ui.uicommonweb.models.vms.CustomInstanceType;
 import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel;
 
@@ -18,4 +19,18 @@
             return getModel().getTemplate().getSelectedItem();
         }
     }
+
+
+    @Override
+    protected void maybeSetSingleQxlPci(VmBase vmBase) {
+        boolean customInstanceTypeUsed = 
getModel().getInstanceTypes().getSelectedItem() instanceof CustomInstanceType;
+        boolean blankTemplateUsed =
+                getModel().getTemplate().getSelectedItem() != null
+                        && 
getModel().getTemplate().getSelectedItem().getId().equals(Guid.Empty);
+        if (customInstanceTypeUsed && blankTemplateUsed) {
+            maybeSetEntity(getModel().getIsSingleQxlEnabled(), 
getModel().getIsQxlSupported());
+        } else {
+            super.maybeSetSingleQxlPci(vmBase);
+        }
+    }
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/NewVmInstanceTypeManager.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/NewVmInstanceTypeManager.java
index 1d1905e..5c1a5d5 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/NewVmInstanceTypeManager.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/NewVmInstanceTypeManager.java
@@ -1,6 +1,7 @@
 package org.ovirt.engine.ui.uicommonweb.models.vms.instancetypes;
 
 import org.ovirt.engine.core.common.businessentities.VmBase;
+import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.ui.uicommonweb.models.vms.CustomInstanceType;
 import org.ovirt.engine.ui.uicommonweb.models.vms.EditProfileBehavior;
 import org.ovirt.engine.ui.uicommonweb.models.vms.ProfileBehavior;
@@ -28,5 +29,20 @@
         return networkBehavior;
     }
 
+    @Override
+    protected void maybeSetSingleQxlPci(VmBase vmBase) {
+        // We are setting the default Qxl support for true on new Linux VM 
with Spice display protocol
+        // The default value cannot be set in the template since it will 
effect REST API as well
+        boolean customInstanceTypeUsed = 
getModel().getInstanceTypes().getSelectedItem() instanceof CustomInstanceType;
+        boolean blankTemplateUsed =
+                getModel().getTemplate().getSelectedItem() != null
+                        && 
getModel().getTemplate().getSelectedItem().getId().equals(Guid.Empty);
+        if (customInstanceTypeUsed && blankTemplateUsed) {
+            maybeSetEntity(getModel().getIsSingleQxlEnabled(), 
getModel().getIsQxlSupported());
+        } else {
+            super.maybeSetSingleQxlPci(vmBase);
+        }
+    }
+
 
 }


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

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

Reply via email to