Vitor de Lima has uploaded a new change for review. Change subject: webadmin: Filter clusters by arch in FE ......................................................................
webadmin: Filter clusters by arch in FE This patch introduces some changes in the frontend in order to prevent the user from making mistakes and receive errors from the backend commands. These changes include: * Show only clusters with the same architecture as the VM, Pool or Template when editing them; * Show only clusters with the same architecture as the VM used as a model when creating a template; * Hide clusters with undefined architecture in the 'New VM' and 'New Pool' dialogs. Change-Id: I89df0de70a26379642a09e765631d3abf3200339 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/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/PoolModelBehaviorBase.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/UserPortalExistingVmModelBehavior.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalNewVmModelBehavior.java 11 files changed, 64 insertions(+), 9 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/56/22356/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 c4cc87e..68389df 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 @@ -702,6 +702,17 @@ return filteredClusters; } + public static List<VDSGroup> filterClustersWithoutArchitecture(List<VDSGroup> clusters) { + List<VDSGroup> filteredClusters = new ArrayList<VDSGroup>(); + + for (VDSGroup cluster : clusters) { + if (cluster.getArchitecture() != ArchitectureType.undefined) { + filteredClusters.add(cluster); + } + } + return filteredClusters; + } + public static void getClusterByServiceList(AsyncQuery aQuery, Guid dataCenterId, final boolean supportsVirtService, final boolean supportsGlusterService) { aQuery.converterCallback = new IAsyncConverter() { 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 0adf740..e68d478 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 @@ -8,6 +8,7 @@ import org.ovirt.engine.core.common.businessentities.DisplayType; import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.StoragePool; +import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VmBase; import org.ovirt.engine.core.common.businessentities.VmStatic; @@ -131,4 +132,9 @@ return parentValidation; } + + @Override + protected List<VDSGroup> filterClusters(List<VDSGroup> clusters) { + return AsyncDataProvider.filterByArchitecture(clusters, pool.getClusterArch()); + } } 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 5e65b36..a585ef3 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 @@ -127,9 +127,15 @@ @Override public void onSuccess(Object target, Object returnValue) { UnitVmModel model = (UnitVmModel) target; + + List<VDSGroup> clusters = (List<VDSGroup>) returnValue; + + List<VDSGroup> filteredClusters = + AsyncDataProvider.filterByArchitecture(clusters, vm.getClusterArch()); + model.setDataCentersAndClusters(model, dataCenters, - (List<VDSGroup>) returnValue, vm.getVdsGroupId()); + filteredClusters, vm.getVdsGroupId()); initTemplate(); initCdImage(); initSoundCard(vm.getId()); 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 db82b42..9b8e36c 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 @@ -4,9 +4,11 @@ import org.ovirt.engine.core.common.businessentities.DisplayType; import org.ovirt.engine.core.common.businessentities.StoragePool; +import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.businessentities.VmBase; import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.ui.uicommonweb.Linq; +import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider; import org.ovirt.engine.ui.uicommonweb.models.ListModel; import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemModel; import org.ovirt.engine.ui.uicommonweb.validation.IValidation; @@ -73,4 +75,9 @@ return parentValidation; } + + @Override + protected List<VDSGroup> filterClusters(List<VDSGroup> clusters) { + return AsyncDataProvider.filterClustersWithoutArchitecture(clusters); + } } 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 b7d4e4d..ae01221 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 @@ -73,9 +73,14 @@ UnitVmModel model = (UnitVmModel) target; List<VDSGroup> clusters = (List<VDSGroup>) returnValue; + + List<VDSGroup> filteredClusters = + AsyncDataProvider.filterByArchitecture(clusters, + vm.getClusterArch()); + model.setDataCentersAndClusters(model, Arrays.asList(dataCenter), - clusters, + filteredClusters, vm.getVdsGroupId()); initTemplate(); 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 12ce015..d4a7983 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 @@ -56,9 +56,11 @@ @Override public void onSuccess(Object target, Object returnValue) { UnitVmModel model = (UnitVmModel) target; + List<VDSGroup> clusterList = (List<VDSGroup>) returnValue; + List<VDSGroup> filteredClusterList = AsyncDataProvider.filterClustersWithoutArchitecture(clusterList); model.setDataCentersAndClusters(model, dataCenters, - (List<VDSGroup>) returnValue, null); + filteredClusterList, null); initCdImage(); } }, getModel().getHash()), 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 004157e..d6c6fd9 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 @@ -77,9 +77,11 @@ @Override public void onSuccess(Object target, Object returnValue) { UnitVmModel model = (UnitVmModel) target; + List<VDSGroup> clusters = (List<VDSGroup>) returnValue; + List<VDSGroup> filteredClusters = filterClusters(clusters); model.setDataCentersAndClusters(model, dataCenters, - (List<VDSGroup>) returnValue, null); + filteredClusters, null); initCdImage(); getPoolModelBehaviorInitializedEvent().raise(this, EventArgs.Empty); } @@ -87,6 +89,8 @@ true, false); } + protected abstract List<VDSGroup> filterClusters(List<VDSGroup> clusters); + protected void setupWindowModelFrom(VmBase vmBase) { if (vmBase != null) { updateQuotaByCluster(vmBase.getQuotaId(), vmBase.getQuotaName()); 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 73e519c..03491e8 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 @@ -3,6 +3,7 @@ import java.util.ArrayList; 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; @@ -51,13 +52,18 @@ UnitVmModel model = (UnitVmModel) target; ArrayList<VDSGroup> clusters = (ArrayList<VDSGroup>) returnValue; - ArrayList<VDSGroup> filteredClusters = new ArrayList<VDSGroup>(); + ArrayList<VDSGroup> clustersSupportingVirt = new ArrayList<VDSGroup>(); // filter clusters supporting virt service only for (VDSGroup cluster : clusters) { if (cluster.supportsVirtService()) { - filteredClusters.add(cluster); + clustersSupportingVirt.add(cluster); } } + + List<VDSGroup> filteredClusters = + AsyncDataProvider.filterByArchitecture(clustersSupportingVirt, + template.getClusterArch()); + model.setDataCentersAndClusters(model, new ArrayList<StoragePool>(Arrays.asList(new StoragePool[] { dataCenter })), filteredClusters, 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 a29da2a..43ff041 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 @@ -2040,8 +2040,10 @@ new ArrayList<DataCenterWithCluster>(); for (StoragePool dataCenter : dataCenters) { - for (VDSGroup cluster : dataCenterToCluster.get(dataCenter.getId())) { - dataCentersWithClusters.add(new DataCenterWithCluster(dataCenter, cluster)); + if (dataCenterToCluster.containsKey(dataCenter.getId())) { + for (VDSGroup cluster : dataCenterToCluster.get(dataCenter.getId())) { + dataCentersWithClusters.add(new DataCenterWithCluster(dataCenter, cluster)); + } } } getDataCenterWithClustersList().setItems(dataCentersWithClusters); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalExistingVmModelBehavior.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalExistingVmModelBehavior.java index daec44c..3e6f49c 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalExistingVmModelBehavior.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalExistingVmModelBehavior.java @@ -50,6 +50,9 @@ UnitVmModel model = (UnitVmModel) array[1]; List<VDSGroup> clusters = (List<VDSGroup>) returnValue; + // filter clusters by architecture + clusters = AsyncDataProvider.filterByArchitecture(clusters, vm.getClusterArch()); + if (containsVmCluster(clusters)) { Collections.sort(clusters, new NameableComparator()); model.setDataCentersAndClusters(model, dataCenters, clusters, vm.getVdsGroupId()); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalNewVmModelBehavior.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalNewVmModelBehavior.java index 8f2ca06..d62a088 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalNewVmModelBehavior.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalNewVmModelBehavior.java @@ -64,9 +64,12 @@ @Override public void onSuccess(Object target, Object returnValue) { UnitVmModel model = (UnitVmModel) target; + List<VDSGroup> clusters = (List<VDSGroup>) returnValue; + // filter clusters without cpu name + clusters = AsyncDataProvider.filterClustersWithoutArchitecture(clusters); model.setDataCentersAndClusters(model, dataCenters, - (List<VDSGroup>) returnValue, null); + clusters, null); } }, getModel().getHash()), CREATE_VM, true, false); -- To view, visit http://gerrit.ovirt.org/22356 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I89df0de70a26379642a09e765631d3abf3200339 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