summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDhandapani <dhandapani@gluster.com>2011-07-29 11:38:25 +0530
committerDhandapani <dhandapani@gluster.com>2011-07-29 16:22:05 +0530
commit18639e14c99b831a968d55491d9b1bdfb152ce31 (patch)
treee44eb2103d4d4b6a23df4269e620f1d5d0d921c1 /src
parent0bf37ad3325d7605aff23ba6218331d6295003cc (diff)
Bug 3224 - Disk status is not updated even after refresh
Diffstat (limited to 'src')
-rw-r--r--src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Device.java9
-rw-r--r--src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Disk.java11
-rw-r--r--src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Server.java6
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/GlusterDataModelManager.java43
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java8
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());
}