diff options
| author | Shireesh Anjal <shireesh@gluster.com> | 2011-04-12 12:02:26 +0530 |
|---|---|---|
| committer | Shireesh Anjal <shireesh@gluster.com> | 2011-04-12 12:02:26 +0530 |
| commit | 793358f8e1068c944a15d6e16b90dcb4cc1c2950 (patch) | |
| tree | 97ac3df4cde013f147b5a5749c1aae1f2a713473 /src | |
| parent | 8e28b180eec30f2059977c20a83a8f2488e41788 (diff) | |
Story#15 - Volume options
Diffstat (limited to 'src')
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) |
