Federico Simoncelli has uploaded a new change for review.

Change subject: webadmin: add the image block alignment scan
......................................................................

webadmin: add the image block alignment scan

Change-Id: Idf3a80a73e6f30f75806736a77a76247c61250b4
Signed-off-by: Federico Simoncelli <[email protected]>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/TextCellWithTooltip.java
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/vm/BaseVmDiskListModelTable.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmDiskListModelTable.java
M 
frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskGeneralModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
M 
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabDiskView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/disk/SubTabDiskGeneralView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/storage/SubTabStorageDiskView.java
13 files changed, 178 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/17/12417/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
index baac7ef..af8efa6 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
@@ -618,6 +618,12 @@
     @DefaultStringValue("Move")
     String moveDisk();
 
+    @DefaultStringValue("Scan Alignment")
+    String scanDiskAlignment();
+
+    @DefaultStringValue("Last Scan")
+    String lastDiskAlignmentScan();
+
     @DefaultStringValue("Name")
     String nameDisk();
 
@@ -678,6 +684,9 @@
     @DefaultStringValue("Destination")
     String destDisk();
 
+    @DefaultStringValue("Alignment")
+    String diskAlignment();
+
     @DefaultStringValue("Attached To")
     String attachedToDisk();
 
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/TextCellWithTooltip.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/TextCellWithTooltip.java
index 75a7f70..f861257 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/TextCellWithTooltip.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/TextCellWithTooltip.java
@@ -33,6 +33,7 @@
     // DOM element ID settings for the text container element
     private String elementIdPrefix = DOM.createUniqueId();
     private String columnId;
+    private String title = null;
 
     // Text longer than this value will be shortened, providing a tooltip with 
original text
     private final int maxTextLength;
@@ -47,6 +48,12 @@
         if (template == null) {
             template = GWT.create(CellTemplate.class);
         }
+    }
+
+    // This is used to provide an optional tooltip text that is different from 
the
+    // cell value.
+    public void setTitle(String value) {
+        title = value;
     }
 
     public void setElementIdPrefix(String elementIdPrefix) {
@@ -76,15 +83,20 @@
             return;
         }
 
-        // Enforce tooltip when the presented text doesn't match original value
-        SafeHtml safeValue = value != null ? 
SafeHtmlUtils.fromSafeConstant(value) : null;
-        boolean forceTooltip = (safeValue != null && 
!safeValue.equals(getRenderedValue(value)));
-
-        // If the parent element content overflows its area, provide tooltip 
to the element
-        if (forceTooltip || contentOverflows(parent)) {
-            parent.setTitle(value);
+        // Enforce tooltip when the title has been explicitly set
+        if (title != null) {
+            parent.setTitle(title);
         } else {
-            parent.setTitle(""); //$NON-NLS-1$
+            // Enforce tooltip when the presented text doesn't match original 
value
+            SafeHtml safeValue = value != null ? 
SafeHtmlUtils.fromSafeConstant(value) : null;
+            boolean forceTooltip = (safeValue != null && 
!safeValue.equals(getRenderedValue(value)));
+
+            // If the parent element content overflows its area, provide 
tooltip to the element
+            if (forceTooltip || contentOverflows(parent)) {
+                parent.setTitle(value);
+            } else {
+                parent.setTitle(""); //$NON-NLS-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 aa54f87..be96b83 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
@@ -2,6 +2,8 @@
 
 import java.util.Date;
 
+import com.google.gwt.i18n.client.DateTimeFormat;
+
 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;
@@ -21,6 +23,7 @@
 import org.ovirt.engine.ui.common.widget.table.column.ImageResourceColumn;
 import org.ovirt.engine.ui.common.widget.table.column.StorageDomainsColumn;
 import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip;
+
 
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.resources.client.ImageResource;
@@ -111,6 +114,20 @@
 
     public static final DiskContainersColumn diskContainersColumn = new 
DiskContainersColumn();
 
+    public static final TextColumnWithTooltip<Disk> diskAlignmentColumn = new 
TextColumnWithTooltip<Disk>() {
+        @Override
+        public String getValue(Disk object) {
+            if (object.getLastAlignmentScan() != null) {
+                DateTimeFormat lastScanDateFormat = 
DateTimeFormat.getFormat("yyyy-MM-dd, HH:mm"); //$NON-NLS-1$
+                getCell().setTitle(constants.lastDiskAlignmentScan() +
+                        ": " + 
lastScanDateFormat.format(object.getLastAlignmentScan())); //$NON-NLS-1$
+            } else {
+                getCell().setTitle(null);
+            }
+            return object.getAlignment().toString();
+        }
+    };
+
     public static final StorageDomainsColumn storageDomainsColumn = new 
StorageDomainsColumn();
 
     public static final DiskSizeColumn<Disk> sizeColumn = new 
DiskSizeColumn<Disk>() {
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 a3e108b..59cb970 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
@@ -124,6 +124,9 @@
                 DisksViewColumns.interfaceColumn, constants.interfaceDisk(), 
all || images || luns, "100px"); //$NON-NLS-1$
 
         getTable().ensureColumnPresent(
+                DisksViewColumns.diskAlignmentColumn, 
constants.diskAlignment(), all || images || luns, "100px"); //$NON-NLS-1$
+
+        getTable().ensureColumnPresent(
                 DisksViewColumns.statusColumn, constants.statusDisk(), images, 
"100px"); //$NON-NLS-1$
 
         getTable().ensureColumnPresent(
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmDiskListModelTable.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmDiskListModelTable.java
index 3a2880a..3c58ef7 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmDiskListModelTable.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmDiskListModelTable.java
@@ -5,6 +5,7 @@
 import org.ovirt.engine.ui.common.CommonApplicationResources;
 import org.ovirt.engine.ui.common.system.ClientStorage;
 import org.ovirt.engine.ui.common.uicommon.model.SearchableTableModelProvider;
+import org.ovirt.engine.ui.common.widget.action.CommandLocation;
 import org.ovirt.engine.ui.common.widget.action.ImageUiCommandButtonDefinition;
 import org.ovirt.engine.ui.common.widget.action.UiCommandButtonDefinition;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
@@ -112,6 +113,14 @@
             });
         }
 
+        getTable().addActionButton(new 
UiCommandButtonDefinition<Disk>(getEventBus(), constants.scanDiskAlignment(),
+                CommandLocation.OnlyFromFromContext) {
+            @Override
+            protected UICommand resolveCommand() {
+                return getModel().getScanAlignmentCommand();
+            }
+        });
+
         getTable().addActionButton(new 
UiCommandButtonDefinition<Disk>(getEventBus(), constants.assignQuota()) {
             @Override
             protected UICommand resolveCommand() {
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
 
b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
index e7fb71e..5d488ce 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
@@ -37,6 +37,7 @@
                <include name="common/businessentities/IImage.java" />
                <include name="common/businessentities/ImageStatus.java" />
                <include name="common/businessentities/Nameable.java" />
+               <include name="common/businessentities/DiskAlignment.java" />
 
                <!-- Network business entities -->
                <include 
name="common/businessentities/network/VdsNetworkInterface.java" />
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskGeneralModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskGeneralModel.java
index e831e1a3..1f022f3 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskGeneralModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskGeneralModel.java
@@ -1,5 +1,7 @@
 package org.ovirt.engine.ui.uicommonweb.models.disks;
 
+import com.google.gwt.i18n.client.DateTimeFormat;
+
 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;
@@ -92,6 +94,21 @@
         }
     }
 
+    private String privateAlignment;
+
+    public String getAlignment()
+    {
+        return privateAlignment;
+    }
+
+    public void setAlignment(String value)
+    {
+        if (privateAlignment != value) {
+            privateAlignment = value;
+            OnPropertyChanged(new PropertyChangedEventArgs("Alignment")); 
//$NON-NLS-1$
+        }
+    }
+
     private String privateQuotaName;
 
     public String getQuotaName()
@@ -174,6 +191,15 @@
         setDescription(disk.getDiskDescription());
         setDiskId(disk.getId().toString());
 
+        if (disk.getLastAlignmentScan() != null) {
+            DateTimeFormat lastScanDateFormat = 
DateTimeFormat.getFormat("yyyy-MM-dd, HH:mm"); //$NON-NLS-1$
+            setAlignment(disk.getAlignment().toString() + " (" + //$NON-NLS-1$
+                
ConstantsManager.getInstance().getConstants().lastDiskAlignmentScan() + ": " + 
//$NON-NLS-1$
+                lastScanDateFormat.format(disk.getLastAlignmentScan()) + ")"); 
//$NON-NLS-1$
+        } else {
+            setAlignment(disk.getAlignment().toString());
+        }
+
         if (isImage()) {
             DiskImage diskImage = (DiskImage) disk;
             setQuotaName(diskImage.getQuotaName());
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskListModel.java
index 6792763..77e9f31 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskListModel.java
@@ -5,6 +5,7 @@
 import org.ovirt.engine.core.common.action.AddDiskParameters;
 import org.ovirt.engine.core.common.action.AttachDettachVmDiskParameters;
 import org.ovirt.engine.core.common.action.ChangeQuotaParameters;
+import org.ovirt.engine.core.common.action.ScanDiskAlignmentParameters;
 import org.ovirt.engine.core.common.action.RemoveDiskParameters;
 import org.ovirt.engine.core.common.action.UpdateVmDiskParameters;
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
@@ -109,6 +110,18 @@
         privateMoveCommand = value;
     }
 
+    private UICommand privateScanAlignmentCommand;
+
+    public UICommand getScanAlignmentCommand()
+    {
+        return privateScanAlignmentCommand;
+    }
+
+    private void setScanAlignmentCommand(UICommand value)
+    {
+        privateScanAlignmentCommand = value;
+    }
+
     private UICommand privateChangeQuotaCommand;
 
     public UICommand getChangeQuotaCommand()
@@ -177,6 +190,7 @@
         setMoveCommand(new UICommand("Move", this)); //$NON-NLS-1$
         setChangeQuotaCommand(new UICommand("changeQuota", this)); 
//$NON-NLS-1$
         setCopyCommand(new UICommand("Copy", this)); //$NON-NLS-1$
+        setScanAlignmentCommand(new UICommand("Check Alignment", this)); 
//$NON-NLS-1$
 
         UpdateActionAvailability();
 
@@ -473,6 +487,24 @@
         model.StartProgress(null);
     }
 
+    private void ScanAlignment()
+    {
+        ArrayList<VdcActionParametersBase> parameterList = new 
ArrayList<VdcActionParametersBase>();
+
+        for (Disk disk : (ArrayList<Disk>) getSelectedItems())
+        {
+            parameterList.add(new ScanDiskAlignmentParameters(disk.getId()));
+        }
+
+        Frontend.RunMultipleAction(VdcActionType.ScanDiskAlignment, 
parameterList,
+                new IFrontendMultipleActionAsyncCallback() {
+                    @Override
+                    public void Executed(FrontendMultipleActionAsyncResult 
result) {
+                    }
+                },
+                this);
+    }
+
     private void changeQuota()
     {
         ArrayList<DiskImage> disks = (ArrayList<DiskImage>) getSelectedItems();
@@ -630,6 +662,7 @@
         getRemoveCommand().setIsExecutionAllowed(disks != null && disks.size() 
> 0 && isRemoveCommandAvailable());
         getMoveCommand().setIsExecutionAllowed(disks != null && disks.size() > 
0 && isMoveCommandAvailable());
         getCopyCommand().setIsExecutionAllowed(disks != null && disks.size() > 
0 && isCopyCommandAvailable());
+        getScanAlignmentCommand().setIsExecutionAllowed(disks != null && 
disks.size() > 0);
         getChangeQuotaCommand().setIsAvailable(false);
         if (getSystemTreeSelectedItem() != null
                 && getSystemTreeSelectedItem().getType() == 
SystemTreeItemType.DataCenter
@@ -756,6 +789,10 @@
         {
             Copy();
         }
+        else if (command == getScanAlignmentCommand())
+        {
+            ScanAlignment();
+        }
         else if (StringHelper.stringsEqual(command.getName(), "OnSave")) 
//$NON-NLS-1$
         {
             OnSave();
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 af61b84..72170b6 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
@@ -5,6 +5,7 @@
 import org.ovirt.engine.core.common.action.AddDiskParameters;
 import org.ovirt.engine.core.common.action.AttachDettachVmDiskParameters;
 import org.ovirt.engine.core.common.action.ChangeQuotaParameters;
+import org.ovirt.engine.core.common.action.ScanDiskAlignmentParameters;
 import org.ovirt.engine.core.common.action.HotPlugDiskToVmParameters;
 import org.ovirt.engine.core.common.action.RemoveDiskParameters;
 import org.ovirt.engine.core.common.action.UpdateVmDiskParameters;
@@ -152,6 +153,18 @@
         privateMoveCommand = value;
     }
 
+    private UICommand privateScanAlignmentCommand;
+
+    public UICommand getScanAlignmentCommand()
+    {
+        return privateScanAlignmentCommand;
+    }
+
+    private void setScanAlignmentCommand(UICommand value)
+    {
+        privateScanAlignmentCommand = value;
+    }
+
     private boolean privateIsDiskHotPlugSupported;
 
     public boolean getIsDiskHotPlugSupported()
@@ -204,6 +217,7 @@
         setPlugCommand(new UICommand("Plug", this)); //$NON-NLS-1$
         setUnPlugCommand(new UICommand("Unplug", this)); //$NON-NLS-1$
         setMoveCommand(new UICommand("Move", this)); //$NON-NLS-1$
+        setScanAlignmentCommand(new UICommand("Scan Alignment", this)); 
//$NON-NLS-1$
         setChangeQuotaCommand(new UICommand("changeQuota", this)); 
//$NON-NLS-1$
         getChangeQuotaCommand().setIsAvailable(false);
 
@@ -851,6 +865,24 @@
         model.StartProgress(null);
     }
 
+    private void ScanAlignment()
+    {
+        ArrayList<VdcActionParametersBase> parameterList = new 
ArrayList<VdcActionParametersBase>();
+
+        for (Disk disk : (ArrayList<Disk>) getSelectedItems())
+        {
+            parameterList.add(new ScanDiskAlignmentParameters(disk.getId()));
+        }
+
+        Frontend.RunMultipleAction(VdcActionType.ScanDiskAlignment, 
parameterList,
+                new IFrontendMultipleActionAsyncCallback() {
+                    @Override
+                    public void Executed(FrontendMultipleActionAsyncResult 
result) {
+                    }
+                },
+                this);
+    }
+
     private void ResetData() {
         presets = null;
         nextAlias = null;
@@ -913,6 +945,9 @@
 
         getMoveCommand().setIsExecutionAllowed(getSelectedItems() != null && 
getSelectedItems().size() > 0
                 && (isMoveCommandAvailable() || isLiveMoveCommandAvailable()));
+
+        getScanAlignmentCommand().setIsExecutionAllowed(getSelectedItems() != 
null
+                && getSelectedItems().size());
 
         getPlugCommand().setIsExecutionAllowed(isPlugCommandAvailable(true));
 
@@ -1052,6 +1087,10 @@
         {
             Move();
         }
+        else if (command == getScanAlignmentCommand())
+        {
+            ScanAlignment();
+        }
         else if (StringHelper.stringsEqual(command.getName(), "OnSave")) 
//$NON-NLS-1$
         {
             OnSave();
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
index f7a3d80..1f9dac2 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
+++ 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
@@ -580,6 +580,9 @@
     @DefaultStringValue("Clone VM from Snapshot")
     String cloneVmFromSnapshotTitle();
 
+    @DefaultStringValue("Last Scan")
+    String lastDiskAlignmentScan();
+
     // Messages
     @DefaultStringValue("There are no available Bonds")
     String thereAreNoAvailableBondsMsg();
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabDiskView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabDiskView.java
index dddab70..b0c6c83 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabDiskView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabDiskView.java
@@ -5,6 +5,7 @@
 import org.ovirt.engine.ui.common.idhandler.ElementIdHandler;
 import org.ovirt.engine.ui.common.uicommon.model.CommonModelManager;
 import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider;
+import org.ovirt.engine.ui.common.widget.action.CommandLocation;
 import org.ovirt.engine.ui.common.widget.uicommon.disks.DisksViewColumns;
 import org.ovirt.engine.ui.common.widget.uicommon.disks.DisksViewRadioGroup;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
@@ -188,6 +189,14 @@
             }
         });
 
+        getTable().addActionButton(new 
WebAdminButtonDefinition<Disk>(constants.scanDiskAlignment(),
+                CommandLocation.OnlyFromFromContext) {
+            @Override
+            protected UICommand resolveCommand() {
+                return getMainModel().getScanAlignmentCommand();
+            }
+        });
+
         getTable().addActionButton(new 
WebAdminButtonDefinition<Disk>(constants.assignQuota()) {
             @Override
             protected UICommand resolveCommand() {
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/disk/SubTabDiskGeneralView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/disk/SubTabDiskGeneralView.java
index 9973848..8e2098e 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/disk/SubTabDiskGeneralView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/disk/SubTabDiskGeneralView.java
@@ -37,6 +37,7 @@
     TextBoxLabel diskId = new TextBoxLabel();
     TextBoxLabel lunId = new TextBoxLabel();
     TextBoxLabel quotaName = new TextBoxLabel();
+    TextBoxLabel alignment = new TextBoxLabel();
 
     @UiField(provided = true)
     GeneralFormPanel formPanel;
@@ -68,6 +69,7 @@
                 return getDetailModel().isLun();
             }
         });
+        formBuilder.addFormItem(new FormItem(constants.diskAlignment(), 
alignment, 2, 0));
         formBuilder.addFormItem(new FormItem(constants.quota(), quotaName, 4, 
0) {
             @Override
             public boolean isVisible() {
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/storage/SubTabStorageDiskView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/storage/SubTabStorageDiskView.java
index e870444..cf882c3 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/storage/SubTabStorageDiskView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/storage/SubTabStorageDiskView.java
@@ -69,6 +69,9 @@
                 DisksViewColumns.diskContainersColumn, 
constants.attachedToDisk(), true, "120px"); //$NON-NLS-1$
 
         getTable().ensureColumnPresent(
+                DisksViewColumns.diskContainersColumn, 
constants.diskAlignment(), true, "120px"); //$NON-NLS-1$
+
+        getTable().ensureColumnPresent(
                 DisksViewColumns.interfaceColumn, constants.interfaceDisk(), 
true, "100px"); //$NON-NLS-1$
 
         getTable().ensureColumnPresent(


--
To view, visit http://gerrit.ovirt.org/12417
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Idf3a80a73e6f30f75806736a77a76247c61250b4
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Federico Simoncelli <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to