summaryrefslogtreecommitdiffstats
path: root/com.gluster.storage.management.gui/src/com
diff options
context:
space:
mode:
authorShireesh Anjal <shireesh@gluster.com>2011-03-22 21:10:23 +0530
committerShireesh Anjal <shireesh@gluster.com>2011-03-22 21:10:23 +0530
commit796bb0bea0b3f641c3b3611eab0a192417b7f51c (patch)
tree44124d49ebcaded999c4bc2e541076c1b6d7c530 /com.gluster.storage.management.gui/src/com
parentc0767db8bf79afd62cdb750558ab7db1a227838f (diff)
story#22 - Stop Volume
Diffstat (limited to 'com.gluster.storage.management.gui/src/com')
-rw-r--r--com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StartVolumeAction.java10
-rw-r--r--com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StopVolumeAction.java29
-rw-r--r--com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java18
3 files changed, 45 insertions, 12 deletions
diff --git a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StartVolumeAction.java b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StartVolumeAction.java
index dec94f12..e00b8f8b 100644
--- a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StartVolumeAction.java
+++ b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StartVolumeAction.java
@@ -31,19 +31,23 @@ import com.gluster.storage.management.core.model.Volume.VOLUME_STATUS;
public class StartVolumeAction extends AbstractActionDelegate {
private Volume volume;
- GlusterDataModelManager modelManager = GlusterDataModelManager.getInstance();
+ private GlusterDataModelManager modelManager = GlusterDataModelManager.getInstance();
@Override
public void run(IAction action) {
+ if(volume.getStatus() == VOLUME_STATUS.ONLINE) {
+ return; // Volume already online. Don't do anything.
+ }
+
VolumesClient client = new VolumesClient(modelManager.getServerName(), modelManager.getSecurityToken());
Status status = client.startVolume(volume.getName());
if (status.isSuccess()) {
- new MessageDialog(Display.getDefault().getActiveShell(), "Create Volume", null, "Volume ["
+ new MessageDialog(Display.getDefault().getActiveShell(), action.getDescription(), null, "Volume ["
+ volume.getName() + "] started successfully!", MessageDialog.INFORMATION, new String[] { "OK" }, 0)
.open();
modelManager.updateVolumeStatus(volume, VOLUME_STATUS.ONLINE);
} else {
- new MessageDialog(Display.getDefault().getActiveShell(), "Create Volume", null, "Volume ["
+ new MessageDialog(Display.getDefault().getActiveShell(), action.getDescription(), null, "Volume ["
+ volume.getName() + "] could not be started! Error: [" + status + "]", MessageDialog.ERROR,
new String[] { "OK" }, 0).open();
}
diff --git a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StopVolumeAction.java b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StopVolumeAction.java
index 8e0e7f50..42f0ff92 100644
--- a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StopVolumeAction.java
+++ b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StopVolumeAction.java
@@ -19,20 +19,42 @@
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 org.eclipse.swt.widgets.Display;
+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;
public class StopVolumeAction extends AbstractActionDelegate {
+ private Volume volume;
+ private GlusterDataModelManager modelManager = GlusterDataModelManager.getInstance();
+
@Override
public void run(IAction action) {
- System.out.println("Running [" + this.getClass().getSimpleName() + "]");
+ if(volume.getStatus() == VOLUME_STATUS.OFFLINE) {
+ return; // Volume already offline. Don't do anything.
+ }
+
+ VolumesClient client = new VolumesClient(modelManager.getServerName(), modelManager.getSecurityToken());
+ Status status = client.stopVolume(volume.getName());
+ if (status.isSuccess()) {
+ new MessageDialog(Display.getDefault().getActiveShell(), action.getDescription(), null, "Volume ["
+ + volume.getName() + "] stopped successfully!", MessageDialog.INFORMATION, new String[] { "OK" }, 0)
+ .open();
+ modelManager.updateVolumeStatus(volume, VOLUME_STATUS.OFFLINE);
+ } else {
+ new MessageDialog(Display.getDefault().getActiveShell(), action.getDescription(), null, "Volume ["
+ + volume.getName() + "] could not be stopped! Error: [" + status + "]", MessageDialog.ERROR,
+ new String[] { "OK" }, 0).open();
+ }
}
@Override
public void dispose() {
- System.out.println("Disposing [" + this.getClass().getSimpleName() + "]");
}
/* (non-Javadoc)
@@ -40,11 +62,10 @@ public class StopVolumeAction extends AbstractActionDelegate {
*/
@Override
public void selectionChanged(IAction action, ISelection selection) {
- // TODO Auto-generated method stub
super.selectionChanged(action, selection);
if (selectedEntity instanceof Volume) {
- Volume volume = (Volume) selectedEntity;
+ volume = (Volume) selectedEntity;
action.setEnabled(volume.getStatus() == VOLUME_STATUS.ONLINE);
}
}
diff --git a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java
index 396c5419..c56ba71f 100644
--- a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java
+++ b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java
@@ -36,6 +36,7 @@ public class VolumeSummaryView extends ViewPart {
private ScrolledForm form;
private Volume volume;
private CLabel lblStatusValue;
+ private DefaultClusterListener volumeChangedListener;
@Override
public void createPartControl(Composite parent) {
@@ -46,10 +47,7 @@ public class VolumeSummaryView extends ViewPart {
createSections(parent);
// Refresh the navigation tree whenever there is a change to the data model
- GlusterDataModelManager.getInstance().addClusterListener(new DefaultClusterListener() {
- /* (non-Javadoc)
- * @see com.gluster.storage.management.core.model.DefaultClusterListener#volumeChanged(com.gluster.storage.management.core.model.Volume, com.gluster.storage.management.core.model.Event)
- */
+ volumeChangedListener = new DefaultClusterListener() {
@Override
public void volumeChanged(Volume volume, Event event) {
if(event.getEventType() == EVENT_TYPE.VOLUME_STATUS_CHANGED) {
@@ -57,7 +55,17 @@ public class VolumeSummaryView extends ViewPart {
new GlusterToolbarManager(getSite().getWorkbenchWindow()).updateToolbar(volume);
}
}
- });
+ };
+ GlusterDataModelManager.getInstance().addClusterListener(volumeChangedListener);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.part.WorkbenchPart#dispose()
+ */
+ @Override
+ public void dispose() {
+ super.dispose();
+ GlusterDataModelManager.getInstance().removeClusterListener(volumeChangedListener);
}
private void createSections(Composite parent) {