Tomas Jelinek has uploaded a new change for review. Change subject: webadmin: added the instance images widget to new/edit VM ......................................................................
webadmin: added the instance images widget to new/edit VM Change-Id: I792340b0bfb632f956961959f36f79d841cad50a Bug-Url: https://bugzilla.redhat.com/1117489 Signed-off-by: Tomas Jelinek <tjeli...@redhat.com> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmPopupWidget.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseInterfaceCreatingManager.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/UnitVmModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmInterfaceCreatingManager.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/InstanceTypeInterfaceCreatingManager.java M frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseVmModelBehaviorTest.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/VirtualMachineModule.java 14 files changed, 103 insertions(+), 35 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/64/36064/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 1f2dad9..41ff430 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 @@ -1,6 +1,7 @@ package org.ovirt.engine.ui.common.widget.uicommon.popup; +import static org.ovirt.engine.ui.common.widget.uicommon.popup.vm.PopupWidgetConfig.hiddenField; import static org.ovirt.engine.ui.common.widget.uicommon.popup.vm.PopupWidgetConfig.simpleField; import java.util.ArrayList; @@ -73,6 +74,7 @@ import org.ovirt.engine.ui.common.widget.renderer.MemorySizeRenderer; import org.ovirt.engine.ui.common.widget.renderer.NullSafeRenderer; import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip; +import org.ovirt.engine.ui.common.widget.uicommon.instanceimages.InstanceImagesEditor; import org.ovirt.engine.ui.common.widget.uicommon.popup.vm.PopupWidgetConfig; import org.ovirt.engine.ui.common.widget.uicommon.popup.vm.PopupWidgetConfigMap; import org.ovirt.engine.ui.common.widget.uicommon.popup.vm.SerialNumberPolicyWidget; @@ -233,6 +235,11 @@ @UiField public Panel logicalNetworksEditorPanel; + + @UiField + @Ignore + @WithElementId("instanceImages") + public InstanceImagesEditor instanceImagesEditor; @UiField @Ignore @@ -1433,6 +1440,7 @@ priorityEditor.asEditor().edit(model.getPriority()); driver.edit(model); profilesInstanceTypeEditor.edit(model.getNicsWithLogicalNetworks()); + instanceImagesEditor.edit(model.getInstanceImages()); customPropertiesSheetEditor.edit(model.getCustomPropertySheet()); vmInitEditor.edit(model.getVmInitModel()); serialNumberPolicyEditor.edit(model.getSerialNumberPolicy()); @@ -1919,7 +1927,8 @@ putOne(isSoundcardEnabledEditor, simpleField().visibleInAdvancedModeOnly()). putOne(isConsoleDeviceEnabledEditor, simpleField().visibleInAdvancedModeOnly()). putOne(spiceFileTransferEnabledEditor, simpleField().visibleInAdvancedModeOnly()). - putOne(spiceCopyPasteEnabledEditor, simpleField().visibleInAdvancedModeOnly()); + putOne(spiceCopyPasteEnabledEditor, simpleField().visibleInAdvancedModeOnly()). + putOne(instanceImagesEditor, hiddenField()); } protected List<Widget> consoleTabWidgets() { diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml index 91e40ab..5a9bbc5 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml @@ -9,7 +9,8 @@ xmlns:s="urn:import:org.ovirt.engine.ui.common.widget.uicommon.storage" xmlns:k="urn:import:org.ovirt.engine.ui.common.widget.form.key_value" xmlns:p="urn:import:org.ovirt.engine.ui.common.widget.profile" - xmlns:vm="urn:import:org.ovirt.engine.ui.common.widget.uicommon.popup.vm"> + xmlns:vm="urn:import:org.ovirt.engine.ui.common.widget.uicommon.popup.vm" + xmlns:ii="urn:import:org.ovirt.engine.ui.common.widget.uicommon.instanceimages"> <ui:with field='resources' type='org.ovirt.engine.ui.common.CommonApplicationResources' /> <ui:with field='constants' type='org.ovirt.engine.ui.common.CommonApplicationConstants'/> @@ -498,6 +499,9 @@ <ge:EntityModelCheckBoxEditor ui:field="isDeleteProtectedEditor" contentWidgetStyleName="{style.horizontallyAlignedCheckBoxContent}" addStyleNames="{style.horizontallyAlignedCheckBox}" /> <ge:EntityModelCheckBoxEditor ui:field="copyTemplatePermissionsEditor" contentWidgetStyleName="{style.horizontallyAlignedCheckBoxContent}" addStyleNames="{style.horizontallyAlignedCheckBox}" /> </g:FlowPanel> + <g:FlowPanel addStyleNames="{style.sectionPanel}"> + <ii:InstanceImagesEditor ui:field="instanceImagesEditor"/> + </g:FlowPanel> <g:FlowPanel ui:field="logicalNetworksEditorPanel" addStyleNames="{style.sectionPanel}"> <p:ProfilesInstanceTypeEditor ui:field="profilesInstanceTypeEditor" /> </g:FlowPanel> diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmPopupWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmPopupWidget.java index 3372f61..5d67bc6 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmPopupWidget.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmPopupWidget.java @@ -11,6 +11,7 @@ import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel; import static org.ovirt.engine.ui.common.widget.uicommon.popup.vm.PopupWidgetConfig.hiddenField; +import static org.ovirt.engine.ui.common.widget.uicommon.popup.vm.PopupWidgetConfig.simpleField; public class VmPopupWidget extends AbstractVmPopupWidget { @@ -47,7 +48,8 @@ protected PopupWidgetConfigMap createWidgetConfiguration() { PopupWidgetConfigMap widgetConfiguration = super.createWidgetConfiguration(). putAll(poolSpecificFields(), hiddenField()). - update(templateVersionNameEditor, hiddenField()); + update(templateVersionNameEditor, hiddenField()). + update(instanceImagesEditor, simpleField()); updateOrAddToWidgetConfiguration(widgetConfiguration, detachableWidgets(), UpdateToDetachable.INSTANCE); updateOrAddToWidgetConfiguration(widgetConfiguration, adminOnlyWidgets(), UpdateToAdminOnly.INSTANCE); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolModel.java index d1b137b..79022f2 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolModel.java @@ -12,7 +12,7 @@ public class PoolModel extends UnitVmModel { public PoolModel(VmModelBehaviorBase behavior) { - super(behavior); + super(behavior, null); ArrayList<EntityModel<VmPoolType>> poolTypeItems = new ArrayList<EntityModel<VmPoolType>>(); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java index d09af3b..2adcb36 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java @@ -464,7 +464,7 @@ } private void vmInitLoaded(VmTemplate template) { - UnitVmModel model = new UnitVmModel(createBehavior(template)); + UnitVmModel model = new UnitVmModel(createBehavior(template), this); model.setIsAdvancedModeLocalStorageKey(getEditTemplateAdvancedModelKey()); setWindow(model); model.setTitle(ConstantsManager.getInstance().getConstants().editTemplateTitle()); 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 13e5850..e2c73f0 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 @@ -104,7 +104,7 @@ VmInterfaceCreatingManager defaultNetworkCreatingManager = new VmInterfaceCreatingManager(new VmInterfaceCreatingManager.PostVnicCreatedCallback() { @Override - public void vnicCreated(Guid vmId) { + public void vnicCreated(Guid vmId, UnitVmModel unitVmModel) { if (getWindow() != null) { getWindow().stopProgress(); } @@ -563,7 +563,7 @@ } VM vm = (VM) selectedItem.getEntity(); - UnitVmModel windowModel = new UnitVmModel(new UserPortalNewTemplateVmModelBehavior(vm)); + UnitVmModel windowModel = new UnitVmModel(new UserPortalNewTemplateVmModelBehavior(vm), this); setWindow(windowModel); windowModel.setTitle(ConstantsManager.getInstance().getConstants().newTemplateTitle()); windowModel.setHelpTag(HelpTag.new_template); @@ -761,7 +761,7 @@ private void newInternal() { - UnitVmModel model = new UnitVmModel(new UserPortalNewVmModelBehavior()); + UnitVmModel model = new UnitVmModel(new UserPortalNewVmModelBehavior(), this); model.getVmType().setSelectedItem(VmType.Server); model.setTitle(ConstantsManager.getInstance() .getConstants().newVmTitle()); @@ -822,7 +822,7 @@ } private void vmInitLoaded(VM vm) { - UnitVmModel model = new UnitVmModel(new UserPortalExistingVmModelBehavior(vm)); + UnitVmModel model = new UnitVmModel(new UserPortalExistingVmModelBehavior(vm), this); model.setTitle(ConstantsManager.getInstance() .getConstants().editVmTitle()); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseInterfaceCreatingManager.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseInterfaceCreatingManager.java index a21da7f..5eadf24 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseInterfaceCreatingManager.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseInterfaceCreatingManager.java @@ -29,7 +29,7 @@ } public static interface PostVnicCreatedCallback { - void vnicCreated(Guid vmId); + void vnicCreated(Guid vmId, UnitVmModel unitVmModel); void queryFailed(); } @@ -93,7 +93,7 @@ } } - doNicManipulation(createVnicParameters, updateVnicParameters, removeVnicParameters, unitVmModel.getIsNew(), vmId); + doNicManipulation(createVnicParameters, updateVnicParameters, removeVnicParameters, unitVmModel.getIsNew(), vmId, unitVmModel); } }; @@ -112,5 +112,6 @@ final ArrayList<VdcActionParametersBase> updateVnicParameters, final ArrayList<VdcActionParametersBase> removeVnicParameters, final boolean isAddingNewVm, - final Guid id); + final Guid id, + final UnitVmModel unitVmModel); } 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 768136f..3078b339 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 @@ -5,6 +5,7 @@ import java.util.List; import java.util.Map; +import org.ovirt.engine.core.common.businessentities.Disk; import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSGroup; @@ -229,10 +230,29 @@ updateCpuSharesAvailability(); updateVirtioScsiAvailability(); updateOSValues(); + updateInstanceImages(); instanceTypeManager.updateAll(); } + private void updateInstanceImages() { + AsyncDataProvider.getInstance().getVmDiskList(new AsyncQuery(getModel(), new INewAsyncCallback() { + @Override + public void onSuccess(Object model, Object returnValue) { + List<InstanceImageLineModel> imageLineModels = new ArrayList<>(); + + for (Disk disk : ((ArrayList<Disk>) returnValue)) { + InstanceImageLineModel lineModel = new InstanceImageLineModel(getModel().getInstanceImages()); + lineModel.initialize(disk, getVm()); + imageLineModels.add(lineModel); + } + + getModel().getInstanceImages().setItems(imageLineModels); + getModel().getInstanceImages().setVm(getVm()); + } + }), getVm().getId()); + } + @Override protected void changeDefualtHost() { super.changeDefualtHost(); 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 e20561e..b12eef3 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 @@ -416,6 +416,16 @@ return instanceTypes; } + private InstanceImagesModel instanceImages; + + public InstanceImagesModel getInstanceImages() { + return instanceImages; + } + + public void setInstanceImages(InstanceImagesModel instanceImages) { + this.instanceImages = instanceImages; + } + private NotChangableForVmInPoolListModel<VmType> vmType; public void setVmType(NotChangableForVmInPoolListModel<VmType> vmType) { @@ -1343,7 +1353,7 @@ private boolean numaChanged = false; - public UnitVmModel(VmModelBehaviorBase behavior) { + public UnitVmModel(VmModelBehaviorBase behavior, ListModel parentModel) { Frontend.getInstance().getQueryStartedEvent().addListener(this); Frontend.getInstance().getQueryCompleteEvent().addListener(this); @@ -1453,6 +1463,7 @@ getTemplate().getSelectedItemChangedEvent().addListener(this); setInstanceTypes(new NotChangableForVmInPoolListModel<InstanceType>()); + setInstanceImages(new InstanceImagesModel(this, parentModel)); setQuota(new NotChangableForVmInPoolListModel<Quota>()); getQuota().setIsAvailable(false); @@ -2072,6 +2083,7 @@ updateWatchdogModels(); updateBootMenu(); + getInstanceImages().updateActionsAvailability(); } private void updateBootMenu() { @@ -2165,6 +2177,7 @@ updateWatchdogModels(osType); vmInitEnabledChanged(); + getInstanceImages().updateActionsAvailability(); } private void updateWatchdogModels() { @@ -2621,7 +2634,6 @@ } } } - setValidTab(TabName.GENERAL_TAB, isValidTab(TabName.GENERAL_TAB) && getDataCenterWithClustersList().getIsValid() diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmInterfaceCreatingManager.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmInterfaceCreatingManager.java index 9c7952e..6db9738 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmInterfaceCreatingManager.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmInterfaceCreatingManager.java @@ -55,7 +55,8 @@ final ArrayList<VdcActionParametersBase> updateVnicParameters, final ArrayList<VdcActionParametersBase> removeVnicParameters, final boolean isAddingNewVm, - final Guid id) { + final Guid id, + final UnitVmModel unitVmModel) { Frontend.getInstance().runMultipleActions(VdcActionType.AddVmInterface, createVnicParameters, new IFrontendActionAsyncCallback() { @@ -78,11 +79,11 @@ VmOperationParameterBase reorderParams = new VmOperationParameterBase(id); Frontend.getInstance().runAction(VdcActionType.ReorderVmNics, reorderParams, new IFrontendActionAsyncCallback() { public void executed(FrontendActionAsyncResult result) { - getCallback().vnicCreated(id); + getCallback().vnicCreated(id, unitVmModel); } }); } else { - getCallback().vnicCreated(id); + getCallback().vnicCreated(id, unitVmModel); } } }, this); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java index 955ccfd..49ed9da 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java @@ -428,10 +428,11 @@ VmInterfaceCreatingManager defaultNetworkCreatingManager = new VmInterfaceCreatingManager(new VmInterfaceCreatingManager.PostVnicCreatedCallback() { @Override - public void vnicCreated(Guid vmId) { + public void vnicCreated(Guid vmId, UnitVmModel unitVmModel) { getWindow().stopProgress(); cancel(); updateActionAvailability(); + executeDiskModifications(vmId, unitVmModel); } @Override @@ -444,8 +445,8 @@ VmInterfaceCreatingManager addVmFromBlankTemplateNetworkManager = new VmInterfaceCreatingManager(new VmInterfaceCreatingManager.PostVnicCreatedCallback() { @Override - public void vnicCreated(Guid vmId) { - // do nothing + public void vnicCreated(Guid vmId, UnitVmModel unitVmModel) { + executeDiskModifications(vmId, unitVmModel); } @Override @@ -732,7 +733,7 @@ return; } - UnitVmModel model = new UnitVmModel(new NewVmModelBehavior()); + UnitVmModel model = new UnitVmModel(new NewVmModelBehavior(), this); model.setTitle(ConstantsManager.getInstance().getConstants().newVmTitle()); model.setHelpTag(HelpTag.new_vm); model.setHashName("new_vm"); //$NON-NLS-1$ @@ -814,7 +815,7 @@ } private void vmInitLoaded(VM vm) { - UnitVmModel model = new UnitVmModel(new ExistingVmModelBehavior(vm)); + UnitVmModel model = new UnitVmModel(new ExistingVmModelBehavior(vm), this); model.getVmType().setSelectedItem(vm.getVmType()); model.setVmAttachedToPool(vm.getVmPoolId() != null); model.setIsAdvancedModeLocalStorageKey("wa_vm_dialog"); //$NON-NLS-1$ @@ -1319,7 +1320,7 @@ return; } - UnitVmModel model = new UnitVmModel(new NewTemplateVmModelBehavior(vm)); + UnitVmModel model = new UnitVmModel(new NewTemplateVmModelBehavior(vm), this); setWindow(model); model.setTitle(ConstantsManager.getInstance().getConstants().newTemplateTitle()); @@ -2080,7 +2081,7 @@ model.startProgress(null); - VM vm = getcurrentVm(); + final VM vm = getcurrentVm(); vm.setUseLatestVersion(constants.latestTemplateVersionName().equals(model.getTemplate().getSelectedItem().getTemplateVersionName())); AddVmParameters parameters = new AddVmParameters(vm); @@ -2097,7 +2098,13 @@ model.getProvisioning().getEntity() ? VdcActionType.AddVmFromTemplate : VdcActionType.AddVm, parameters, createUnitVmModelNetworkAsyncCallback(vm, model), - this); + this); + } + + private void executeDiskModifications(Guid vmId, UnitVmModel model) { + // this is done on the background - the window is not visible anymore + getcurrentVm().setId(vmId); + model.getInstanceImages().executeDiskModifications(getcurrentVm()); } private UnitVmModelNetworkAsyncCallback createUnitVmModelNetworkAsyncCallback(VM vm, UnitVmModel model) { @@ -2109,9 +2116,7 @@ VdcReturnValueBase returnValue = result.getReturnValue(); if (returnValue != null && returnValue.getSucceeded()) { setWindow(null); - setGuideContext(returnValue.getActionReturnValue()); updateActionAvailability(); - getGuideCommand().execute(); } else { cancel(); } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/InstanceTypeInterfaceCreatingManager.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/InstanceTypeInterfaceCreatingManager.java index df4b2c5..7eb71ae 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/InstanceTypeInterfaceCreatingManager.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/InstanceTypeInterfaceCreatingManager.java @@ -43,7 +43,8 @@ final ArrayList<VdcActionParametersBase> updateVnicParameters, final ArrayList<VdcActionParametersBase> removeVnicParameters, final boolean isAddingNewVm, - final Guid id) { + final Guid id, + final UnitVmModel unitVmModel) { Frontend.getInstance().runMultipleActions(VdcActionType.AddVmTemplateInterface, createVnicParameters, new IFrontendActionAsyncCallback() { @@ -63,7 +64,7 @@ @Override public void executed(FrontendActionAsyncResult result) { // no need to reorder - it will be done for the VMs when creating from instance type - getCallback().vnicCreated(id); + getCallback().vnicCreated(id, unitVmModel); } }, this); } diff --git a/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseVmModelBehaviorTest.java b/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseVmModelBehaviorTest.java index 74e7a32..ecd1f51 100644 --- a/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseVmModelBehaviorTest.java +++ b/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseVmModelBehaviorTest.java @@ -69,7 +69,7 @@ final VDSGroup cluster = new VDSGroup(); cluster.setcompatibility_version(Version.v3_5); - UnitVmModel model = new UnitVmModel(behavior) { + UnitVmModel model = new UnitVmModel(behavior, null) { @Override public EntityModel<Boolean> getIsSingleQxlEnabled() { return new EntityModel<Boolean>(true); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/VirtualMachineModule.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/VirtualMachineModule.java index cdeb851..8db8caa 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/VirtualMachineModule.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/VirtualMachineModule.java @@ -25,6 +25,9 @@ import org.ovirt.engine.ui.uicommonweb.models.Model; import org.ovirt.engine.ui.uicommonweb.models.configure.PermissionListModel; import org.ovirt.engine.ui.uicommonweb.models.configure.scheduling.affinity_groups.list.VmAffinityGroupListModel; +import org.ovirt.engine.ui.uicommonweb.models.vms.AttachDiskModel; +import org.ovirt.engine.ui.uicommonweb.models.vms.EditDiskModel; +import org.ovirt.engine.ui.uicommonweb.models.vms.NewDiskModel; import org.ovirt.engine.ui.uicommonweb.models.vms.VmAppListModel; import org.ovirt.engine.ui.uicommonweb.models.vms.VmDiskListModel; import org.ovirt.engine.ui.uicommonweb.models.vms.VmEventListModel; @@ -42,6 +45,7 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.scheduling.AffinityGroupPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.storage.DisksAllocationPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.vm.CloneVmPopupPresenterWidget; +import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.vm.SingleSelectionVmDiskAttachPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.vm.VmChangeCDPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.vm.VmClonePopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.vm.VmDiskAttachPopupPresenterWidget; @@ -93,7 +97,10 @@ final Provider<VmNextRunConfigurationPresenterWidget> nextRunProvider, final Provider<CloneVmPopupPresenterWidget> cloneVmProvider, final Provider<VmListModel> modelProvider, - final Provider<CommonModel> commonModelProvider) { + final Provider<CommonModel> commonModelProvider, + final Provider<VmDiskPopupPresenterWidget> newDiskPopupProvider, + final Provider<SingleSelectionVmDiskAttachPopupPresenterWidget> attachDiskPopupProvider, + final Provider<VmDiskRemovePopupPresenterWidget> removeDiskConfirmPopupProvider) { MainTabModelProvider<VM, VmListModel> result = new MainTabModelProvider<VM, VmListModel>(eventBus, defaultConfirmPopupProvider, commonModelProvider) { @Override @@ -113,10 +120,14 @@ return createSnapshotPopupProvider.get(); } else if (lastExecutedCommand == getModel().getMigrateCommand()) { return migratePopupProvider.get(); - } else if (lastExecutedCommand == getModel().getNewVmCommand()) { - return newVmPopupProvider.get(); - } else if (lastExecutedCommand == getModel().getEditCommand()) { - return newVmPopupProvider.get(); + } else if (lastExecutedCommand == getModel().getEditCommand() || lastExecutedCommand == getModel().getNewVmCommand() || "OnSave".equals(lastExecutedCommand.getName())) { //$NON-NLS-1$ + if (windowModel instanceof AttachDiskModel) { + return attachDiskPopupProvider.get(); + } else if ((windowModel instanceof NewDiskModel) || (windowModel instanceof EditDiskModel)) { + return newDiskPopupProvider.get(); + } else { + return newVmPopupProvider.get(); + } } else if (lastExecutedCommand == getModel().getGuideCommand()) { return guidePopupProvider.get(); } else if (windowModel instanceof VncInfoModel) { @@ -140,6 +151,8 @@ return removeConfirmPopupProvider.get(); } else if ("OnSave".equals(lastExecutedCommand.getName())) { //$NON-NLS-1$ return nextRunProvider.get(); + } else if (lastExecutedCommand == getModel().getEditCommand()) { + return removeDiskConfirmPopupProvider.get(); } else { return super.getConfirmModelPopup(source, lastExecutedCommand); } -- To view, visit http://gerrit.ovirt.org/36064 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I792340b0bfb632f956961959f36f79d841cad50a Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Tomas Jelinek <tjeli...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches