summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.server
diff options
context:
space:
mode:
authorSelvasundaram <selvam@gluster.com>2011-07-07 15:54:59 +0530
committerSelvasundaram <selvam@gluster.com>2011-07-07 15:54:59 +0530
commitf82c3a6b43aca0c2502e0241dd6508b05d179b10 (patch)
treec3ebaaa7ce9db732e3bbdf7ad6492922b8c952c2 /src/com.gluster.storage.management.server
parent9f0728357a909a9b38d74866ebb03a1be23dae87 (diff)
Rebalance volume bug fixes
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.java4
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/VolumesResource.java12
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/MigrateBrickTask.java11
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/RebalanceVolumeTask.java23
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/GlusterUtil.java2
5 files changed, 32 insertions, 20 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 38b68040..43c9e35f 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
@@ -96,7 +96,6 @@ public class TasksResource extends AbstractResource {
return tasks;
}
-
@GET
@Produces(MediaType.APPLICATION_XML)
public Response getTasks() {
@@ -138,7 +137,8 @@ public class TasksResource extends AbstractResource {
} else if (taskOperation.equals(RESTConstants.TASK_PAUSE)) {
task.pause();
} else if (taskOperation.equals(RESTConstants.TASK_STOP)) {
- task.stop();
+ // task.stop();
+ clearTask(taskId, taskOperation); // Stop and remove from the task list
} else if (taskOperation.equals(RESTConstants.TASK_COMMIT)) {
task.commit();
}
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/VolumesResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/VolumesResource.java
index a09b7f08..a00ed974 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/VolumesResource.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/VolumesResource.java
@@ -964,7 +964,7 @@ public class VolumesResource extends AbstractResource {
return migrateDiskTask.getTaskInfo().getName(); // Return Task ID
}
- private String rebalanceStart(String clusterName, String volumeName, Boolean isFixLayout, Boolean isMigrateData,
+ private String getLayout(Boolean isFixLayout, Boolean isMigrateData,
Boolean isForcedDataMigrate) {
String layout = "";
if (isForcedDataMigrate) {
@@ -974,13 +974,13 @@ public class VolumesResource extends AbstractResource {
} else if (isFixLayout) {
layout = "fix-layout";
}
-
- return rebalanceStart(clusterName, volumeName, layout);
+ return layout;
}
- private String rebalanceStart(String clusterName, String volumeName, String layout) {
- RebalanceVolumeTask rebalanceTask = new RebalanceVolumeTask(clusterService, clusterName, volumeName);
- rebalanceTask.setLayout(layout);
+ private String rebalanceStart(String clusterName, String volumeName, Boolean isFixLayout, Boolean isMigrateData,
+ Boolean isForcedDataMigrate) {
+ RebalanceVolumeTask rebalanceTask = new RebalanceVolumeTask(clusterService, clusterName, volumeName, getLayout(
+ isFixLayout, isMigrateData, isForcedDataMigrate));
rebalanceTask.start();
taskResource.addTask(rebalanceTask);
return rebalanceTask.getId();
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 9236a6d3..1715807f 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
@@ -37,7 +37,7 @@ public class MigrateBrickTask extends Task {
private String fromBrick;
private String toBrick;
private Boolean autoCommit;
- private GlusterUtil glusterUtil = new GlusterUtil();
+ private GlusterUtil glusterUtil;
public String getFromBrick() {
return fromBrick;
@@ -70,6 +70,12 @@ public class MigrateBrickTask extends Task {
setFromBrick(fromBrick);
setToBrick(toBrick);
taskInfo.setName(getId());
+ init();
+ }
+
+ private void init() {
+ ApplicationContext ctx = ContextLoader.getCurrentWebApplicationContext();
+ glusterUtil = ctx.getBean(GlusterUtil.class);
}
@Override
@@ -89,8 +95,7 @@ public class MigrateBrickTask extends Task {
}
private void startMigration(String onlineServerName) {
- ApplicationContext ctx = ContextLoader.getCurrentWebApplicationContext();
- glusterUtil = ctx.getBean(GlusterUtil.class);
+
ProcessResult processResult = glusterUtil.executeBrickMigration(onlineServerName, getTaskInfo().getReference(),
getFromBrick(), getToBrick(), "start");
if (processResult.getOutput().trim().matches(".*started successfully$")) {
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/RebalanceVolumeTask.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/RebalanceVolumeTask.java
index f94613e0..24c2f1b5 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/RebalanceVolumeTask.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/RebalanceVolumeTask.java
@@ -20,10 +20,12 @@
*/
package com.gluster.storage.management.server.tasks;
+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;
@@ -36,16 +38,21 @@ public class RebalanceVolumeTask extends Task {
private String layout;
private String serverName;
- private SshUtil sshUtil = new SshUtil();
- private GlusterUtil glusterUtil = new GlusterUtil();
-
- public RebalanceVolumeTask(ClusterService clusterService, String clusterName, TaskInfo taskInfo) {
- super(clusterService, clusterName, taskInfo);
- }
+ private SshUtil sshUtil;
+ private GlusterUtil glusterUtil;
- public RebalanceVolumeTask(ClusterService clusterService, String clusterName, String volumeName) {
+ public RebalanceVolumeTask(ClusterService clusterService, String clusterName, String volumeName, String layout) {
super(clusterService, clusterName, TASK_TYPE.VOLUME_REBALANCE, volumeName, "Volume " + volumeName
+ " Rebalance", false, true, false);
+ setLayout(layout);
+ taskInfo.setName(getId());
+ init();
+ }
+
+ private void init() {
+ ApplicationContext ctx = ContextLoader.getCurrentWebApplicationContext();
+ sshUtil = ctx.getBean(SshUtil.class);
+ glusterUtil = ctx.getBean(GlusterUtil.class);
}
@Override
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 ec530365..31e02cd4 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
@@ -556,7 +556,7 @@ public class GlusterUtil {
if (processResult.isSuccess()) {
if (processResult.getOutput().trim().matches("^rebalance completed.*")) {
taskStatus.setCode(Status.STATUS_CODE_SUCCESS);
- } else if(processResult.getOutput().trim().matches(".*in progress:.*")) {
+ } else if(processResult.getOutput().trim().matches(".*in progress.*")) {
taskStatus.setCode(Status.STATUS_CODE_RUNNING);
} else {
taskStatus.setCode(Status.STATUS_CODE_FAILURE);