diff options
| author | Dhandapani <dhandapani@gluster.com> | 2011-07-18 21:52:43 +0530 |
|---|---|---|
| committer | Dhandapani <dhandapani@gluster.com> | 2011-07-18 21:52:43 +0530 |
| commit | ff25f0fe488d3b051a8be3de800e9c702051d6da (patch) | |
| tree | 02c190ec58cdc35d3346a73dbdde98538c7752d1 | |
| parent | e299a61b230278a0ac625e082c39132eca469b43 (diff) | |
Disk Partition view enhanced
4 files changed, 70 insertions, 27 deletions
diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java index 26633031..0473d51b 100644 --- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java +++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java @@ -682,24 +682,24 @@ public class GlusterDataModelManager { return null; } - private Boolean isDiskUsed(Volume volume, Disk disk) { + private Boolean isDeviceUsed(Volume volume, Device device) { for (Brick brick : volume.getBricks()) { - if (disk.getName().equals(brick.getDeviceName()) && disk.getServerName().equals(brick.getServerName())) { + if (device.getName().equals(brick.getDeviceName()) && device.getServerName().equals(brick.getServerName())) { return true; } } return false; } - public String getDiskStatus(Disk disk) { - if (disk.getStatus() == DEVICE_STATUS.INITIALIZED) { + public String getDeviceStatus(Device device) { + if (device.getStatus() == DEVICE_STATUS.INITIALIZED) { for (Volume volume : model.getCluster().getVolumes()) { - if (isDiskUsed(volume, disk)) { + if (isDeviceUsed(volume, device)) { return "In use"; } } } - return disk.getStatusStr(); + return device.getStatusStr(); } public List<String> getVolumesOfServer(String serverName) { diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/DeviceTableLabelProvider.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/DeviceTableLabelProvider.java index cdc2f9a8..c2e77030 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/DeviceTableLabelProvider.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/DeviceTableLabelProvider.java @@ -23,16 +23,19 @@ import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.graphics.Image; +import com.gluster.storage.management.client.GlusterDataModelManager; import com.gluster.storage.management.core.exceptions.GlusterRuntimeException; import com.gluster.storage.management.core.model.Device; import com.gluster.storage.management.core.model.Device.DEVICE_STATUS; import com.gluster.storage.management.core.model.Disk; import com.gluster.storage.management.core.model.Partition; +import com.gluster.storage.management.core.utils.NumberUtil; import com.gluster.storage.management.gui.utils.GUIHelper; public class DeviceTableLabelProvider extends LabelProvider implements ITableLabelProvider { private GUIHelper guiHelper = GUIHelper.getInstance(); + private GlusterDataModelManager modelManager = GlusterDataModelManager.getInstance(); public enum DEVICE_COLUMN_INDICES { DISK, PARTITION, FREE_SPACE, SPACE_IN_USE, STATUS }; @@ -86,6 +89,22 @@ public class DeviceTableLabelProvider extends LabelProvider implements ITableLab public String getText(Object element) { return super.getText(element); } + + private String getDeviceFreeSpace(Device device) { + if (device.hasErrors() || device.isUninitialized()) { + return "NA"; + } else { + return NumberUtil.formatNumber((device.getFreeSpace() / 1024)); + } + } + + private String getTotalDeviceSpace(Device device) { + if (device.hasErrors() || device.isUninitialized()) { + return "NA"; + } else { + return NumberUtil.formatNumber((device.getSpace() / 1024)); + } + } public String getColumnText(Object element, int columnIndex) { @@ -101,9 +120,9 @@ public class DeviceTableLabelProvider extends LabelProvider implements ITableLab return ""; } } else if (columnIndex == DEVICE_COLUMN_INDICES.FREE_SPACE.ordinal()) { - return "" + device.getFreeSpace(); + return "" + getDeviceFreeSpace(device); } else if (columnIndex == DEVICE_COLUMN_INDICES.SPACE_IN_USE.ordinal()) { - return "" + device.getSpaceInUse(); + return "" + getTotalDeviceSpace(device); } else if (columnIndex == DEVICE_COLUMN_INDICES.PARTITION.ordinal()) { if (device instanceof Partition) { return device.getQualifiedName(); @@ -111,7 +130,7 @@ public class DeviceTableLabelProvider extends LabelProvider implements ITableLab return ""; } } else if (columnIndex == DEVICE_COLUMN_INDICES.STATUS.ordinal()) { - return device.getStatusStr(); + return modelManager.getDeviceStatus(device); } else { return ""; } diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/ServerDiskTableLabelProvider.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/ServerDiskTableLabelProvider.java index 732787d0..96372dc3 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/ServerDiskTableLabelProvider.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/ServerDiskTableLabelProvider.java @@ -69,19 +69,19 @@ public class ServerDiskTableLabelProvider extends TableLabelProviderAdapter { return null; } - private String getDiskFreeSpace(Disk disk) { - if (disk.hasErrors() || disk.isUninitialized()) { + private String getDeviceFreeSpace(Device device) { + if (device.hasErrors() || device.isUninitialized()) { return "NA"; } else { - return NumberUtil.formatNumber((disk.getFreeSpace() / 1024)); + return NumberUtil.formatNumber((device.getFreeSpace() / 1024)); } } - private String getTotalDiskSpace(Disk disk) { - if (disk.hasErrors() || disk.isUninitialized()) { + private String getTotalDeviceSpace(Device device) { + if (device.hasErrors() || device.isUninitialized()) { return "NA"; } else { - return NumberUtil.formatNumber((disk.getSpace() / 1024)); + return NumberUtil.formatNumber((device.getSpace() / 1024)); } } @@ -94,9 +94,9 @@ public class ServerDiskTableLabelProvider extends TableLabelProviderAdapter { return ""; } } else if (columnIndex == DEVICE_COLUMN_INDICES.FREE_SPACE.ordinal()) { - return "" + device.getFreeSpace(); + return "" + getDeviceFreeSpace(device); } else if (columnIndex == DEVICE_COLUMN_INDICES.SPACE_IN_USE.ordinal()) { - return "" + device.getSpace(); + return "" + getTotalDeviceSpace(device); } else if (columnIndex == DEVICE_COLUMN_INDICES.PARTITION.ordinal()) { if (device instanceof Partition) { return device.getName(); @@ -104,7 +104,7 @@ public class ServerDiskTableLabelProvider extends TableLabelProviderAdapter { return ""; } } else if (columnIndex == DEVICE_COLUMN_INDICES.STATUS.ordinal()) { - return device.getStatusStr(); + return glusterDataModelManager.getDeviceStatus(device); } else { return ""; } diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java index 966f8921..447524a4 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java @@ -46,6 +46,7 @@ import com.gluster.storage.management.core.model.Device; import com.gluster.storage.management.core.model.Device.DEVICE_STATUS; import com.gluster.storage.management.core.model.Disk; import com.gluster.storage.management.core.model.Entity; +import com.gluster.storage.management.core.model.Partition; import com.gluster.storage.management.core.model.TaskInfo; import com.gluster.storage.management.gui.Application; import com.gluster.storage.management.gui.IEntityListener; @@ -70,7 +71,7 @@ public abstract class AbstractDisksPage extends AbstractTableTreeViewerPage<Disk } private void createInitializeLink(final TreeItem item, final int rowNum, final Device device) { - final Tree tree = treeViewer.getTree(); // .getTableTree(); + final Tree tree = treeViewer.getTree(); final TreeEditor editor = new TreeEditor(tree); editor.grabHorizontal = true; editor.horizontalAlignment = SWT.RIGHT; @@ -110,16 +111,31 @@ public abstract class AbstractDisksPage extends AbstractTableTreeViewerPage<Disk int itemCount = tree.getItemCount(); // Find the table item corresponding to our disk - Device device1 = null; + Disk disk = null; int rowNum1 = -1; TreeItem item1 = null; for (int i = 0; i < itemCount; i++) { item1 = tree.getItem(i); - device1 = (Device) item1.getData(); - if (device1 != null && device1 == device) { + + disk = (Disk) item1.getData(); + if (disk != null && disk == device) { + // this is an uninitialized "disk" rowNum1 = i; break; } + + int partitionCount = item1.getItemCount(); + for(int j = 0; j < partitionCount; j++) { + TreeItem partitionItem = item1.getItem(j); + // check each partition + Device partition = (Device)partitionItem.getData(); + if(partition != null && partition == device) { + // this is an uninitialized "partition" + rowNum1 = i + j; + item1 = partitionItem; + break; + } + } } if (rowNum1 == -1) { @@ -131,14 +147,14 @@ public abstract class AbstractDisksPage extends AbstractTableTreeViewerPage<Disk // item visible, and // either editor never created, OR // old item disposed. create the link for it - createLinkFor(device1, item1, rowNum1); + createLinkFor(disk, item1, rowNum1); } if (rowNum1 != myRowNum) { // disk visible, but at a different row num. re-create the link myLink.dispose(); myEditor.dispose(); - createLinkFor(device1, item1, rowNum1); + createLinkFor(disk, item1, rowNum1); } myEditor.layout(); // IMPORTANT. Without this, the link location goes for a toss on maximize + restore @@ -154,9 +170,17 @@ public abstract class AbstractDisksPage extends AbstractTableTreeViewerPage<Disk if (item.isDisposed() || item.getData() == null) { continue; } - final Device device = (Device) item.getData(); - if (device.isUninitialized()) { - createInitializeLink(item, i, device); + final Disk disk = (Disk) item.getData(); + if (disk.isUninitialized()) { + createInitializeLink(item, i, disk); + } + + if (disk.hasPartitions()) { + for (Partition partition : disk.getPartitions()) { + if(partition.isUninitialized()) { + createInitializeLink(item, i, partition); + } + } } } } |
