diff options
| author | Shireesh Anjal <anjalshireesh@gmail.com> | 2011-07-29 07:18:33 -0700 |
|---|---|---|
| committer | Shireesh Anjal <anjalshireesh@gmail.com> | 2011-07-29 07:18:33 -0700 |
| commit | 09479456f6e39db732c6d7d3c69ee41c25d132f4 (patch) | |
| tree | 4c14f7bb9cf6a74ff3280e827a6f73f3c910ea6e /src | |
| parent | e44b5d19426a978ee135213bb07113bbf736ecac (diff) | |
| parent | d03cce960084ca384b73bdeec70bb516234ed6ed (diff) | |
Merge pull request #168 from Dhandapani/d9326713640963de0c4a99ed0ee9827fc37b0872
Bug 3224 - Disk status is not updated even after refresh
Diffstat (limited to 'src')
6 files changed, 61 insertions, 29 deletions
diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Device.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Device.java index f6f8450e..3f3c3810 100644 --- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Device.java +++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Device.java @@ -213,4 +213,13 @@ public class Device extends Entity { return false; } + + public void copyFrom(Device newDevice) { + setName(newDevice.getName()); + setMountPoint(newDevice.getMountPoint()); + setServerName(newDevice.getServerName()); + setStatus(newDevice.getStatus()); + setSpace(newDevice.getSpace()); + setSpaceInUse(newDevice.getSpaceInUse()); + } } diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Disk.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Disk.java index 1fb870e5..4b159f37 100644 --- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Disk.java +++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Disk.java @@ -143,13 +143,8 @@ public class Disk extends Device { } public void copyFrom(Disk newDisk) { - setName(newDisk.getName()); + super.copyFrom(newDisk); setDescription(newDisk.getDescription()); - setMountPoint(newDisk.getMountPoint()); - setServerName(newDisk.getServerName()); - setStatus(newDisk.getStatus()); - setSpace(newDisk.getSpace()); - setSpaceInUse(newDisk.getSpaceInUse()); } @Override @@ -171,9 +166,7 @@ public class Disk extends Device { Double space = 0d; if (hasPartitions()) { for (Partition partition : getPartitions()) { - if (partition.isInitialized()) { - space += partition.getSpace(); - } + space += partition.getSpace(); } return space; } else { diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Event.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Event.java index 7378116a..4ff52189 100644 --- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Event.java +++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Event.java @@ -28,9 +28,9 @@ public class Event { VOLUME_OPTION_SET, VOLUME_CHANGED, GLUSTER_SERVER_CHANGED, - DISKS_ADDED, - DISKS_REMOVED, - DISKS_CHANGED, + DEVICES_ADDED, + DEVICES_REMOVED, + DEVICES_CHANGED, DISCOVERED_SERVER_CHANGED } diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Server.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Server.java index cfca8206..ad2599a6 100644 --- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Server.java +++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Server.java @@ -94,10 +94,8 @@ public class Server extends Entity { public double getTotalDiskSpace() { double totalDiskSpace = 0; - for(Disk disk : getDisks()) { - if(disk.isReady()) { - totalDiskSpace += disk.getSpace(); - } + for (Disk disk : getDisks()) { + totalDiskSpace += disk.getSpace(); } return totalDiskSpace; } diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/GlusterDataModelManager.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/GlusterDataModelManager.java index 017549de..4a21dba7 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/GlusterDataModelManager.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/GlusterDataModelManager.java @@ -42,6 +42,7 @@ import com.gluster.storage.management.core.model.Cluster; import com.gluster.storage.management.core.model.ClusterListener; 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.Device.DEVICE_TYPE; import com.gluster.storage.management.core.model.Disk; import com.gluster.storage.management.core.model.Event; import com.gluster.storage.management.core.model.Event.EVENT_TYPE; @@ -317,13 +318,42 @@ public class GlusterDataModelManager { } for (ClusterListener listener : listeners) { if (server instanceof GlusterServer) { - listener.serverChanged((GlusterServer) server, new Event(EVENT_TYPE.DISKS_CHANGED, modifiedDisks)); + listener.serverChanged((GlusterServer) server, new Event(EVENT_TYPE.DEVICES_CHANGED, modifiedDisks)); } else { - listener.discoveredServerChanged(server, new Event(EVENT_TYPE.DISKS_CHANGED, modifiedDisks)); + listener.discoveredServerChanged(server, new Event(EVENT_TYPE.DEVICES_CHANGED, modifiedDisks)); } } } - + + public void updateDeviceStatus(String serverName, String deviceName, DEVICE_STATUS status) { + GlusterServer server = model.getCluster().getServer(serverName); + Device device = getDeviceDetails(server, deviceName); + if (device != null) { + device.setStatus(status); + device.setType(DEVICE_TYPE.DATA); + for (ClusterListener listener : listeners) { + listener.serverChanged((GlusterServer) server, new Event(EVENT_TYPE.DEVICES_CHANGED, device)); + } + } + } + + private Device getDeviceDetails(GlusterServer server, String deviceName) { + for (Disk disk : server.getDisks()) { + if (disk.hasPartitions()) { + for (Partition partition : disk.getPartitions()) { + if (partition.getName().equals(deviceName)) { + return partition; + } + } + } else { + if (disk.getName().equals(deviceName)) { + return (Device) disk; + } + } + } + return null; + } + public void addDisks(Server server, Set<Disk> disks) { if(disks.size() == 0) { return; @@ -332,9 +362,9 @@ public class GlusterDataModelManager { server.addDisks(disks); for (ClusterListener listener : listeners) { if(server instanceof GlusterServer) { - listener.serverChanged((GlusterServer)server, new Event(EVENT_TYPE.DISKS_ADDED, disks)); + listener.serverChanged((GlusterServer)server, new Event(EVENT_TYPE.DEVICES_ADDED, disks)); } else { - listener.discoveredServerChanged(server, new Event(EVENT_TYPE.DISKS_ADDED, disks)); + listener.discoveredServerChanged(server, new Event(EVENT_TYPE.DEVICES_ADDED, disks)); } } } @@ -350,9 +380,9 @@ public class GlusterDataModelManager { for (ClusterListener listener : listeners) { if(server instanceof GlusterServer) { - listener.serverChanged((GlusterServer)server, new Event(EVENT_TYPE.DISKS_REMOVED, disks)); + listener.serverChanged((GlusterServer)server, new Event(EVENT_TYPE.DEVICES_REMOVED, disks)); } else { - listener.discoveredServerChanged(server, new Event(EVENT_TYPE.DISKS_REMOVED, disks)); + listener.discoveredServerChanged(server, new Event(EVENT_TYPE.DEVICES_REMOVED, disks)); } } } 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 fef82cf6..b74dcd0e 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 @@ -83,9 +83,9 @@ public abstract class AbstractDisksPage extends AbstractTableTreeViewerPage<Disk super.serverChanged(server, event); EVENT_TYPE eventType = event.getEventType(); switch (eventType) { - case DISKS_REMOVED: - case DISKS_ADDED: - case DISKS_CHANGED: + case DEVICES_REMOVED: + case DEVICES_ADDED: + case DEVICES_CHANGED: treeViewer.refresh(); default: break; @@ -261,13 +261,15 @@ public abstract class AbstractDisksPage extends AbstractTableTreeViewerPage<Disk if (taskInfo != null && taskInfo instanceof TaskInfo) { GlusterDataModelManager.getInstance().getModel().getCluster().addTaskInfo(taskInfo); } - + if (taskInfo.getStatus().getCode() == Status.STATUS_CODE_RUNNING) { updateStatus(DEVICE_STATUS.INITIALIZING, true); - } else if(taskInfo.getStatus().getCode() == Status.STATUS_CODE_SUCCESS) { + } else if (taskInfo.getStatus().getCode() == Status.STATUS_CODE_SUCCESS) { updateStatus(DEVICE_STATUS.INITIALIZED, true); + GlusterDataModelManager.getInstance().updateDeviceStatus(device.getServerName(), device.getName(), + DEVICE_STATUS.INITIALIZED); } - + } catch (Exception e1) { MessageDialog.openError(getShell(), "Error: Initialize disk", e1.getMessage()); } |
