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

Reply via email to