diff options
| author | Shireesh Anjal <anjalshireesh@gmail.com> | 2011-06-02 07:22:34 -0700 |
|---|---|---|
| committer | Shireesh Anjal <anjalshireesh@gmail.com> | 2011-06-02 07:22:34 -0700 |
| commit | ec38505c37bd8482ebe7b8d00611629790877cbe (patch) | |
| tree | 9285b13d86f55432f47fadf9c07e2e8d065d0039 /src | |
| parent | 21681dbcefdaa854ca1f8ac210914438ca903443 (diff) | |
| parent | 18d66ad7918af9396dd191507fb9d5c1d86acfe7 (diff) | |
Merge pull request #51 from Dhandapani/cf34dac4146517b02fe8da81b6aeaa0007161f83
Add brick issue fixes
Diffstat (limited to 'src')
5 files changed, 55 insertions, 15 deletions
diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java index 24f5e70b..7566850a 100644 --- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java +++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java @@ -80,15 +80,15 @@ public class GlusterDataModelManager { public static GlusterDataModelManager getInstance() { return instance; } - + public void initializeModelWithNewCluster(String securityToken, String clusterName) { model = new GlusterDataModel("Gluster Data Model"); setSecurityToken(securityToken); - + Cluster cluster = new Cluster(clusterName, model); cluster.setServers(new ArrayList<GlusterServer>()); - cluster.setVolumes(new ArrayList<Volume>()); + cluster.setVolumes(new ArrayList<Volume>()); initializeAutoDiscoveredServers(cluster); // initializeDisks(); @@ -103,7 +103,7 @@ public class GlusterDataModelManager { model = new GlusterDataModel("Gluster Data Model"); setSecurityToken(securityToken); setClusterName(clusterName); - + Cluster cluster = new Cluster(clusterName, model); initializeGlusterServers(cluster); @@ -323,6 +323,12 @@ public class GlusterDataModelManager { } } + public void addBricks(Volume volume, List<Brick> bricks) { + for (ClusterListener listener : listeners) { + listener.volumeChanged(volume, new Event(EVENT_TYPE.BRICKS_ADDED, bricks)); + } + } + public void setVolumeOption(Volume volume, Entry<String, String> entry) { volume.setOption(entry.getKey(), (String) entry.getValue()); for (ClusterListener listener : listeners) { @@ -385,16 +391,16 @@ public class GlusterDataModelManager { throw new GlusterRuntimeException("Couldn't find entry for option [" + optionKey + "] on volume [" + volume.getName()); } - + private Boolean isDiskUsed(Volume volume, Disk disk) { - for(Brick brick: volume.getBricks()) { + for (Brick brick : volume.getBricks()) { if (disk.getName().equals(brick.getDiskName()) && disk.getServerName().equals(brick.getServerName())) { return true; } } return false; } - + public String getDiskStatus(Disk disk) { if (disk.getStatus() == DISK_STATUS.READY) { for (Volume volume : model.getCluster().getVolumes()) { 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 22b938d2..99594b5d 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 @@ -20,12 +20,12 @@ package com.gluster.storage.management.core.model; public class Event { public enum EVENT_TYPE { - DISK_ADDED, - DISK_REMOVED, + BRICKS_ADDED, + BRICKS_REMOVED, NETWORK_INTERFACE_ADDED, NETWORK_INTERFACE_REMOVED, VOLUME_STATUS_CHANGED, - VOLUME_OPTIONS_RESET, + VOLUME_OPTIONS_RESET, VOLUME_OPTION_SET } diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Volume.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Volume.java index dae07dbc..013ca5b7 100644 --- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Volume.java +++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Volume.java @@ -230,7 +230,7 @@ public class Volume extends Entity { } public void addBricks(List<Brick> bricks) { - bricks.addAll(bricks); + this.bricks.addAll(bricks); } diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/AddDiskWizard.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/AddDiskWizard.java index 8feeacc3..18161076 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/AddDiskWizard.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/AddDiskWizard.java @@ -72,6 +72,10 @@ public class AddDiskWizard extends Wizard { List<Disk> disks = page.getChosenDisks(); volume.addDisks(GlusterCoreUtil.getQualifiedDiskNames(disks)); volume.addBricks(bricks); + + // Update model with new bricks in the volume + GlusterDataModelManager.getInstance().addBricks(volume, bricks); + MessageDialog.openInformation(getShell(), "Add brick(s) to Volume", "Volume [" + volume.getName() + "] is expanded with bricks [" + StringUtil.ListToString(brickList, ", ") + "]"); return status.isSuccess(); diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/BricksPage.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/BricksPage.java index 374a9724..9ebab70b 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/BricksPage.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/BricksPage.java @@ -23,16 +23,25 @@ import java.util.List; import org.eclipse.jface.layout.TableColumnLayout; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.DisposeEvent; +import org.eclipse.swt.events.DisposeListener; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Table; import org.eclipse.ui.IWorkbenchSite; +import com.gluster.storage.management.client.GlusterDataModelManager; import com.gluster.storage.management.core.model.Brick; +import com.gluster.storage.management.core.model.ClusterListener; +import com.gluster.storage.management.core.model.DefaultClusterListener; import com.gluster.storage.management.core.model.Entity; +import com.gluster.storage.management.core.model.Event; +import com.gluster.storage.management.core.model.Volume; +import com.gluster.storage.management.core.model.Event.EVENT_TYPE; import com.gluster.storage.management.gui.BrickTableLabelProvider; public class BricksPage extends AbstractBricksPage { - + private Composite parent; + public enum BRICK_TABLE_COLUMN_INDICES { SERVER, BRICK, FREE_SPACE, TOTAL_SPACE, STATUS }; @@ -40,12 +49,35 @@ public class BricksPage extends AbstractBricksPage { private static final String[] DISK_TABLE_COLUMN_NAMES = new String[] { "Server", "Brick Directory", "Free Space (GB)", "Total Space (GB)", "Status" }; - public BricksPage(final Composite parent, int style, IWorkbenchSite site, List<Brick> bricks) { + public BricksPage(final Composite parent, int style, IWorkbenchSite site, final List<Brick> bricks) { super(parent, style, site, bricks); + createListeners(); + } + + private void createListeners() { + final ClusterListener clusterListener = new DefaultClusterListener() { + @Override + public void volumeChanged(Volume volume, Event event) { + if (event.getEventType() == EVENT_TYPE.BRICKS_ADDED) { + tableViewer.refresh(); + parent.update(); + } + + } + }; + GlusterDataModelManager.getInstance().addClusterListener(clusterListener); + addDisposeListener(new DisposeListener() { + + @Override + public void widgetDisposed(DisposeEvent e) { + GlusterDataModelManager.getInstance().removeClusterListener(clusterListener); + } + }); } @Override protected void setupDiskTable(Composite parent, Table table) { + this.parent = parent; table.setHeaderVisible(true); table.setLinesVisible(false); @@ -71,7 +103,5 @@ public class BricksPage extends AbstractBricksPage { @Override public void entityChanged(Entity entity, String[] paremeters) { - // TODO Auto-generated method stub - } }
\ No newline at end of file |
