summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorShireesh Anjal <anjalshireesh@gmail.com>2011-07-29 07:18:33 -0700
committerShireesh Anjal <anjalshireesh@gmail.com>2011-07-29 07:18:33 -0700
commit09479456f6e39db732c6d7d3c69ee41c25d132f4 (patch)
tree4c14f7bb9cf6a74ff3280e827a6f73f3c910ea6e /src
parente44b5d19426a978ee135213bb07113bbf736ecac (diff)
parentd03cce960084ca384b73bdeec70bb516234ed6ed (diff)
Merge pull request #168 from Dhandapani/d9326713640963de0c4a99ed0ee9827fc37b0872
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/Event.java6
-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.java44
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java14
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());
}