diff options
| author | Selvasundaram <selvam@gluster.com> | 2011-07-25 20:25:58 +0530 |
|---|---|---|
| committer | Selvasundaram <selvam@gluster.com> | 2011-07-25 20:25:58 +0530 |
| commit | f911238fc0241cc5ec105f26f2bd3ed2a7888f33 (patch) | |
| tree | 0db43dc88f884f4a4b4591cda271db81ec0b7774 /src/com.gluster.storage.management.gui | |
| parent | 0662fff71691bfcb0e667d7ffb4f9e057c2860be (diff) | |
Filtering offline server disks for create volume
Showing volume offline status image issue fix
Added listener to servers disk changes
Diffstat (limited to 'src/com.gluster.storage.management.gui')
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) { |
