summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.server
diff options
context:
space:
mode:
authorShireesh Anjal <anjalshireesh@gmail.com>2011-07-07 05:18:51 -0700
committerShireesh Anjal <anjalshireesh@gmail.com>2011-07-07 05:18:51 -0700
commit5e04ff19a21ed84aa59004bb8040e1a0d6734542 (patch)
treeb02a103f3460c2a8007441960380723547b13b29 /src/com.gluster.storage.management.server
parent8ad430f0dfd3c6ae45c8982631715d41d951c6a4 (diff)
parent9862c8c2da1414b4e70fa788e2ab53db1775b525 (diff)
Merge pull request #102 from Selvasundaram/master
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 4bd3b632..df1b72cc 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);