diff options
| author | Dhandapani <dhandapani@gluster.com> | 2011-07-29 11:38:25 +0530 |
|---|---|---|
| committer | Dhandapani <dhandapani@gluster.com> | 2011-07-29 16:22:05 +0530 |
| commit | 18639e14c99b831a968d55491d9b1bdfb152ce31 (patch) | |
| tree | e44eb2103d4d4b6a23df4269e620f1d5d0d921c1 /src | |
| parent | 0bf37ad3325d7605aff23ba6218331d6295003cc (diff) | |
Bug 3224 - Disk status is not updated even after refresh
Diffstat (limited to 'src')
5 files changed, 61 insertions, 16 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/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..473aab60 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; @@ -323,7 +324,49 @@ public class GlusterDataModelManager { } } } + + public void updateDeviceStatus(String serverName, String deviceName, DEVICE_STATUS status) { + GlusterServer server = model.getCluster().getServer(serverName); + Device device = getDeviceDetails(serverName, deviceName); + if (device != null) { + device.setStatus(status); + device.setType(DEVICE_TYPE.DATA); + for (ClusterListener listener : listeners) { + listener.serverChanged((GlusterServer) server, new Event(EVENT_TYPE.DISKS_CHANGED, device)); + } + } + } + + private Device getDeviceDetails(String serverName, String deviceName) { + List<Device> allDevices = getDevicesOfAllServers(); + for (Device device : allDevices) { + if (device.getServerName().equals(serverName) && device.getName().equals(deviceName)) { + return device; + } + } + return null; + } + + public List<Device> getDevicesOfAllServers() { + List<Device> devices = new ArrayList<Device>(); + for (Server server : model.getCluster().getServers()) { + if (server.getStatus() == SERVER_STATUS.OFFLINE) { + continue; + } + for (Disk disk : server.getDisks()) { + if (disk.hasPartitions()) { + for (Partition partition : disk.getPartitions()) { + devices.add(partition); + } + } else { + devices.add(disk); + } + } + } + return devices; + } + public void addDisks(Server server, Set<Disk> disks) { if(disks.size() == 0) { 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 fef82cf6..b6e224e4 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 @@ -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()); } |
