Vitor de Lima has uploaded a new change for review.

Change subject: ui: Avoid the selection of incompatible templates
......................................................................

ui: Avoid the selection of incompatible templates

This change filters the displayed templates in the "New Pool" and
"New VM" dialogs to show only the ones that are compatible with the
selected cluster.

Change-Id: I2acd521718c8c6d4c27ffce20628b8d096dc4f1a
Signed-off-by: Vitor de Lima <vitor.l...@eldorado.org.br>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.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/PoolModelBehaviorBase.java
3 files changed, 36 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/87/19487/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
index c450bc8..5c9b36c 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
@@ -18,6 +18,7 @@
 import org.ovirt.engine.core.common.VdcObjectType;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.businessentities.ActionGroup;
+import org.ovirt.engine.core.common.businessentities.ArchitectureType;
 import org.ovirt.engine.core.common.businessentities.DbUser;
 import org.ovirt.engine.core.common.businessentities.Disk;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
@@ -772,6 +773,20 @@
                 aQuery);
     }
 
+    public static ArrayList<VmTemplate> 
filterTemplatesByArchitecture(List<VmTemplate> list,
+            ArchitectureType architecture) {
+        ArrayList<VmTemplate> filteredList = new ArrayList<VmTemplate>();
+
+        for (VmTemplate template : list) {
+            if (template.getArchitecture().equals(architecture)
+                    || 
template.getArchitecture().equals(ArchitectureType.undefined)) {
+                filteredList.add(template);
+            }
+        }
+
+        return filteredList;
+    }
+
     public static void getNumOfMonitorList(AsyncQuery aQuery) {
         aQuery.converterCallback = new IAsyncConverter() {
             @Override
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 2edf060..152b372 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
@@ -253,6 +253,8 @@
             return;
         }
 
+        final VDSGroup selectedCluster = getModel().getSelectedCluster();
+
         // Filter according to system tree selection.
         if (getSystemTreeSelectedItem() != null && 
getSystemTreeSelectedItem().getType() == SystemTreeItemType.Storage)
         {
@@ -285,7 +287,12 @@
                                             {
                                                 templatesByStorage.add(0, 
blankTemplate);
                                             }
-                                            
behavior2.postInitTemplate((ArrayList<VmTemplate>) returnValue2);
+
+                                            ArrayList<VmTemplate> templateList 
=
+                                                    
AsyncDataProvider.filterTemplatesByArchitecture(templatesByStorage,
+                                                            
selectedCluster.getArchitecture());
+
+                                            
behavior2.postInitTemplate(templateList);
 
                                         }
                                     }),
@@ -303,7 +310,11 @@
                         public void onSuccess(Object target, Object 
returnValue) {
 
                             NewVmModelBehavior behavior = (NewVmModelBehavior) 
target;
-                            behavior.postInitTemplate((ArrayList<VmTemplate>) 
returnValue);
+
+                            ArrayList<VmTemplate> templates = 
(ArrayList<VmTemplate>) returnValue;
+
+                            
behavior.postInitTemplate(AsyncDataProvider.filterTemplatesByArchitecture(templates,
+                                    selectedCluster.getArchitecture()));
 
                         }
                     }, getModel().getHash()), dataCenter.getId());
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PoolModelBehaviorBase.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PoolModelBehaviorBase.java
index c400317..6a1817e 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PoolModelBehaviorBase.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PoolModelBehaviorBase.java
@@ -223,6 +223,8 @@
             return;
         }
 
+        final VDSGroup selectedCluster = getModel().getSelectedCluster();
+
         AsyncDataProvider.getTemplateListByDataCenter(new AsyncQuery(this, new 
INewAsyncCallback() {
             @Override
             public void onSuccess(Object target1, Object returnValue1) {
@@ -235,8 +237,12 @@
                         templates.add(template);
                     }
                 }
-                getModel().getTemplate().setItems(templates);
-                setupSelectedTemplate(getModel().getTemplate(), templates);
+
+                ArrayList<VmTemplate> filteredTemplates =
+                        
AsyncDataProvider.filterTemplatesByArchitecture(templates, 
selectedCluster.getArchitecture());
+
+                getModel().getTemplate().setItems(filteredTemplates);
+                setupSelectedTemplate(getModel().getTemplate(), 
filteredTemplates);
             }
         }), dataCenter.getId());
 


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2acd521718c8c6d4c27ffce20628b8d096dc4f1a
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Vitor de Lima <vitor.l...@eldorado.org.br>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to