diff options
author | Selvasundaram <selvam@gluster.com> | 2011-08-19 20:32:18 +0530 |
---|---|---|
committer | Selvasundaram <selvam@gluster.com> | 2011-08-19 20:32:18 +0530 |
commit | 6428f0db1ef50d9a27a40d07e8a1208263da48d1 (patch) | |
tree | 4ac5ed35e5815045bc6f8a04f96b5c756f8d4c1e /src | |
parent | cb3cbfb8307158167cf5fa88b2b61322be1c59a4 (diff) |
Migrating brick from boot partition (non data partition) - fix
Diffstat (limited to 'src')
3 files changed, 42 insertions, 18 deletions
diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/GlusterDataModelManager.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/GlusterDataModelManager.java index 2af1b214..917497e5 100644 --- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/GlusterDataModelManager.java +++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/GlusterDataModelManager.java @@ -602,13 +602,13 @@ public class GlusterDataModelManager { return brickDevice; } - public List<Device> getReadyDevicesOfVolume(Volume volume) { + public List<Device> getDevicesOfVolume(Volume volume) { Device device = null; List<Device> volumeDevices = new ArrayList<Device>(); for (Brick brick : volume.getBricks()) { // device = getDevice(brick.getServerName(), brick.getDeviceName()); device = getDeviceForBrickDir(brick); - if (device != null && device.isReady()) { + if (device != null) { volumeDevices.add(device); } } diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/MigrateBrickPage1.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/MigrateBrickPage1.java index 49d30d10..2f271186 100644 --- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/MigrateBrickPage1.java +++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/MigrateBrickPage1.java @@ -29,6 +29,7 @@ import org.eclipse.jface.viewers.ColumnWeightData; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.swt.SWT; @@ -48,6 +49,7 @@ import com.gluster.storage.management.console.TableLabelProviderAdapter; import com.gluster.storage.management.console.utils.GUIHelper; import com.gluster.storage.management.core.model.Brick; import com.gluster.storage.management.core.model.Device; +import com.gluster.storage.management.core.model.Entity; import com.gluster.storage.management.core.model.Volume; import com.gluster.storage.management.core.utils.NumberUtil; @@ -70,6 +72,28 @@ public class MigrateBrickPage1 extends WizardPage { private Button autoCompleteCheckbox; + private ITableLabelProvider getBrickLabelProvider(final String volumeName) { + return new TableLabelProviderAdapter() { + @Override + public String getColumnText(Object element, int columnIndex) { + if (!(element instanceof Brick)) { + return null; + } + Brick brick = (Brick) element; + GlusterDataModelManager modelManager = GlusterDataModelManager.getInstance(); + Device device = modelManager.getDeviceForBrickDir(brick); + // convert MB to GB + String freeSpace = (device == null ? "NA" : NumberUtil.formatNumber(device.getFreeSpace() / 1024)); + String totalSpace = (device == null ? "NA" : NumberUtil.formatNumber(device.getSpace() / 1024)); + return (columnIndex == DISK_TABLE_COLUMN_INDICES.SERVER.ordinal() ? brick.getServerName() + : columnIndex == DISK_TABLE_COLUMN_INDICES.BRICK_DIRECTORY.ordinal() ? brick.getBrickDirectory() + : columnIndex == DISK_TABLE_COLUMN_INDICES.FREE_SPACE.ordinal() ? freeSpace + : columnIndex == DISK_TABLE_COLUMN_INDICES.TOTAL_SPACE.ordinal() ? totalSpace + : "Invalid"); + } + }; + } + private ITableLabelProvider getDiskLabelProvider(final String volumeName) { return new TableLabelProviderAdapter() { @@ -138,11 +162,11 @@ public class MigrateBrickPage1 extends WizardPage { setDescription("Migrate volume data from \"" + source + "\" to \"" + target + "\""); } - private Device getSelectedDevice(TableViewer tableViewer) { + private Object getSelectedItem(TableViewer tableViewer) { TableItem[] selectedItems = tableViewer.getTable().getSelection(); - Device selectedDevice = null; + Object selectedDevice = null; for (TableItem item : selectedItems) { - selectedDevice = (Device) item.getData(); + selectedDevice = item.getData(); } return selectedDevice; } @@ -165,12 +189,12 @@ public class MigrateBrickPage1 extends WizardPage { } public String getSourceBrickDir() { - Device sourceDevice = getSelectedDevice(tableViewerFrom); - return sourceDevice.getQualifiedBrickName(volume.getName()); + Brick sourceBrick = (Brick)getSelectedItem(tableViewerFrom); + return sourceBrick.getQualifiedName(); } public String getTargetBrickDir() { - Device targetDevice = getSelectedDevice(tableViewerTo); + Device targetDevice = (Device)getSelectedItem(tableViewerTo); return targetDevice.getQualifiedBrickName(volume.getName()); } @@ -204,18 +228,19 @@ public class MigrateBrickPage1 extends WizardPage { Text txtFilterFrom = guiHelper.createFilterText(container); Text txtFilterTo = guiHelper.createFilterText(container); - ITableLabelProvider deviceLabelProvider = getDiskLabelProvider(volume.getName()); - GlusterDataModelManager glusterDataModelManager = GlusterDataModelManager.getInstance(); - List<Device> fromBricks = glusterDataModelManager.getReadyDevicesOfVolume(volume); - List<Device> toDevices = glusterDataModelManager.getReadyDevicesOfAllServersExcluding( fromBricks ); + List<Brick> fromBricks = volume.getBricks(); + List<Device> toDevices = glusterDataModelManager.getReadyDevicesOfAllServersExcluding(glusterDataModelManager + .getDevicesOfVolume(volume)); - tableViewerFrom = createTableViewer(container, deviceLabelProvider, fromBricks, txtFilterFrom); + tableViewerFrom = createTableViewer(container, getBrickLabelProvider(volume.getName()), fromBricks, + txtFilterFrom); if(fromBrick != null) { setFromDisk(tableViewerFrom, fromBrick); } - tableViewerTo = createTableViewer(container, deviceLabelProvider, toDevices, txtFilterTo); + tableViewerTo = createTableViewer(container, getDiskLabelProvider(volume.getName()), toDevices, txtFilterTo); + tableViewerTo.setSelection(new StructuredSelection(fromBrick)); // Auto commit selection field Composite autoCommitContainer = new Composite(container, SWT.NONE); @@ -248,8 +273,8 @@ public class MigrateBrickPage1 extends WizardPage { } } - private TableViewer createTableViewer(Composite container, ITableLabelProvider diskLabelProvider, - List<Device> bricks, Text txtFilterText) { + private <T> TableViewer createTableViewer(Composite container, ITableLabelProvider diskLabelProvider, + List<T> bricks, Text txtFilterText) { Composite tableViewerComposite = createTableViewerComposite(container); TableViewer tableViewer = new TableViewer(tableViewerComposite, SWT.SINGLE); diff --git a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/tasks/MigrateBrickTask.java b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/tasks/MigrateBrickTask.java index e7dd9c02..b84f90f6 100644 --- a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/tasks/MigrateBrickTask.java +++ b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/tasks/MigrateBrickTask.java @@ -41,8 +41,6 @@ public class MigrateBrickTask extends Task { private String toBrick; private Boolean autoCommit; private GlusterUtil glusterUtil; - - @Autowired protected ServerUtil serverUtil; public String getFromBrick() { @@ -83,6 +81,7 @@ public class MigrateBrickTask extends Task { private void init() { ApplicationContext ctx = ContextLoader.getCurrentWebApplicationContext(); glusterUtil = ctx.getBean(GlusterUtil.class); + serverUtil = ctx.getBean(ServerUtil.class); } @Override |