diff options
| author | Dhandapani <dhandapani@gluster.com> | 2011-07-19 17:45:18 +0530 |
|---|---|---|
| committer | Dhandapani <dhandapani@gluster.com> | 2011-07-19 17:47:07 +0530 |
| commit | 667f996529700db44d605153e303a0220a805e03 (patch) | |
| tree | 798c461c5956b6db356aa892b9e3fec39e80ad3b /src | |
| parent | 06bf0e698fbd747944c1177d3d6c40c5c50af0c2 (diff) | |
Initialize Disk enhancement
Diffstat (limited to 'src')
4 files changed, 23 insertions, 6 deletions
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java index 447524a4..9830499b 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java @@ -47,6 +47,7 @@ import com.gluster.storage.management.core.model.Device.DEVICE_STATUS; import com.gluster.storage.management.core.model.Disk; import com.gluster.storage.management.core.model.Entity; import com.gluster.storage.management.core.model.Partition; +import com.gluster.storage.management.core.model.Status; import com.gluster.storage.management.core.model.TaskInfo; import com.gluster.storage.management.gui.Application; import com.gluster.storage.management.gui.IEntityListener; @@ -111,13 +112,13 @@ public abstract class AbstractDisksPage extends AbstractTableTreeViewerPage<Disk int itemCount = tree.getItemCount(); // Find the table item corresponding to our disk - Disk disk = null; + Device disk = null; int rowNum1 = -1; TreeItem item1 = null; for (int i = 0; i < itemCount; i++) { item1 = tree.getItem(i); - disk = (Disk) item1.getData(); + disk = (Device) item1.getData(); if (disk != null && disk == device) { // this is an uninitialized "disk" rowNum1 = i; @@ -133,6 +134,7 @@ public abstract class AbstractDisksPage extends AbstractTableTreeViewerPage<Disk // this is an uninitialized "partition" rowNum1 = i + j; item1 = partitionItem; + disk = (Device) partitionItem.getData(); break; } } @@ -219,14 +221,22 @@ public abstract class AbstractDisksPage extends AbstractTableTreeViewerPage<Disk GlusterServersClient serversClient = new GlusterServersClient(); try { + URI uri = serversClient.initializeDisk(device.getServerName(), device.getName(), formatDialog.getFSType()); TasksClient taskClient = new TasksClient(); TaskInfo taskInfo = taskClient.getTaskInfo(uri); + if (taskInfo != null && taskInfo instanceof TaskInfo) { GlusterDataModelManager.getInstance().getModel().getCluster().addTaskInfo(taskInfo); } - updateStatus(DEVICE_STATUS.INITIALIZING, true); + + if (taskInfo.getStatus().getCode() != Status.STATUS_CODE_RUNNING) { + updateStatus(DEVICE_STATUS.INITIALIZING, true); + } else if(taskInfo.getStatus().getCode() != Status.STATUS_CODE_SUCCESS) { + updateStatus(DEVICE_STATUS.INITIALIZED, true); + } + } catch (Exception e1) { MessageDialog.openError(getShell(), "Error: Initialize disk", e1.getMessage()); } diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/GlusterServersResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/GlusterServersResource.java index 17aeef2b..433e0e4d 100644 --- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/GlusterServersResource.java +++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/GlusterServersResource.java @@ -58,6 +58,7 @@ import com.gluster.storage.management.core.exceptions.ConnectionException; import com.gluster.storage.management.core.exceptions.GlusterRuntimeException; import com.gluster.storage.management.core.model.GlusterServer; import com.gluster.storage.management.core.model.GlusterServer.SERVER_STATUS; +import com.gluster.storage.management.core.model.TaskStatus; import com.gluster.storage.management.core.response.GlusterServerListResponse; import com.gluster.storage.management.core.response.ServerNameListResponse; import com.gluster.storage.management.server.data.ClusterInfo; @@ -454,6 +455,10 @@ public class GlusterServersResource extends AbstractServersResource { InitializeDiskTask initializeTask = new InitializeDiskTask(clusterService, clusterName, serverName, diskName, fsType); try { initializeTask.start(); + Thread.sleep(1000); + // Check the initialize disk status + TaskStatus taskStatus = initializeTask.checkStatus(); + initializeTask.getTaskInfo().setStatus(taskStatus); taskResource.addTask(initializeTask); return acceptedResponse(RESTConstants.RESOURCE_PATH_CLUSTERS + "/" + clusterName + "/" + RESOURCE_TASKS + "/" diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/InitializeDiskTask.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/InitializeDiskTask.java index 2fe2373b..6aa63e9e 100644 --- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/InitializeDiskTask.java +++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/InitializeDiskTask.java @@ -134,7 +134,7 @@ public class InitializeDiskTask extends Task { public TaskStatus checkStatus() { try { - return glusterUtil.checkInitializeDiskStatus(serverName, getDiskName()); + return glusterUtil.getInitializingDeviceStatus(serverName, getDiskName()); } catch(ConnectionException e) { // online server might have gone offline. update the failure status return new TaskStatus(new Status(Status.STATUS_CODE_FAILURE, e.getMessage())); diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/GlusterUtil.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/GlusterUtil.java index a32c4f18..9878f223 100644 --- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/GlusterUtil.java +++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/GlusterUtil.java @@ -578,7 +578,7 @@ public class GlusterUtil { } } - public TaskStatus checkInitializeDiskStatus(String serverName, String diskName) { + public TaskStatus getInitializingDeviceStatus(String serverName, String diskName) { Object response = serverUtil.executeOnServer(true, serverName, INITIALIZE_DISK_STATUS_SCRIPT + " " + diskName, InitDiskStatusResponse.class); @@ -597,8 +597,10 @@ public class GlusterUtil { taskStatus.setCode(Status.STATUS_CODE_RUNNING); taskStatus.setPercentCompleted(Math.round(initDiskStatusResponse.getCompletedBlocks() / initDiskStatusResponse.getTotalBlocks() * 100)); + } else if(initDiskStatusResponse.getFormatStatus() == FORMAT_STATUS.NOT_RUNNING) { + taskStatus.setCode(Status.STATUS_CODE_FAILURE); } - + taskStatus.setMessage(initDiskStatusResponse.getMessage()); return taskStatus; } |
