diff options
| author | Dhandapani <dhandapani@gluster.com> | 2011-05-20 15:10:54 +0530 |
|---|---|---|
| committer | Dhandapani <dhandapani@gluster.com> | 2011-05-20 15:10:54 +0530 |
| commit | dfc27f51da469160e50e20d8ff59e714b5942546 (patch) | |
| tree | 7e85da4a3b24f150fde36ada059269ddd969e635 /src/com.gluster.storage.management.client | |
| parent | ee1867b0fbf7b66f82082c20c2d06238a2c6a6b9 (diff) | |
Story #77: Change "Disk" in volume context to "Brick"
Diffstat (limited to 'src/com.gluster.storage.management.client')
2 files changed, 64 insertions, 47 deletions
diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java index 41d76e58..0051d427 100644 --- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java +++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java @@ -25,6 +25,7 @@ import java.util.List; import java.util.Map.Entry; import com.gluster.storage.management.core.exceptions.GlusterRuntimeException; +import com.gluster.storage.management.core.model.Brick; import com.gluster.storage.management.core.model.Cluster; import com.gluster.storage.management.core.model.ClusterListener; import com.gluster.storage.management.core.model.Disk; @@ -106,7 +107,7 @@ public class GlusterDataModelManager { private void addDiscoveredServer(List<Server> servers, Entity parent, String name, int numOfCPUs, double cpuUsage, double totalMemory, double memoryInUse, double totalDiskSpace, double diskSpaceInUse) { Server server = new Server(name, parent, numOfCPUs, cpuUsage, totalMemory, memoryInUse); - server.addDisk(new Disk(server, "sda", totalDiskSpace, diskSpaceInUse, DISK_STATUS.READY)); + server.addDisk(new Disk(server, "sda", "/export/md1", totalDiskSpace, diskSpaceInUse, DISK_STATUS.READY)); addNetworkInterface(server, "eth0"); servers.add(server); @@ -172,21 +173,21 @@ public class GlusterDataModelManager { } private void initializeDisks() { - s1da = new Disk(server1, "sda", 100d, 80d, DISK_STATUS.READY); - s1db = new Disk(server1, "sdb", 100d, 67.83, DISK_STATUS.READY); + s1da = new Disk(server1, "sda", "/export/md0", 100d, 80d, DISK_STATUS.READY); + s1db = new Disk(server1, "sdb", "/export/md1", 100d, 67.83, DISK_STATUS.READY); - s2da = new Disk(server2, "sda", 200d, 157.12, DISK_STATUS.READY); - s2db = new Disk(server2, "sdb", 200d, 182.27, DISK_STATUS.READY); - s2dc = new Disk(server2, "sdc", 200d, -1d, DISK_STATUS.UNINITIALIZED); - s2dd = new Disk(server2, "sdd", 200d, 124.89, DISK_STATUS.READY); + s2da = new Disk(server2, "sda", "/export/md0", 200d, 157.12, DISK_STATUS.READY); + s2db = new Disk(server2, "sdb", "/export/md1", 200d, 182.27, DISK_STATUS.READY); + s2dc = new Disk(server2, "sdc", "/export/md0", 200d, -1d, DISK_STATUS.UNINITIALIZED); + s2dd = new Disk(server2, "sdd", "/export/md1", 200d, 124.89, DISK_STATUS.READY); // disk name unavailable since server is offline - s3da = new Disk(server3, "NA", -1d, -1d, DISK_STATUS.OFFLINE); + s3da = new Disk(server3, "NA", "NA", -1d, -1d, DISK_STATUS.OFFLINE); - s4da = new Disk(server4, "sda", 100d, 85.39, DISK_STATUS.READY); + s4da = new Disk(server4, "sda", "/export/md0", 100d, 85.39, DISK_STATUS.READY); - s5da = new Disk(server5, "sda", 100d, 92.83, DISK_STATUS.READY); - s5db = new Disk(server5, "sdb", 200d, 185.69, DISK_STATUS.READY); + s5da = new Disk(server5, "sda", "/export/md1", 100d, 92.83, DISK_STATUS.READY); + s5db = new Disk(server5, "sdb", "/export/md1", 200d, 185.69, DISK_STATUS.READY); } private void addDisksToServers() { @@ -307,7 +308,27 @@ public class GlusterDataModelManager { } return volumeDisks; } - + + + public List<Brick> getOnlineBricks(Volume volume) { + List<Brick> onlineBricks = new ArrayList<Brick>(); + for(Brick brick : volume.getBricks()) { + if (isOnlineDisk(brick.getDiskName())) { + onlineBricks.add(brick); + } + } + return onlineBricks; + } + + public boolean isOnlineDisk(String diskName) { + for( Disk disk : getReadyDisksOfAllServers() ) { + if (disk.getName().equals(diskName) && disk.isReady()) { + return true; + } + } + return false; + } + public List<Disk> getReadyDisksOfAllVolumes() { List<Disk> disks = new ArrayList<Disk>(); for (Volume volume : model.getCluster().getVolumes()) { 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 c0ce8620..b407296e 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 @@ -92,7 +92,7 @@ public class VolumesClient extends AbstractClient { } public Status deleteVolume(Volume volume, boolean deleteOption) { - MultivaluedMap<String, String> queryParams = prepareGetDeleteVolumeQueryParams(volume.getName(), deleteOption); + MultivaluedMap<String, String> queryParams = prepareGetDeleteVolumeQueryParams(volume.getName(), deleteOption); return (Status) deleteSubResource(volume.getName(), Status.class, queryParams); } @@ -100,17 +100,11 @@ public class VolumesClient extends AbstractClient { return ((VolumeOptionInfoListResponse) fetchSubResource(RESTConstants.SUBRESOURCE_DEFAULT_OPTIONS, VolumeOptionInfoListResponse.class)); } - - public Status addDisks(String volumeName, List<Disk> diskList) { - String disks = StringUtil.ListToString( GlusterCoreUtil.getQualifiedDiskNames(diskList), ","); - Form form = new Form(); - form.add(RESTConstants.QUERY_PARAM_DISKS, disks); - return (Status) postRequest(volumeName + "/" + RESTConstants.SUBRESOURCE_DISKS, Status.class, form); - } - public Status addDisks(String volumeName, String disks) { + public Status addDisks(String volumeName, List<String> brickList) { + String bricks = StringUtil.ListToString(brickList, ","); Form form = new Form(); - form.add(RESTConstants.QUERY_PARAM_DISKS, disks); + form.add(RESTConstants.QUERY_PARAM_DISKS, bricks); return (Status) postRequest(volumeName + "/" + RESTConstants.SUBRESOURCE_DISKS, Status.class, form); } @@ -133,25 +127,28 @@ public class VolumesClient extends AbstractClient { * Number of most recent log messages to be fetched (from each disk) * @return Log Message List response received from the Gluster Management Server. */ - public LogMessageListResponse getLogs(String volumeName, String diskName, String severity, Date fromTimestamp, Date toTimestamp, int messageCount) { + public LogMessageListResponse getLogs(String volumeName, String diskName, String severity, Date fromTimestamp, + Date toTimestamp, int messageCount) { MultivaluedMap<String, String> queryParams = prepareGetLogQueryParams(diskName, severity, fromTimestamp, toTimestamp, messageCount); return (LogMessageListResponse) fetchSubResource(volumeName + "/" + RESTConstants.SUBRESOURCE_LOGS, queryParams, LogMessageListResponse.class); } - + public void downloadLogs(String volumeName, String filePath) { - downloadSubResource((volumeName) + "/" + RESTConstants.SUBRESOURCE_LOGS + "/" + RESTConstants.SUBRESOURCE_DOWNLOAD, filePath); + downloadSubResource((volumeName) + "/" + RESTConstants.SUBRESOURCE_LOGS + "/" + + RESTConstants.SUBRESOURCE_DOWNLOAD, filePath); } - + public Status removeBricks(String volumeName, List<Disk> diskList, boolean deleteOption) { - String disks = StringUtil.ListToString( GlusterCoreUtil.getQualifiedDiskNames(diskList), ","); + String disks = StringUtil.ListToString(GlusterCoreUtil.getQualifiedBrickNames(diskList), ","); MultivaluedMap<String, String> queryParams = prepareGetRemoveBrickQueryParams(volumeName, disks, deleteOption); return (Status) deleteSubResource(volumeName + "/" + RESTConstants.SUBRESOURCE_DISKS, Status.class, queryParams); } - - private MultivaluedMap<String, String> prepareGetRemoveBrickQueryParams(String volumeName, String disks, boolean deleteOption) { + + private MultivaluedMap<String, String> prepareGetRemoveBrickQueryParams(String volumeName, String disks, + boolean deleteOption) { MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl(); queryParams.add(RESTConstants.QUERY_PARAM_VOLUME_NAME, volumeName); queryParams.add(RESTConstants.QUERY_PARAM_DISKS, disks); @@ -165,19 +162,19 @@ public class VolumesClient extends AbstractClient { queryParams.add(RESTConstants.QUERY_PARAM_DELETE_OPTION, "" + deleteOption); return queryParams; } - + private MultivaluedMap<String, String> prepareGetLogQueryParams(String diskName, String severity, Date fromTimestamp, Date toTimestamp, int messageCount) { MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl(); queryParams.add(RESTConstants.QUERY_PARAM_LINE_COUNT, "" + messageCount); - if(!diskName.equals(CoreConstants.ALL)) { + if (!diskName.equals(CoreConstants.ALL)) { queryParams.add(RESTConstants.QUERY_PARAM_DISK_NAME, diskName); } - + if (!severity.equals(CoreConstants.ALL)) { queryParams.add(RESTConstants.QUERY_PARAM_LOG_SEVERITY, severity); } - + if (fromTimestamp != null) { queryParams.add(RESTConstants.QUERY_PARAM_FROM_TIMESTAMP, DateUtil.dateToString(fromTimestamp, CoreConstants.DATE_WITH_TIME_FORMAT)); @@ -190,43 +187,42 @@ public class VolumesClient extends AbstractClient { return queryParams; } - public Status startMigration( String volumeName, String diskFrom, String diskTo) { + public Status startMigration(String volumeName, String diskFrom, String diskTo) { Form form = new Form(); form.add(RESTConstants.FORM_PARAM_VALUE_SOURCE, diskFrom); form.add(RESTConstants.FORM_PARAM_VALUE_TARGET, diskTo); form.add(RESTConstants.FORM_PARAM_OPERATION, RESTConstants.FORM_PARAM_VALUE_START); - - return (Status) putRequest( volumeName + "/" + RESTConstants.SUBRESOURCE_DISKS, Status.class, form); + + return (Status) putRequest(volumeName + "/" + RESTConstants.SUBRESOURCE_DISKS, Status.class, form); } - + public Status stopMigration(String volumeName, String diskFrom, String diskTo) { Form form = new Form(); form.add(RESTConstants.FORM_PARAM_VALUE_SOURCE, diskFrom); form.add(RESTConstants.FORM_PARAM_VALUE_TARGET, diskTo); form.add(RESTConstants.FORM_PARAM_OPERATION, RESTConstants.FORM_PARAM_VALUE_STOP); - - return (Status) putRequest( volumeName + "/" + RESTConstants.SUBRESOURCE_DISKS, Status.class, form); + + return (Status) putRequest(volumeName + "/" + RESTConstants.SUBRESOURCE_DISKS, Status.class, form); } - + public Status pauseMigration(String volumeName, String diskFrom, String diskTo) { Form form = new Form(); form.add(RESTConstants.FORM_PARAM_VALUE_SOURCE, diskFrom); form.add(RESTConstants.FORM_PARAM_VALUE_TARGET, diskTo); form.add(RESTConstants.FORM_PARAM_OPERATION, RESTConstants.FORM_PARAM_VALUE_PAUSE); - - return (Status) putRequest( volumeName + "/" + RESTConstants.SUBRESOURCE_DISKS, Status.class, form); + + return (Status) putRequest(volumeName + "/" + RESTConstants.SUBRESOURCE_DISKS, Status.class, form); } - + public Status statusMigration(String volumeName, String diskFrom, String diskTo) { Form form = new Form(); form.add(RESTConstants.FORM_PARAM_VALUE_SOURCE, diskFrom); form.add(RESTConstants.FORM_PARAM_VALUE_TARGET, diskTo); form.add(RESTConstants.FORM_PARAM_OPERATION, RESTConstants.FORM_PARAM_VALUE_STATUS); - - return (Status) putRequest( volumeName + "/" + RESTConstants.SUBRESOURCE_DISKS, Status.class, form); + + return (Status) putRequest(volumeName + "/" + RESTConstants.SUBRESOURCE_DISKS, Status.class, form); } - - + public static void main(String[] args) { UsersClient usersClient = new UsersClient(); if (usersClient.authenticate("gluster", "gluster").isSuccess()) { |
