summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDhandapani <dhandapani@gluster.com>2011-07-18 21:52:43 +0530
committerDhandapani <dhandapani@gluster.com>2011-07-18 21:52:43 +0530
commitff25f0fe488d3b051a8be3de800e9c702051d6da (patch)
tree02c190ec58cdc35d3346a73dbdde98538c7752d1
parente299a61b230278a0ac625e082c39132eca469b43 (diff)
Disk Partition view enhanced
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java12
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/DeviceTableLabelProvider.java25
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/ServerDiskTableLabelProvider.java18
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java42
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);
+ }
+ }
}
}
}