diff options
| author | Shireesh Anjal <shireesh@gluster.com> | 2011-03-22 21:10:23 +0530 |
|---|---|---|
| committer | Shireesh Anjal <shireesh@gluster.com> | 2011-03-22 21:10:23 +0530 |
| commit | 796bb0bea0b3f641c3b3611eab0a192417b7f51c (patch) | |
| tree | 44124d49ebcaded999c4bc2e541076c1b6d7c530 /com.gluster.storage.management.gui/src/com | |
| parent | c0767db8bf79afd62cdb750558ab7db1a227838f (diff) | |
story#22 - Stop Volume
Diffstat (limited to 'com.gluster.storage.management.gui/src/com')
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) { |
