summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.gui
diff options
context:
space:
mode:
authorDhandapani <dhandapani@gluster.com>2011-04-29 16:36:54 +0530
committerDhandapani <dhandapani@gluster.com>2011-05-04 15:38:20 +0530
commit5152d0873bfdc9d2a3ba37da4ceab26bea5864b8 (patch)
treea3a761b310e509e398ce5cd67de0c0d6a5c3e9b1 /src/com.gluster.storage.management.gui
parent37f9decd283c3351dd23a5f7c9d4369a3b1dfcd7 (diff)
Story #13: Remove Disk(s) Client and Resource Changes
Diffstat (limited to 'src/com.gluster.storage.management.gui')
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/RemoveDiskAction.java34
1 files changed, 30 insertions, 4 deletions
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/RemoveDiskAction.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/RemoveDiskAction.java
index 19cf84f7..1524f334 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/RemoveDiskAction.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/RemoveDiskAction.java
@@ -5,6 +5,7 @@ import java.util.Iterator;
import java.util.List;
import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IWorkbenchPart;
@@ -12,8 +13,9 @@ import org.eclipse.ui.IWorkbenchPart;
import com.gluster.storage.management.client.GlusterDataModelManager;
import com.gluster.storage.management.client.VolumesClient;
import com.gluster.storage.management.core.model.Disk;
-import com.gluster.storage.management.core.model.Entity;
+import com.gluster.storage.management.core.model.Status;
import com.gluster.storage.management.core.model.Volume;
+import com.gluster.storage.management.gui.IImageKeys;
import com.gluster.storage.management.gui.utils.GUIHelper;
import com.gluster.storage.management.gui.views.VolumeDisksView;
@@ -21,11 +23,34 @@ public class RemoveDiskAction extends AbstractActionDelegate {
private GlusterDataModelManager modelManager = GlusterDataModelManager.getInstance();
private GUIHelper guiHelper = GUIHelper.getInstance();
private List<Disk> disks;
+ private Volume volume;
@Override
protected void performAction(IAction action) {
+ final String actionDesc = action.getDescription();
+ Integer deleteOption = new MessageDialog(getShell(), "Remove Disk(s)", GUIHelper.getInstance().getImage(
+ IImageKeys.VOLUME), "Are you sure you want to remove disks from volume [" + volume.getName()
+ + "] ?", MessageDialog.QUESTION, new String[] { "Cancel", "Remove disks, delete volume data from them",
+ "Remove disks, back-up volume data from them" }, 2).open();
+ if (deleteOption == 0) {
+ return;
+ }
+
+ String confirmDelete = "";
+ if (deleteOption == 1) {
+ confirmDelete = "-d";
+ }
+
VolumesClient client = new VolumesClient(modelManager.getSecurityToken());
- // final Status status = client.removeDisk();
+ Status status = client.removeBricks(volume.getName(), disks, confirmDelete);
+
+ if (status.isSuccess()) {
+ showInfoDialog(actionDesc, "Volume [" + volume.getName() + "] disk(s) removed successfully!");
+ modelManager.deleteVolume(volume);
+ } else {
+ showErrorDialog(actionDesc, "Volume [" + volume.getName() + "] disk(s) could not be removed! Error: ["
+ + status + "]");
+ }
}
@Override
@@ -37,8 +62,8 @@ public class RemoveDiskAction extends AbstractActionDelegate {
super.selectionChanged(action, selection);
action.setEnabled(false);
- Volume selectedVolume = (Volume)guiHelper.getSelectedEntity(window, Volume.class);
- if (selectedVolume != null) {
+ volume = (Volume)guiHelper.getSelectedEntity(window, Volume.class);
+ if (volume != null) {
// a volume is selected on navigation tree. Let's check if the currently open view is volume disks view
IWorkbenchPart view = guiHelper.getActiveView();
if(view instanceof VolumeDisksView) {
@@ -51,6 +76,7 @@ public class RemoveDiskAction extends AbstractActionDelegate {
private List<Disk> getSelectedDisks(ISelection selection) {
List<Disk> selectedDisks = new ArrayList<Disk>();
+
if (selection instanceof IStructuredSelection) {
Iterator<Object> iter = ((IStructuredSelection) selection).iterator();
while (iter.hasNext()) {