diff options
| author | Selvasundaram <selvam@gluster.com> | 2011-08-02 12:54:37 +0530 |
|---|---|---|
| committer | Selvasundaram <selvam@gluster.com> | 2011-08-02 15:06:08 +0530 |
| commit | b2beb1553211ac587f1cde436160177d8aeb8032 (patch) | |
| tree | a721a32d0e851e974b898b7c33f6948620837e3d /src/com.gluster.storage.management.gui | |
| parent | 9e4f1e15459d4e53a901c0ed6ce725cb704e9710 (diff) | |
Device mount point handling
Parameter changes for directory cleanup script.
Bug 3297 - Path seperator is appended as "\" instead of "/" if volume is created from windows client - fix
Diffstat (limited to 'src/com.gluster.storage.management.gui')
6 files changed, 53 insertions, 33 deletions
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/ApplicationActionBarAdvisor.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/ApplicationActionBarAdvisor.java index 8b5dba55..56e5247c 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/ApplicationActionBarAdvisor.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/ApplicationActionBarAdvisor.java @@ -18,7 +18,6 @@ *******************************************************************************/ package com.gluster.storage.management.gui; -import org.eclipse.jface.action.Action; import org.eclipse.jface.action.GroupMarker; import org.eclipse.jface.action.ICoolBarManager; import org.eclipse.jface.action.IMenuManager; diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/BrickTableLabelProvider.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/BrickTableLabelProvider.java index 3e5907ef..175d24ea 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/BrickTableLabelProvider.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/BrickTableLabelProvider.java @@ -75,7 +75,8 @@ public class BrickTableLabelProvider extends TableLabelProviderAdapter { } Brick brick = (Brick) element; - Device device = GlusterDataModelManager.getInstance().getDeviceDetails(brick.getDeviceName()); + Device device = GlusterDataModelManager.getInstance().getDeviceForBrickDir(brick); +System.out.println(device.getServerName() + device.getName()); return (columnIndex == BRICK_TABLE_COLUMN_INDICES.SERVER.ordinal() ? brick.getServerName() : columnIndex == BRICK_TABLE_COLUMN_INDICES.BRICK.ordinal() ? brick.getBrickDirectory() : columnIndex == BRICK_TABLE_COLUMN_INDICES.FREE_SPACE.ordinal() ? getDeviceFreeSpace(device) diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/GlusterDataModelManager.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/GlusterDataModelManager.java index d301ad10..5c7fb5c2 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/GlusterDataModelManager.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/GlusterDataModelManager.java @@ -49,7 +49,6 @@ import com.gluster.storage.management.core.model.GlusterDataModel; import com.gluster.storage.management.core.model.GlusterServer; import com.gluster.storage.management.core.model.Partition; import com.gluster.storage.management.core.model.Server; -import com.gluster.storage.management.core.model.Server.SERVER_STATUS; import com.gluster.storage.management.core.model.Status; import com.gluster.storage.management.core.model.TaskInfo; import com.gluster.storage.management.core.model.TaskInfo.TASK_TYPE; @@ -565,15 +564,15 @@ public class GlusterDataModelManager { return volume; } - private Device getDevice(String serverName, String deviceName) { - List<Device> allDevices = getReadyDevicesOfAllServers(); - for (Device device : allDevices) { - if (device.getServerName().equals(serverName) && device.getName().equals(deviceName)) { - return device; - } - } - return null; - } +// private Device getDevice(String serverName, String deviceName) { +// List<Device> allDevices = getReadyDevicesOfAllServers(); +// for (Device device : allDevices) { +// if (device.getServerName().equals(serverName) && device.getName().equals(deviceName)) { +// return device; +// } +// } +// return null; +// } /* * @param diskName (sda) @@ -591,11 +590,24 @@ public class GlusterDataModelManager { } + public Device getDeviceForBrickDir(Brick brick) { + Device brickDevice = null; + for (Device device : getReadyDevicesOfServer(brick.getServerName(), new ArrayList<Device>())) { + if (brick.getBrickDirectory().matches("^" + device.getMountPoint() + ".*")) { + if (brickDevice == null || device.getMountPoint().length() > brickDevice.getMountPoint().length()) { + brickDevice = device; + } + } + } + return brickDevice; + } + public List<Device> getReadyDevicesOfVolume(Volume volume) { Device device = null; List<Device> volumeDevices = new ArrayList<Device>(); for (Brick brick : volume.getBricks()) { - device = getDevice(brick.getServerName(), brick.getDeviceName()); + // device = getDevice(brick.getServerName(), brick.getDeviceName()); + device = getDeviceForBrickDir(brick); if (device != null && device.isReady()) { volumeDevices.add(device); } @@ -611,24 +623,31 @@ public class GlusterDataModelManager { List<Device> devices = new ArrayList<Device>(); for (Server server : model.getCluster().getServers()) { - if (server.getStatus() == SERVER_STATUS.OFFLINE) { - continue; - } - for (Disk disk : server.getDisks()) { - if(disk.hasPartitions()) { - for(Partition partition : disk.getPartitions()) { - if(partition.isReady() && !excludeDevices.contains(partition)) { - devices.add(partition); - } + devices.addAll( getReadyDevicesOfServer(server.getName(), excludeDevices) ); + } + return devices; + } + + public List<Device> getReadyDevicesOfServer(String serverName, List<Device> excludeDevices) { + List<Device> devices = new ArrayList<Device>(); + GlusterServer server = model.getCluster().getServer(serverName); + if (!server.isOnline()) { + return devices; + } + for (Disk disk : server.getDisks()) { + if (disk.hasPartitions()) { + for (Partition partition : disk.getPartitions()) { + if (partition.isReady() && !excludeDevices.contains(partition)) { + devices.add(partition); } - } else if (disk.isReady() && !excludeDevices.contains(disk)) { - devices.add(disk); } + } else if (disk.isReady() && !excludeDevices.contains(disk)) { + devices.add(disk); } } return devices; } - + public void addClusterListener(ClusterListener listener) { listeners.add(listener); } @@ -846,7 +865,7 @@ public class GlusterDataModelManager { public Server getGlusterServer(String serverName) { for (Server server : model.getCluster().getServers()) { - if (server.getName().equals(serverName)) { + if (server.getName().equalsIgnoreCase(serverName)) { return server; } } @@ -854,8 +873,11 @@ public class GlusterDataModelManager { } private Boolean isDeviceUsed(Volume volume, Device device) { + Device brickDevice = null; for (Brick brick : volume.getBricks()) { - if (device.getName().equals(brick.getDeviceName()) && device.getServerName().equals(brick.getServerName())) { + brickDevice = getDeviceForBrickDir(brick); + if (brickDevice != null && device.getName().equals(brickDevice.getName()) + && device.getServerName().equalsIgnoreCase(brick.getServerName())) { return true; } } @@ -878,7 +900,7 @@ public class GlusterDataModelManager { Cluster cluster = model.getCluster(); for (Volume volume : cluster.getVolumes()) { for (Brick brick : volume.getBricks()) { - if (serverName.equals(brick.getServerName())) { + if (serverName.equalsIgnoreCase(brick.getServerName())) { volumeNames.add(volume.getName()); break; } diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/AddBrickPage.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/AddBrickPage.java index 14e36852..e570c068 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/AddBrickPage.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/AddBrickPage.java @@ -31,7 +31,6 @@ import org.eclipse.swt.widgets.Composite; import com.gluster.storage.management.core.model.Brick; import com.gluster.storage.management.core.model.Device; -import com.gluster.storage.management.core.model.Disk; import com.gluster.storage.management.core.model.Volume; import com.gluster.storage.management.core.model.Volume.VOLUME_TYPE; import com.gluster.storage.management.gui.GlusterDataModelManager; diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/CreateVolumePage1.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/CreateVolumePage1.java index 96da6fa3..c0e76889 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/CreateVolumePage1.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/CreateVolumePage1.java @@ -339,7 +339,7 @@ public class CreateVolumePage1 extends WizardPage { for (Device device : selectedDevices) { Brick brick = new Brick(device.getServerName(), BRICK_STATUS.ONLINE, device.getName(), - device.getMountPoint() + File.separator + volume.getName()); + device.getMountPoint() + "/" + volume.getName()); volume.addBrick(brick); } diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java index 20439aca..722d0ff1 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java @@ -44,7 +44,6 @@ import com.gluster.storage.management.core.model.Event; import com.gluster.storage.management.core.model.GlusterServer; import com.gluster.storage.management.core.model.Partition; import com.gluster.storage.management.core.model.Server.SERVER_STATUS; -import com.gluster.storage.management.core.model.TaskInfo; import com.gluster.storage.management.core.model.Volume; import com.gluster.storage.management.core.model.Volume.VOLUME_TYPE; import com.gluster.storage.management.core.utils.NumberUtil; @@ -466,10 +465,10 @@ public class VolumeSummaryView extends ViewPart { private double getTotalDiskSpace() { double diskSize = 0; for (Brick brick : volume.getBricks()) { - diskSize += getDiskSize(brick.getServerName(), brick.getDeviceName()); + diskSize += getDiskSize(brick.getServerName(), + GlusterDataModelManager.getInstance().getDeviceForBrickDir(brick).getName()); } return diskSize; - } private void createDiskSpaceField(Composite section) { |
