summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorShireesh Anjal <shireesh@gluster.com>2011-04-12 12:02:26 +0530
committerShireesh Anjal <shireesh@gluster.com>2011-04-12 12:02:26 +0530
commit793358f8e1068c944a15d6e16b90dcb4cc1c2950 (patch)
tree97ac3df4cde013f147b5a5749c1aae1f2a713473 /src
parent8e28b180eec30f2059977c20a83a8f2488e41788 (diff)
Story#15 - Volume options
Diffstat (limited to 'src')
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java5
-rw-r--r--src/com.gluster.storage.management.gui/META-INF/MANIFEST.MF3
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/ResetVolumeOptionsAction.java2
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/VolumeOptionsPage.java99
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java7
5 files changed, 19 insertions, 97 deletions
diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java
index faa4bf71..1d9ddbff 100644
--- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java
+++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java
@@ -68,7 +68,7 @@ public class VolumesClient extends AbstractClient {
}
public Status resetVolumeOptions(String volume) {
- return (Status)putRequest(volume, Status.class);
+ return (Status)putRequest(volume + "/" + RESTConstants.SUBRESOURCE_OPTIONS, Status.class);
}
public VolumeListResponse getAllVolumes() {
@@ -80,9 +80,6 @@ public class VolumesClient extends AbstractClient {
}
public VolumeOptionInfoListResponse getVolumeOptionsDefaults() {
- String responseStr = (String) fetchSubResource(RESTConstants.SUBRESOURCE_DEFAULT_OPTIONS, String.class);
- System.out.println(responseStr);
-
return ((VolumeOptionInfoListResponse) fetchSubResource(RESTConstants.SUBRESOURCE_DEFAULT_OPTIONS,
VolumeOptionInfoListResponse.class));
}
diff --git a/src/com.gluster.storage.management.gui/META-INF/MANIFEST.MF b/src/com.gluster.storage.management.gui/META-INF/MANIFEST.MF
index 13fb07dc..2e59c854 100644
--- a/src/com.gluster.storage.management.gui/META-INF/MANIFEST.MF
+++ b/src/com.gluster.storage.management.gui/META-INF/MANIFEST.MF
@@ -21,8 +21,7 @@ Require-Bundle: org.eclipse.ui;bundle-version="3.6.1",
org.eclipse.birt.chart.device.swt;bundle-version="2.6.1",
com.ibm.icu;bundle-version="4.2.1",
com.richclientgui.rcptoolbox;bundle-version="1.0.5",
- org.eclipse.core.resources,
- org.eclipse.equinox.common.source;bundle-version="3.6.0"
+ org.eclipse.core.resources
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/ResetVolumeOptionsAction.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/ResetVolumeOptionsAction.java
index 9f77fb27..7fd77ea8 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/ResetVolumeOptionsAction.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/ResetVolumeOptionsAction.java
@@ -34,7 +34,7 @@ public class ResetVolumeOptionsAction extends AbstractActionDelegate {
final Status status = resetVolumeOptions();
if (status.isSuccess()) {
showInfoDialog(actionDesc, "Volume options for [" + volume.getName() + "] reset successfully!");
- modelManager.updateVolumeStatus(volume, VOLUME_STATUS.OFFLINE);
+ modelManager.resetVolumeOptions(volume);
} else {
showErrorDialog(actionDesc, "Volume options for [" + volume.getName() + "] could not be reset! Error: [" + status
+ "]");
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/VolumeOptionsPage.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/VolumeOptionsPage.java
index 2ab83789..5a1a41e9 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/VolumeOptionsPage.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/VolumeOptionsPage.java
@@ -20,30 +20,21 @@ package com.gluster.storage.management.gui.views.details;
import java.util.Map.Entry;
-import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.layout.TableColumnLayout;
import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jface.viewers.ColumnLayoutData;
-import org.eclipse.jface.viewers.ColumnViewer;
import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.EditingSupport;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Cursor;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
@@ -56,8 +47,9 @@ import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.widgets.FormToolkit;
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.DefaultClusterListener;
+import com.gluster.storage.management.core.model.Event;
+import com.gluster.storage.management.core.model.Event.EVENT_TYPE;
import com.gluster.storage.management.core.model.Volume;
import com.gluster.storage.management.gui.VolumeOptionsTableLabelProvider;
import com.gluster.storage.management.gui.utils.GUIHelper;
@@ -135,6 +127,19 @@ public class VolumeOptionsPage extends Composite {
parent.layout();
}
});
+
+ GlusterDataModelManager.getInstance().addClusterListener(new DefaultClusterListener() {
+ @Override
+ public void volumeChanged(Volume volume, Event event) {
+ super.volumeChanged(volume, event);
+ if(event.getEventType() == EVENT_TYPE.VOLUME_OPTIONS_RESET) {
+ if(!tableViewer.getControl().isDisposed()) {
+ tableViewer.refresh();
+ }
+ }
+ }
+ });
+
}
private void setupPageLayout() {
@@ -183,76 +188,6 @@ public class VolumeOptionsPage extends Composite {
return valueColumn.getColumn();
}
- private class OptionValueEditingSupport extends EditingSupport {
- private CellEditor cellEditor;
-
- public OptionValueEditingSupport(ColumnViewer viewer) {
- super(viewer);
- cellEditor = new TextCellEditor((Composite) viewer.getControl());
- }
-
- @Override
- protected void setValue(final Object element, final Object value) {
- final Entry<String, String> entry = (Entry<String, String>)element;
- if(entry.getValue().equals(value)) {
- // value is same as that present in the model. return without doing anything.
- return;
- }
-
- final Cursor oldCursor = getViewer().getControl().getCursor();
- //getViewer().getControl().setCursor(new Cursor(Display.getDefault(), SWT.CURSOR_WAIT));
- // value has changed. set volume option at back-end and update model accordingly
- BusyIndicator.showWhile(getDisplay(), new Runnable() {
-
- @Override
- public void run() {
- VolumesClient client = new VolumesClient(GlusterDataModelManager.getInstance().getSecurityToken());
- Status status = client.setVolumeOption(volume.getName(), entry.getKey(), (String)value);
- if(status.isSuccess()) {
- volume.setOption(entry.getKey(), (String)value);
- } else {
- MessageDialog.openError(getShell(), "Set Volume Option", status.getMessage());
- }
- getViewer().update(entry, null);
- //getViewer().refresh();
- //getViewer().getControl().setCursor(oldCursor);
- }
- });
- }
-
- @Override
- protected Object getValue(Object element) {
- return ((Entry<String, String>) element).getValue();
- }
-
- @Override
- protected CellEditor getCellEditor(Object element) {
- return cellEditor;
- }
-
- @Override
- protected boolean canEdit(Object element) {
- return true;
- }
- }
-
- private TableColumn createValueColumn() {
- TableViewerColumn valueColumn = new TableViewerColumn(tableViewer, SWT.NONE);
- valueColumn.getColumn()
- .setText(OPTIONS_TABLE_COLUMN_NAMES[OPTIONS_TABLE_COLUMN_INDICES.OPTION_VALUE.ordinal()]);
- valueColumn.setLabelProvider(new ColumnLabelProvider() {
- @Override
- public String getText(Object element) {
- return ((Entry<String, String>) element).getValue();
- }
- });
-
- // User can edit value of a volume option
- valueColumn.setEditingSupport(new OptionValueEditingSupport(valueColumn.getViewer()));
-
- return valueColumn.getColumn();
- }
-
private TableColumn createKeyColumn() {
TableViewerColumn keyColumn = new TableViewerColumn(tableViewer, SWT.NONE);
keyColumn.getColumn().setText(OPTIONS_TABLE_COLUMN_NAMES[OPTIONS_TABLE_COLUMN_INDICES.OPTION_KEY.ordinal()]);
@@ -270,9 +205,7 @@ public class VolumeOptionsPage extends Composite {
}
private void createDiskTableViewer(Composite parent) {
- //tableViewer = CheckboxTableViewer.newCheckList(parent, SWT.FLAT | SWT.FULL_SELECTION | SWT.MULTI);
tableViewer = new TableViewer(parent, SWT.FLAT | SWT.FULL_SELECTION | SWT.SINGLE);
- // TableViewer tableViewer = new TableViewer(parent, SWT.FLAT | SWT.FULL_SELECTION | SWT.MULTI);
tableViewer.setLabelProvider(new VolumeOptionsTableLabelProvider());
tableViewer.setContentProvider(new ArrayContentProvider());
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java
index 06406434..4fe06cc9 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java
@@ -105,13 +105,6 @@ public class VolumesResource {
return glusterUtil.getVolume(volumeName);
}
- @GET
- @Path("{" + PATH_PARAM_VOLUME_NAME + "}")
- @Produces(MediaType.TEXT_XML)
- public Volume getVolume(@PathParam(PATH_PARAM_VOLUME_NAME) String volumeName) {
- return glusterUtil.getVolume(volumeName);
- }
-
@PUT
@Path("{" + PATH_PARAM_VOLUME_NAME + "}")
@Produces(MediaType.TEXT_XML)