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: I67e6c4af0ffed01f37bf3c5798654a250e45a018 Bug-Url: https://bugzilla.redhat.com/928399 Signed-off-by: Daniel Erez <[email protected]> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java 3 files changed, 9 insertions(+), 41 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/70/13770/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java index cc023a0..2f9c71f 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java @@ -798,6 +798,8 @@ } } else if ("IsCustomPropertiesTabAvailable".equals(propName)) { //$NON-NLS-1$ setupCustomPropertiesAvailability(object); + } else if ("IsDisksAvailable".equals(propName)) { //$NON-NLS-1$ + addDiskAllocation(object); } } }); @@ -815,13 +817,6 @@ // only for non local storage available setupHostTabAvailability(object); - - object.getStorageDomain().getItemsChangedEvent().addListener(new IEventListener() { - @Override - public void eventRaised(Event ev, Object sender, EventArgs args) { - addDiskAllocation(object); - } - }); object.getProvisioning().getPropertyChangedEvent().addListener(new IEventListener() { @Override diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java index 336f3c2..593f7e9 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java @@ -957,19 +957,6 @@ return list; } - public static ArrayList<StorageDomain> getStorageDomainsDisjoint(ArrayList<DiskModel> disks, - ArrayList<StorageDomain> storageDomains) { - ArrayList<ArrayList<StorageDomain>> storageDomainslists = new ArrayList<ArrayList<StorageDomain>>(); - for (DiskModel diskModel : disks) { - ArrayList<StorageDomain> list = - getStorageDomainsByIds(((DiskImage) diskModel.getDisk()).getStorageIds(), storageDomains); - - storageDomainslists.add(list); - } - - return Intersection(storageDomainslists); - } - public static <T> ArrayList<EntityModel> ToEntityModelList(ArrayList<T> list) { ArrayList<EntityModel> entityModelList = new ArrayList<EntityModel>(); 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 6efd341..0942843 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 @@ -38,13 +38,13 @@ import org.ovirt.engine.ui.uicommonweb.models.ListModel; import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemModel; import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemType; -import org.ovirt.engine.ui.uicommonweb.models.storage.DisksAllocationModel; import org.ovirt.engine.ui.uicompat.Constants; import org.ovirt.engine.ui.uicompat.ConstantsManager; public abstract class VmModelBehaviorBase<TModel extends UnitVmModel> { private final Constants constants = ConstantsManager.getInstance().getConstants(); + private TModel privateModel; public TModel getModel() { @@ -602,12 +602,10 @@ VmModelBehaviorBase behavior = (VmModelBehaviorBase) target; ArrayList<StorageDomain> storageDomains = (ArrayList<StorageDomain>) returnValue; ArrayList<StorageDomain> activeStorageDomains = FilterStorageDomains(storageDomains); - DisksAllocationModel disksAllocationModel = getModel().getDisksAllocationModel(); boolean provisioning = (Boolean) behavior.getModel().getProvisioning().getEntity(); ArrayList<DiskModel> disks = (ArrayList<DiskModel>) behavior.getModel().getDisks(); Linq.Sort(activeStorageDomains, new Linq.StorageDomainByNameComparer()); - disksAllocationModel.setActiveStorageDomains(activeStorageDomains); for (DiskModel diskModel : disks) { ArrayList<StorageDomain> availableDiskStorageDomains = new ArrayList<StorageDomain>(); @@ -618,27 +616,15 @@ ArrayList<StorageDomain> activeDiskStorageDomains = Linq.getStorageDomainsByIds(storageIds, activeStorageDomains); - if (provisioning) { - if (activeDiskStorageDomains.size() > 0) { - availableDiskStorageDomains = activeStorageDomains; - } - } - else { - availableDiskStorageDomains = activeDiskStorageDomains; - } + // Set target storage domains + availableDiskStorageDomains = provisioning ? activeStorageDomains : activeDiskStorageDomains; Linq.Sort(availableDiskStorageDomains, new Linq.StorageDomainByNameComparer()); diskModel.getStorageDomain().setItems(availableDiskStorageDomains); + + diskModel.getStorageDomain().setIsChangable(!availableDiskStorageDomains.isEmpty()); + diskModel.getStorageDomain().setChangeProhibitionReason( + constants.noActiveTargetStorageDomainAvailableMsg()); } - - ArrayList<StorageDomain> storageDomainsDisjoint = - Linq.getStorageDomainsDisjoint(disks, activeStorageDomains); - - Linq.Sort(storageDomainsDisjoint, new Linq.StorageDomainByNameComparer()); - - ArrayList<StorageDomain> singleDestDomains = - provisioning ? activeStorageDomains : storageDomainsDisjoint; - getModel().getStorageDomain().setItems(singleDestDomains); - getModel().getStorageDomain().setSelectedItem(Linq.FirstOrDefault(singleDestDomains)); } }, getModel().getHash()), dataCenter.getId(), ActionGroup.CREATE_VM); } -- To view, visit http://gerrit.ovirt.org/13770 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I67e6c4af0ffed01f37bf3c5798654a250e45a018 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Daniel Erez <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
