diff options
| author | Dhandapani <dhandapani@gluster.com> | 2011-04-29 16:36:54 +0530 |
|---|---|---|
| committer | Dhandapani <dhandapani@gluster.com> | 2011-05-04 15:38:20 +0530 |
| commit | 5152d0873bfdc9d2a3ba37da4ceab26bea5864b8 (patch) | |
| tree | a3a761b310e509e398ce5cd67de0c0d6a5c3e9b1 /src/com.gluster.storage.management.gui | |
| parent | 37f9decd283c3351dd23a5f7c9d4369a3b1dfcd7 (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.java | 34 |
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()) { |
