diff options
| author | Selvasundaram <selvam@gluster.com> | 2011-07-07 15:54:59 +0530 |
|---|---|---|
| committer | Selvasundaram <selvam@gluster.com> | 2011-07-07 15:54:59 +0530 |
| commit | f82c3a6b43aca0c2502e0241dd6508b05d179b10 (patch) | |
| tree | c3ebaaa7ce9db732e3bbdf7ad6492922b8c952c2 /src/com.gluster.storage.management.server | |
| parent | 9f0728357a909a9b38d74866ebb03a1be23dae87 (diff) | |
Rebalance volume bug fixes
Diffstat (limited to 'src/com.gluster.storage.management.server')
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); |
