summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDhandapani <dhandapani@gluster.com>2011-07-19 17:45:18 +0530
committerDhandapani <dhandapani@gluster.com>2011-07-19 17:47:07 +0530
commit667f996529700db44d605153e303a0220a805e03 (patch)
tree798c461c5956b6db356aa892b9e3fec39e80ad3b /src
parent06bf0e698fbd747944c1177d3d6c40c5c50af0c2 (diff)
Initialize Disk enhancement
Diffstat (limited to 'src')
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java16
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/GlusterServersResource.java5
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/InitializeDiskTask.java2
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/GlusterUtil.java6
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;
}