summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDhandapani <dhandapani@gluster.com>2011-06-02 18:40:52 +0530
committerDhandapani <dhandapani@gluster.com>2011-06-02 18:40:52 +0530
commit18d66ad7918af9396dd191507fb9d5c1d86acfe7 (patch)
tree27dfa23f6379362bfa74dda6d1c10dd9b23506e2 /src
parenta468e753ba0c437bf4fb1bf4250cd1d0e175a08b (diff)
Add brick issue fixes
Diffstat (limited to 'src')
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java20
-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/Volume.java2
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/AddDiskWizard.java4
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/BricksPage.java38
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