Daniel Erez has uploaded a new change for review. Change subject: webadmin: call AttachDiskToVm with RunAction (#849443) ......................................................................
webadmin: call AttachDiskToVm with RunAction (#849443) https://bugzilla.redhat.com/849443 Calling AttachDiskToVm using RunAction instead of RunMultipleAction - in order to ensure PCI limit check (regarding IDE/virtIO disks limit). Change-Id: Ic771ef86926c471ed46524c77a0fdfafc00c63cf Signed-off-by: Daniel Erez <[email protected]> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/BaseVmDiskListModelTable.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java 5 files changed, 53 insertions(+), 17 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/03/7503/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java index 98cf0d3..aa621e9 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java @@ -5,6 +5,7 @@ import org.ovirt.engine.core.common.businessentities.Disk; import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType; import org.ovirt.engine.core.common.businessentities.DiskImage; +import org.ovirt.engine.core.common.businessentities.DiskInterface; import org.ovirt.engine.core.common.businessentities.ImageStatus; import org.ovirt.engine.core.common.businessentities.LunDisk; import org.ovirt.engine.core.common.businessentities.VmEntityType; @@ -106,6 +107,13 @@ ((DiskImage) object).getvolume_type() : null; } }; + + public static final TextColumnWithTooltip<Disk> interfaceColumn = new EnumColumn<Disk, DiskInterface>() { + @Override + protected DiskInterface getRawValue(Disk object) { + return object.getDiskInterface(); + } + }; public static final TextColumnWithTooltip<Disk> dateCreatedColumn = new FullDateTimeColumn<Disk>() { @Override diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.java index b0823b6..bca64ec 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.java @@ -5,6 +5,7 @@ import org.ovirt.engine.core.common.businessentities.Disk; import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType; import org.ovirt.engine.core.common.businessentities.DiskImage; +import org.ovirt.engine.core.common.businessentities.DiskInterface; import org.ovirt.engine.core.common.businessentities.LunDisk; import org.ovirt.engine.core.common.businessentities.Quota; import org.ovirt.engine.core.common.businessentities.StorageType; @@ -29,6 +30,7 @@ import org.ovirt.engine.ui.common.widget.renderer.EnumRenderer; import org.ovirt.engine.ui.common.widget.renderer.NullSafeRenderer; import org.ovirt.engine.ui.common.widget.table.column.DiskSizeColumn; +import org.ovirt.engine.ui.common.widget.table.column.EnumColumn; import org.ovirt.engine.ui.common.widget.table.column.ImageResourceColumn; import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip; import org.ovirt.engine.ui.common.widget.uicommon.popup.AbstractModelBoundPopupWidget; @@ -341,6 +343,15 @@ }; internalDiskTable.addColumn(storageDomainColumn, constants.storageDomainVmDiskTable()); + TextColumnWithTooltip<EntityModel> interfaceColumn = new EnumColumn<EntityModel, DiskInterface>() { + @Override + protected DiskInterface getRawValue(EntityModel object) { + Disk disk = (Disk) (((DiskModel) (object.getEntity())).getDisk()); + return disk.getDiskInterface(); + } + }; + internalDiskTable.addColumn(interfaceColumn, constants.interfaceVmDiskPopup(), "55px"); //$NON-NLS-1$ + internalDiskTable.addColumn(new ImageResourceColumn<EntityModel>() { @Override public ImageResource getValue(EntityModel object) { @@ -446,6 +457,15 @@ }; externalDiskTable.addColumn(serialColumn, constants.serialSanStorage()); + TextColumnWithTooltip<EntityModel> interfaceColumn = new EnumColumn<EntityModel, DiskInterface>() { + @Override + protected DiskInterface getRawValue(EntityModel object) { + Disk disk = (Disk) (((DiskModel) (object.getEntity())).getDisk()); + return disk.getDiskInterface(); + } + }; + externalDiskTable.addColumn(interfaceColumn, constants.interfaceVmDiskPopup(), "55px"); //$NON-NLS-1$ + externalDiskTable.addColumn(new ImageResourceColumn<EntityModel>() { @Override public ImageResource getValue(EntityModel object) { diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/BaseVmDiskListModelTable.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/BaseVmDiskListModelTable.java index 5e369f6..1ed07b2 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/BaseVmDiskListModelTable.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/BaseVmDiskListModelTable.java @@ -94,9 +94,6 @@ DisksViewColumns.dateCreatedColumn, constants.creationDateDisk(), images, "150px"); //$NON-NLS-1$ getTable().ensureColumnPresent( - DisksViewColumns.statusColumn, constants.statusDisk(), images, "80px"); //$NON-NLS-1$ - - getTable().ensureColumnPresent( DisksViewColumns.lunIdColumn, constants.lunIdSanStorage(), luns); getTable().ensureColumnPresent( @@ -112,6 +109,12 @@ DisksViewColumns.diskContainersColumn, constants.attachedToDisk(), all || images || luns, "120px"); //$NON-NLS-1$ getTable().ensureColumnPresent( + DisksViewColumns.interfaceColumn, constants.interfaceDisk(), all || images || luns, "100px"); //$NON-NLS-1$ + + getTable().ensureColumnPresent( + DisksViewColumns.statusColumn, constants.statusDisk(), images, "100px"); //$NON-NLS-1$ + + getTable().ensureColumnPresent( DisksViewColumns.descriptionColumn, constants.descriptionDisk(), all || images || luns); } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java index 48d7171..3f3097d 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java @@ -1178,7 +1178,6 @@ actionTypes.add(VdcActionType.AddStorageServerConnection); actionTypes.add(VdcActionType.AddPosixFsStorageDomain); - actionTypes.add(VdcActionType.RemoveStorageServerConnection); parameters.add(new StorageServerConnectionParametersBase(this.connection, host.getId())); StorageDomainManagementParameter parameter = new StorageDomainManagementParameter(storageDomain); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java index cf3970d..1b26841 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java @@ -44,7 +44,9 @@ import org.ovirt.engine.ui.uicommonweb.models.EntityModel; import org.ovirt.engine.ui.uicommonweb.models.storage.LunModel; import org.ovirt.engine.ui.uicompat.ConstantsManager; +import org.ovirt.engine.ui.uicompat.FrontendActionAsyncResult; import org.ovirt.engine.ui.uicompat.FrontendMultipleActionAsyncResult; +import org.ovirt.engine.ui.uicompat.IFrontendActionAsyncCallback; import org.ovirt.engine.ui.uicompat.IFrontendMultipleActionAsyncCallback; @SuppressWarnings("unused") @@ -623,32 +625,36 @@ { VM vm = getEntity(); DiskModel model = (DiskModel) getWindow(); + ArrayList<VdcActionType> actionTypes = new ArrayList<VdcActionType>(); ArrayList<VdcActionParametersBase> paramerterList = new ArrayList<VdcActionParametersBase>(); + ArrayList<IFrontendActionAsyncCallback> callbacks = new ArrayList<IFrontendActionAsyncCallback>(); + + IFrontendActionAsyncCallback onFinishCallback = new IFrontendActionAsyncCallback() { + @Override + public void Executed(FrontendActionAsyncResult result) { + VmDiskListModel localModel = (VmDiskListModel) result.getState(); + localModel.getWindow().StopProgress(); + Cancel(); + } + }; ArrayList<EntityModel> disksToAttach = (Boolean) model.getIsInternal().getEntity() ? (ArrayList<EntityModel>) model.getInternalAttachableDisks().getSelectedItems() : (ArrayList<EntityModel>) model.getExternalAttachableDisks().getSelectedItems(); - for (EntityModel item : disksToAttach) - { - DiskModel disk = (DiskModel) item.getEntity(); + for (int i = 0; i < disksToAttach.size(); i++) { + DiskModel disk = (DiskModel) disksToAttach.get(i).getEntity(); AttachDettachVmDiskParameters parameters = new AttachDettachVmDiskParameters( vm.getId(), disk.getDisk().getId(), (Boolean) model.getIsPlugged().getEntity()); + + actionTypes.add(VdcActionType.AttachDiskToVm); paramerterList.add(parameters); + callbacks.add(i == disksToAttach.size() - 1 ? onFinishCallback : null); } model.StartProgress(null); - Frontend.RunMultipleAction(VdcActionType.AttachDiskToVm, paramerterList, - new IFrontendMultipleActionAsyncCallback() { - @Override - public void Executed(FrontendMultipleActionAsyncResult result) { - VmDiskListModel localModel = (VmDiskListModel) result.getState(); - localModel.getWindow().StopProgress(); - Cancel(); - } - }, - this); + Frontend.RunMultipleActions(actionTypes, paramerterList, callbacks, null, this); } private void Plug(boolean plug) { -- To view, visit http://gerrit.ovirt.org/7503 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic771ef86926c471ed46524c77a0fdfafc00c63cf 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
