summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSelvasundaram <selvam@gluster.com>2011-07-25 20:25:58 +0530
committerSelvasundaram <selvam@gluster.com>2011-07-25 20:25:58 +0530
commitf911238fc0241cc5ec105f26f2bd3ed2a7888f33 (patch)
tree0db43dc88f884f4a4b4591cda271db81ec0b7774
parent0662fff71691bfcb0e667d7ffb4f9e057c2860be (diff)
Filtering offline server disks for create volume
Showing volume offline status image issue fix Added listener to servers disk changes
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/GlusterDataModelManager.java4
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/GlusterServerDisksView.java29
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java3
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java19
4 files changed, 53 insertions, 2 deletions
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 14086260..fb2b7343 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
@@ -49,6 +49,7 @@ import com.gluster.storage.management.core.model.GlusterDataModel;
import com.gluster.storage.management.core.model.GlusterServer;
import com.gluster.storage.management.core.model.Partition;
import com.gluster.storage.management.core.model.Server;
+import com.gluster.storage.management.core.model.Server.SERVER_STATUS;
import com.gluster.storage.management.core.model.Status;
import com.gluster.storage.management.core.model.TaskInfo;
import com.gluster.storage.management.core.model.TaskInfo.TASK_TYPE;
@@ -581,6 +582,9 @@ public class GlusterDataModelManager {
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()) {
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/GlusterServerDisksView.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/GlusterServerDisksView.java
index e55543ab..7b989179 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/GlusterServerDisksView.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/GlusterServerDisksView.java
@@ -24,13 +24,19 @@ import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.part.ViewPart;
+import com.gluster.storage.management.core.model.ClusterListener;
+import com.gluster.storage.management.core.model.DefaultClusterListener;
+import com.gluster.storage.management.core.model.Event;
+import com.gluster.storage.management.core.model.Event.EVENT_TYPE;
import com.gluster.storage.management.core.model.GlusterServer;
+import com.gluster.storage.management.gui.GlusterDataModelManager;
import com.gluster.storage.management.gui.utils.GUIHelper;
import com.gluster.storage.management.gui.views.pages.ServerDisksPage;
public class GlusterServerDisksView extends ViewPart {
public static final String ID = GlusterServerDisksView.class.getName();
private static final GUIHelper guiHelper = GUIHelper.getInstance();
+ private ClusterListener clusterListener;
private GlusterServer server;
private ServerDisksPage page;
@@ -44,7 +50,28 @@ public class GlusterServerDisksView extends ViewPart {
}
page = new ServerDisksPage(parent, SWT.NONE, getSite(), server.getDisks());
-// parent.layout(); // IMP: lays out the form properly
+ final ViewPart thisView = this;
+ clusterListener = new DefaultClusterListener() {
+ @Override
+ public void serverChanged(GlusterServer server, Event event) {
+ super.serverChanged(server, event);
+ if(event.getEventType() == EVENT_TYPE.GLUSTER_SERVER_CHANGED) {
+ if(!server.isOnline()) {
+ getViewSite().getPage().hideView(thisView);
+ }
+ }
+ }
+ };
+
+ GlusterDataModelManager.getInstance().addClusterListener(clusterListener);
+
+ parent.layout(); // IMP: lays out the form properly
+ }
+
+ @Override
+ public void dispose() {
+ super.dispose();
+ GlusterDataModelManager.getInstance().removeClusterListener(clusterListener);
}
/* (non-Javadoc)
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java
index 8b5b3fee..035409f9 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java
@@ -454,6 +454,9 @@ public class VolumeSummaryView extends ViewPart {
lblStatusValue.setText(volume.getStatusStr());
lblStatusValue.setImage((volume.getStatus() == Volume.VOLUME_STATUS.ONLINE) ? guiHelper
.getImage(IImageKeys.STATUS_ONLINE_16x16) : guiHelper.getImage(IImageKeys.STATUS_OFFLINE_16x16));
+ GridData data = new GridData();
+ data.horizontalAlignment = SWT.FILL;
+ lblStatusValue.setLayoutData(data);
lblStatusValue.redraw();
}
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 3d77e026..fef82cf6 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
@@ -45,8 +45,11 @@ import com.gluster.storage.management.core.model.ClusterListener;
import com.gluster.storage.management.core.model.DefaultClusterListener;
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.Event.EVENT_TYPE;
import com.gluster.storage.management.core.model.Disk;
import com.gluster.storage.management.core.model.Entity;
+import com.gluster.storage.management.core.model.Event;
+import com.gluster.storage.management.core.model.GlusterServer;
import com.gluster.storage.management.core.model.Partition;
import com.gluster.storage.management.core.model.Status;
import com.gluster.storage.management.core.model.TaskInfo;
@@ -74,7 +77,21 @@ public abstract class AbstractDisksPage extends AbstractTableTreeViewerPage<Disk
}
protected ClusterListener createClusterListener() {
- return new DefaultClusterListener();
+ return new DefaultClusterListener() {
+ @Override
+ public void serverChanged(GlusterServer server, Event event) {
+ super.serverChanged(server, event);
+ EVENT_TYPE eventType = event.getEventType();
+ switch (eventType) {
+ case DISKS_REMOVED:
+ case DISKS_ADDED:
+ case DISKS_CHANGED:
+ treeViewer.refresh();
+ default:
+ break;
+ }
+ }
+ };
}
private void createInitializeLink(final TreeItem item, final int rowNum, final Device uninitializedDevice) {