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