summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.gui
diff options
context:
space:
mode:
authorDhandapani <dhandapani@gluster.com>2011-04-21 15:24:30 +0530
committerDhandapani <dhandapani@gluster.com>2011-04-25 14:24:48 +0530
commit9d8fdadfeedbd132ab01dd0cdd79f21f52f90a4e (patch)
tree387453bee4d3581158942f3cf3a20308117943ed /src/com.gluster.storage.management.gui
parent1bf13c069eff1230f768bb8611a3e643ff4334f5 (diff)
parent2f7b2e1e712fe6ff51590b50c3b7215c5c0879f9 (diff)
Merge branch 'deletevolume'
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/DeleteVolumeAction.java63
1 files changed, 62 insertions, 1 deletions
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/DeleteVolumeAction.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/DeleteVolumeAction.java
index 82ac1663..2a213acc 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/DeleteVolumeAction.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/DeleteVolumeAction.java
@@ -19,15 +19,76 @@
package com.gluster.storage.management.gui.actions;
import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+
+import com.gluster.storage.management.client.GlusterDataModelManager;
+import com.gluster.storage.management.client.VolumesClient;
+import com.gluster.storage.management.core.model.Status;
+import com.gluster.storage.management.core.model.Volume;
+import com.gluster.storage.management.core.model.Volume.VOLUME_STATUS;
+import com.gluster.storage.management.gui.IImageKeys;
+import com.gluster.storage.management.gui.utils.GUIHelper;
public class DeleteVolumeAction extends AbstractActionDelegate {
+ private Volume volume;
+ private GlusterDataModelManager modelManager = GlusterDataModelManager.getInstance();
+
@Override
protected void performAction(IAction action) {
- System.out.println("Running [" + this.getClass().getSimpleName() + "]");
+ final String actionDesc = action.getDescription();
+
+ String warningMessage;
+ if (volume.getStatus() == VOLUME_STATUS.OFFLINE) {
+ warningMessage = "Are you sure to delete the Volume[" + volume.getName() + "] ?";
+ } else {
+ warningMessage = "Volume [" + volume.getName() + "] is running, \nAre you sure to continue?";
+ }
+
+ Integer deleteOption = new MessageDialog(getShell(), "Gluster Storage Platform", GUIHelper.getInstance().getImage(
+ IImageKeys.SERVER), warningMessage, MessageDialog.INFORMATION, new String[] { "Cancel",
+ "Delete volume and it's data", "Delete volume, keep back-up of data" }, 2).open();
+ if (deleteOption == 0) {
+ return;
+ }
+
+ VolumesClient client = new VolumesClient(modelManager.getSecurityToken());
+
+ Status status;
+ if (volume.getStatus() == VOLUME_STATUS.ONLINE) { // To stop the volume service, if running
+ status = client.stopVolume(volume.getName());
+ if (!status.isSuccess()) {
+ showErrorDialog(actionDesc, "Volume [" + volume.getName() + "] could not be stopped! Error: [" + status.getMessage()
+ + "]");
+ return;
+ }
+ }
+
+ status = client.deleteVolume(volume, deleteOption.toString());
+ if (status.isSuccess()) {
+ showInfoDialog(actionDesc, "Volume [" + volume.getName() + "] deleted successfully!");
+ modelManager.deleteVolume(volume);
+ } else {
+ if (status.isPartSuccess()) {
+ showWarningDialog(actionDesc, "Volume deleted, but following error(s) occured: " + status.getMessage());
+ modelManager.deleteVolume(volume);
+ } else {
+ showErrorDialog(actionDesc, "Volume [" + volume.getName() + "] could not be deleted! Error: [" + status.getMessage()
+ + "]");
+ }
+ }
}
@Override
public void dispose() {
System.out.println("Disposing [" + this.getClass().getSimpleName() + "]");
}
+
+ @Override
+ public void selectionChanged(IAction action, ISelection selection) {
+ super.selectionChanged(action, selection);
+ if (selectedEntity instanceof Volume) {
+ volume = (Volume) selectedEntity;
+ }
+ }
}