summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.server
diff options
context:
space:
mode:
authorSelvasundaram <selvam@gluster.com>2011-07-06 15:51:17 +0530
committerSelvasundaram <selvam@gluster.com>2011-07-06 15:51:17 +0530
commit47fda7f13360c635d4d89d8ea2c79cce96c3807b (patch)
tree026ea7782d149416f6541a46f703170c649ad631 /src/com.gluster.storage.management.server
parentc29f95b551b72618f2e33b819d65777f984d2c03 (diff)
parentee212c6a4d295d63027dbac5ec632c5cc51cf2f2 (diff)
Merge branch 'tasks'
Diffstat (limited to 'src/com.gluster.storage.management.server')
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/TasksResource.java2
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/BrickMigrationStatusTask.java (renamed from src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/DiskMigrationStatusTask.java)3
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/MigrateBrickTask.java44
-rw-r--r--src/com.gluster.storage.management.server/src/spring/gluster-server-base.xml2
4 files changed, 26 insertions, 25 deletions
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/TasksResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/TasksResource.java
index 1acba6b7..38b68040 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/TasksResource.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/TasksResource.java
@@ -153,7 +153,7 @@ public class TasksResource extends AbstractResource {
@DELETE
@Path("/{" + PATH_PARAM_TASK_ID + "}")
@Produces(MediaType.APPLICATION_XML)
- public Response deleteTask(@PathParam(PATH_PARAM_TASK_ID) String taskId,
+ public Response clearTask(@PathParam(PATH_PARAM_TASK_ID) String taskId,
@QueryParam(FORM_PARAM_OPERATION) String taskOperation) {
Task task = getTask(taskId);
if (task == null) {
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/DiskMigrationStatusTask.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/BrickMigrationStatusTask.java
index ccfd58be..0f00ad3a 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/DiskMigrationStatusTask.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/BrickMigrationStatusTask.java
@@ -27,7 +27,7 @@ import com.gluster.storage.management.core.model.TaskInfo.TASK_TYPE;
import com.gluster.storage.management.server.resources.v1_0.TasksResource;
@Component
-public class DiskMigrationStatusTask {
+public class BrickMigrationStatusTask {
@Autowired
private TasksResource tasksResource;
@@ -39,5 +39,4 @@ public class DiskMigrationStatusTask {
}
}
}
-
}
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/MigrateBrickTask.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/MigrateBrickTask.java
index af5e657a..9236a6d3 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/MigrateBrickTask.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/MigrateBrickTask.java
@@ -20,22 +20,16 @@
*/
package com.gluster.storage.management.server.tasks;
-import java.util.concurrent.ExecutionException;
-
-import org.apache.derby.iapi.sql.execute.ExecPreparedStatement;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.ContextLoader;
import com.gluster.storage.management.core.exceptions.ConnectionException;
-import com.gluster.storage.management.core.exceptions.GlusterRuntimeException;
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;
import com.gluster.storage.management.core.model.TaskStatus;
import com.gluster.storage.management.core.utils.ProcessResult;
import com.gluster.storage.management.server.services.ClusterService;
import com.gluster.storage.management.server.utils.GlusterUtil;
-import com.gluster.storage.management.server.utils.SshUtil;
import com.sun.jersey.core.util.Base64;
public class MigrateBrickTask extends Task {
@@ -142,6 +136,19 @@ public class MigrateBrickTask extends Task {
commitMigration(getNewOnlineServer().getName());
}
}
+
+ private void commitMigration(String serverName) {
+ ProcessResult processResult = glusterUtil.executeBrickMigration(serverName, getTaskInfo().getReference(),
+ getFromBrick(), getToBrick(), "commit");
+ TaskStatus taskStatus = new TaskStatus();
+ if (processResult.isSuccess()) {
+ if (processResult.getOutput().trim().matches(".*commit successful$")) {
+ taskStatus.setCode(Status.STATUS_CODE_SUCCESS);
+ taskStatus.setMessage(processResult.getOutput());
+ getTaskInfo().setStatus(taskStatus);
+ }
+ }
+ }
@Override
public void stop() {
@@ -173,30 +180,25 @@ public class MigrateBrickTask extends Task {
return checkMigrationStatus(getNewOnlineServer().getName());
}
}
-
- public void commitMigration(String serverName) {
- ProcessResult processResult = glusterUtil.executeBrickMigration(serverName, getTaskInfo().getReference(),
- getFromBrick(), getToBrick(), "commit");
- TaskStatus taskStatus = new TaskStatus();
- if (processResult.isSuccess()) {
- if (processResult.getOutput().trim().matches(".*commit successful$")) {
- taskStatus.setCode(Status.STATUS_CODE_SUCCESS);
- taskStatus.setMessage(processResult.getOutput()); // Common
- getTaskInfo().setStatus(taskStatus);
- }
- }
- }
-
+
private TaskStatus checkMigrationStatus(String serverName) {
if (getTaskInfo().getStatus().getCode() == Status.STATUS_CODE_PAUSE) {
return getTaskInfo().getStatus();
}
+ // For committed task, status command (CLI) is invalid, just return current status
+ if (getTaskInfo().getStatus().getCode() == Status.STATUS_CODE_SUCCESS) {
+ return getTaskInfo().getStatus();
+ }
+
TaskStatus taskStatus = new TaskStatus();
try {
ProcessResult processResult = glusterUtil.executeBrickMigration(serverName, getTaskInfo().getReference(),
getFromBrick(), getToBrick(), "status");
- if (processResult.getOutput().trim().matches("^Number of files migrated.*Migration complete$")) {
+ if (processResult.getOutput().trim().matches("^Number of files migrated.*Migration complete$")
+ || processResult.getOutput().trim().matches("^Number of files migrated = 0 .*Current file=")) {
+ // Note: Workaround - if no file in the volume brick to migrate, Gluster CLI is not giving proper
+ // (complete) status
taskStatus.setCode(Status.STATUS_CODE_COMMIT_PENDING);
if (autoCommit) {
commitMigration(serverName);
diff --git a/src/com.gluster.storage.management.server/src/spring/gluster-server-base.xml b/src/com.gluster.storage.management.server/src/spring/gluster-server-base.xml
index 0a000732..b9fb2126 100644
--- a/src/com.gluster.storage.management.server/src/spring/gluster-server-base.xml
+++ b/src/com.gluster.storage.management.server/src/spring/gluster-server-base.xml
@@ -19,7 +19,7 @@
<!-- This task keeps checking status of disk migration tasks (wherever auto-commit is set to true)
so that auto-commit can be performed as soon as the migration is complete -->
<task:scheduled-tasks>
- <task:scheduled ref="diskMigrationStatusTask" method="checkMigrationStatus" fixed-delay="60000" />
+ <task:scheduled ref="brickMigrationStatusTask" method="checkMigrationStatus" fixed-delay="60000" />
</task:scheduled-tasks>
<!-- Cluster environment. Valid values: vmware, aws, baremetal -->