Daniel Erez has uploaded a new change for review.

Change subject: userportal: fix SD selection on clone VM from template
......................................................................

userportal: fix SD selection on clone VM from template

Fixing storage domain selection when creating a VM
from template using clone allocation.

DisksAllocationModel -> getImageToDestinationDomainMap()
should be passed to  AddVmFromTemplateParameters
(for getting user's selected values).

Change-Id: Ic1d372d30b3bcf110fa2f63847f6dfa32f8e6b62
Bug-Url: https://bugzilla.redhat.com/928399
Signed-off-by: Daniel Erez <de...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/DisksAllocationModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
2 files changed, 18 insertions(+), 39 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/74/13374/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/DisksAllocationModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/DisksAllocationModel.java
index 81abdd6..3aec211 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/DisksAllocationModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/DisksAllocationModel.java
@@ -1,6 +1,7 @@
 package org.ovirt.engine.ui.uicommonweb.models.storage;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 
@@ -8,6 +9,7 @@
 import org.ovirt.engine.core.common.businessentities.Quota;
 import org.ovirt.engine.core.common.businessentities.QuotaEnforcementTypeEnum;
 import org.ovirt.engine.core.common.businessentities.StorageDomain;
+import org.ovirt.engine.core.common.businessentities.VolumeType;
 import 
org.ovirt.engine.core.common.queries.GetAllRelevantQuotasForStorageParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
@@ -17,6 +19,7 @@
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
 import org.ovirt.engine.ui.uicommonweb.Linq;
 import org.ovirt.engine.ui.uicommonweb.Linq.DiskModelByAliasComparer;
+import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
 import org.ovirt.engine.ui.uicommonweb.models.ListModel;
 import org.ovirt.engine.ui.uicommonweb.models.vms.DiskModel;
@@ -192,20 +195,23 @@
         }
 
         for (DiskModel diskModel : disks) {
-            Guid diskId = ((DiskImage) diskModel.getDisk()).getId();
-            Guid storageId = null;
-            storageId = ((StorageDomain) 
diskModel.getStorageDomain().getSelectedItem()).getId();
-
+            StorageDomain storageDomain = (StorageDomain) 
diskModel.getStorageDomain().getSelectedItem();
             DiskImage diskImage = (DiskImage) diskModel.getDisk();
-            ArrayList<Guid> storageIdList = new ArrayList<Guid>();
-            storageIdList.add(storageId);
-            diskImage.setStorageIds(storageIdList);
+            diskImage.setStorageIds(new 
ArrayList<Guid>(Arrays.asList(storageDomain.getId())));
             diskImage.setDiskAlias((String) diskModel.getAlias().getEntity());
 
             if (diskModel.getQuota().getSelectedItem() != null) {
                 diskImage.setQuotaId(((Quota) 
diskModel.getQuota().getSelectedItem()).getId());
             }
-            imageToDestinationDomainMap.put(diskId, diskImage);
+
+            if (diskModel.getVolumeType().getIsAvailable()) {
+                VolumeType volumeType = (VolumeType) 
diskModel.getVolumeType().getSelectedItem();
+                diskImage.setVolumeType(volumeType);
+                
diskImage.setvolumeFormat(AsyncDataProvider.GetDiskVolumeFormat(
+                        volumeType, storageDomain.getStorageType()));
+            }
+
+            imageToDestinationDomainMap.put(diskImage.getId(), diskImage);
         }
     }
 
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 67f6dba..e2025b4 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
@@ -32,7 +32,6 @@
 import org.ovirt.engine.core.common.businessentities.VmPool;
 import org.ovirt.engine.core.common.businessentities.VmTemplate;
 import org.ovirt.engine.core.common.businessentities.VmType;
-import org.ovirt.engine.core.common.businessentities.VolumeType;
 import org.ovirt.engine.core.common.businessentities.storage_pool;
 import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
 import org.ovirt.engine.core.common.queries.GetAllDisksByVmIdParameters;
@@ -61,7 +60,6 @@
 import org.ovirt.engine.ui.uicommonweb.models.pools.PoolInterfaceListModel;
 import org.ovirt.engine.ui.uicommonweb.models.vms.BootSequenceModel;
 import org.ovirt.engine.ui.uicommonweb.models.vms.ConsoleModel;
-import org.ovirt.engine.ui.uicommonweb.models.vms.DiskModel;
 import org.ovirt.engine.ui.uicommonweb.models.vms.NewTemplateVmModelBehavior;
 import org.ovirt.engine.ui.uicommonweb.models.vms.RunOnceModel;
 import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel;
@@ -1417,36 +1415,11 @@
                         public void OnSuccess(Object model, Object result)
                         {
                             UserPortalListModel userPortalListModel1 = 
(UserPortalListModel) model;
-                            ArrayList<DiskImage> templateDisks = 
(ArrayList<DiskImage>) result;
-                            for (DiskImage templateDisk : templateDisks)
-                            {
-                                DiskModel disk = null;
-                                for (DiskModel a : ((UnitVmModel) 
userPortalListModel1.getWindow()).getDisks())
-                                {
-                                    if 
(templateDisk.getId().equals(a.getDisk().getId()))
-                                    {
-                                        disk = a;
-                                        break;
-                                    }
-                                }
+                            UnitVmModel unitVmModel = (UnitVmModel) 
userPortalListModel1.getWindow();
 
-                                if (disk != null) {
-                                    templateDisk.setVolumeType((VolumeType) 
disk.getVolumeType().getSelectedItem());
-                                    
templateDisk.setvolumeFormat(AsyncDataProvider.GetDiskVolumeFormat((VolumeType) 
disk.getVolumeType()
-                                            .getSelectedItem(),
-                                            
getstorageDomain().getStorageType()));
-                                }
-                            }
-
-                            HashMap<Guid, DiskImage> dict =
-                                    new HashMap<Guid, DiskImage>();
-                            for (DiskImage a : templateDisks)
-                            {
-                                dict.put(a.getId(), a);
-                            }
-
-                            AddVmFromTemplateParameters param =
-                                    new 
AddVmFromTemplateParameters(gettempVm(), dict, getstorageDomain().getId());
+                            AddVmFromTemplateParameters param = new 
AddVmFromTemplateParameters(gettempVm(),
+                                    
unitVmModel.getDisksAllocationModel().getImageToDestinationDomainMap(),
+                                    getstorageDomain().getId());
                             param.setMakeCreatorExplicitOwner(true);
 
                             ArrayList<VdcActionParametersBase> parameters = 
new ArrayList<VdcActionParametersBase>();


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

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

Reply via email to