summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorShireesh Anjal <anjalshireesh@gmail.com>2011-06-28 09:25:32 -0700
committerShireesh Anjal <anjalshireesh@gmail.com>2011-06-28 09:25:32 -0700
commitd7185f7fbba958edddc3b03b6f7f312798ea6d27 (patch)
tree5b9c4e663c3ccc7c38229cc1e0fc18b0bcb36e9e /src
parentd827bdefc79906894a1a9cafdbc7ce77c46b6468 (diff)
parent5c9b6a12aab8e4ea95d404c4312a89ca2b07ddc6 (diff)
Merge pull request #88 from Selvasundaram/11b1cfbb18a4deaa63a69868aadfaf51086fb482
Task progress view UI
Diffstat (limited to 'src')
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java11
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java2
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/TasksClient.java4
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java5
-rw-r--r--src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/response/TaskInfoListResponse.java (renamed from src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/response/TaskListResponse.java)10
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/MigrateDiskAction.java14
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/MigrateDiskPage1.java60
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/MigrateDiskWizard.java21
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/utils/GUIHelper.java1
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/TasksResource.java3
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/MigrateDiskTask.java11
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/GlusterUtil.java1
12 files changed, 98 insertions, 45 deletions
diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java
index 514217ad..14539b87 100644
--- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java
+++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java
@@ -9,6 +9,7 @@ import static com.gluster.storage.management.client.constants.ClientConstants.TR
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.net.URI;
import java.security.KeyStore;
import javax.net.ssl.HostnameVerifier;
@@ -31,6 +32,7 @@ import com.sun.jersey.api.representation.Form;
import com.sun.jersey.client.urlconnection.HTTPSProperties;
import com.sun.jersey.core.util.MultivaluedMapImpl;
+
public abstract class AbstractClient {
private static final String HTTP_HEADER_AUTH = "Authorization";
protected static final MultivaluedMap<String, String> NO_PARAMS = new MultivaluedMapImpl();
@@ -263,9 +265,9 @@ public abstract class AbstractClient {
postRequest(resource.path(subResourceName), form);
}
- private void putRequest(WebResource resource, Form form) {
+ private ClientResponse putRequest(WebResource resource, Form form) {
try {
- prepareFormRequestBuilder(resource).put(form);
+ return prepareFormRequestBuilder(resource).put(ClientResponse.class, form);
} catch (UniformInterfaceException e) {
throw new GlusterRuntimeException(e.getResponse().getEntity(String.class));
}
@@ -287,6 +289,11 @@ public abstract class AbstractClient {
protected void putRequest(String subResourceName, Form form) {
putRequest(resource.path(subResourceName), form);
}
+
+
+ protected URI putRequestURI(String subResourceName, Form form) {
+ return putRequest(resource.path(subResourceName), form).getLocation();
+ }
/**
* Submits given Form using PUT method to the given sub-resource and returns the object received as response
diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java
index 02a387e0..87fbed31 100644
--- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java
+++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java
@@ -203,7 +203,7 @@ public class GlusterDataModelManager {
Disk disk = null;
List<Disk> volumeDisks = new ArrayList<Disk>();
for (Brick brick : volume.getBricks()) {
- disk = getDisk(brick.getDiskName());
+ disk = getDisk(brick.getServerName() + ":" + brick.getDiskName());
// disk = new Disk();
// disk.setServerName(brick.getServerName());
// disk.setName(brick.getDiskName());
diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/TasksClient.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/TasksClient.java
index 8e608983..aff4f5d2 100644
--- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/TasksClient.java
+++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/TasksClient.java
@@ -27,7 +27,7 @@ import javax.ws.rs.core.MultivaluedMap;
import com.gluster.storage.management.core.constants.RESTConstants;
import com.gluster.storage.management.core.exceptions.GlusterRuntimeException;
import com.gluster.storage.management.core.model.TaskInfo;
-import com.gluster.storage.management.core.response.TaskListResponse;
+import com.gluster.storage.management.core.response.TaskInfoListResponse;
import com.sun.jersey.api.representation.Form;
import com.sun.jersey.core.util.MultivaluedMapImpl;
@@ -51,7 +51,7 @@ public class TasksClient extends AbstractClient {
}
public List<TaskInfo> getAllTasks() { // TaskListResponse get only the list of taskInfo not list of Tasks
- return ((TaskListResponse) fetchResource(TaskListResponse.class)).getTaskList();
+ return ((TaskInfoListResponse) fetchResource(TaskInfoListResponse.class)).getTaskList();
}
// see startMigration @ VolumesClient, etc
diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java
index be9b82b0..6be67e65 100644
--- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java
+++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java
@@ -29,6 +29,7 @@ import static com.gluster.storage.management.core.constants.RESTConstants.FORM_P
import static com.gluster.storage.management.core.constants.RESTConstants.FORM_PARAM_VOLUME_OPTIONS;
import static com.gluster.storage.management.core.constants.RESTConstants.FORM_PARAM_VOLUME_TYPE;
+import java.net.URI;
import java.util.Date;
import java.util.List;
import java.util.Set;
@@ -228,7 +229,9 @@ public class VolumesClient extends AbstractClient {
form.add(RESTConstants.FORM_PARAM_OPERATION, RESTConstants.TASK_START);
form.add(RESTConstants.FORM_PARAM_AUTO_COMMIT, autoCommit);
- putRequest(volumeName + "/" + RESTConstants.RESOURCE_BRICKS, form);
+ // putRequest(volumeName + "/" + RESTConstants.RESOURCE_BRICKS, form);
+ URI uri = putRequestURI(volumeName + "/" + RESTConstants.RESOURCE_BRICKS, form);
+ System.out.println(uri.getRawPath());
}
public void rebalanceStart(String volumeName, Boolean fixLayout, Boolean migrateData, Boolean forcedDataMigrate) {
diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/response/TaskListResponse.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/response/TaskInfoListResponse.java
index 110f4e63..0ab27c35 100644
--- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/response/TaskListResponse.java
+++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/response/TaskInfoListResponse.java
@@ -27,19 +27,19 @@ import javax.xml.bind.annotation.XmlRootElement;
import com.gluster.storage.management.core.model.TaskInfo;
-@XmlRootElement(name = "response")
-public class TaskListResponse {
+@XmlRootElement(name = "tasks")
+public class TaskInfoListResponse {
private List<TaskInfo> taskInfoList;
- public TaskListResponse() {
+ public TaskInfoListResponse() {
}
- public TaskListResponse(List<TaskInfo> taskInfoList) {
+ public TaskInfoListResponse(List<TaskInfo> taskInfoList) {
this.taskInfoList = taskInfoList;
}
- @XmlElement(name="TaskInfo", type=TaskInfo.class)
+ @XmlElement(name="task", type=TaskInfo.class)
public List<TaskInfo> getTaskList() {
return taskInfoList;
}
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/MigrateDiskAction.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/MigrateDiskAction.java
index bbb29253..56ea8179 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/MigrateDiskAction.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/MigrateDiskAction.java
@@ -18,14 +18,16 @@
*******************************************************************************/
package com.gluster.storage.management.gui.actions;
+import java.util.Set;
+
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.wizard.WizardDialog;
import com.gluster.storage.management.core.model.Brick;
import com.gluster.storage.management.core.model.Volume;
import com.gluster.storage.management.gui.dialogs.MigrateDiskWizard;
+import com.gluster.storage.management.gui.utils.GUIHelper;
public class MigrateDiskAction extends AbstractActionDelegate {
private Volume volume;
@@ -33,9 +35,6 @@ public class MigrateDiskAction extends AbstractActionDelegate {
@Override
protected void performAction(IAction action) {
-// MigrateDiskDialog dialog = new MigrateDiskDialog(window.getShell(), volume, disk);
-// dialog.create();
-// dialog.open();
MigrateDiskWizard wizard = new MigrateDiskWizard(volume, brick);
WizardDialog dialog = new WizardDialog(window.getShell(), wizard);
@@ -47,15 +46,16 @@ public class MigrateDiskAction extends AbstractActionDelegate {
@Override
public void selectionChanged(IAction action, ISelection selection) {
super.selectionChanged(action, selection);
-
+ Set<Brick> bricks;
if (selectedEntity instanceof Volume) {
volume = (Volume) selectedEntity;
}
action.setEnabled(false);
if (selectedEntity instanceof Brick) {
- brick = (Brick) selectedEntity;
- action.setEnabled(((StructuredSelection) selection).size() == 1);
+ bricks = GUIHelper.getInstance().getSelectedEntities(getWindow(), Brick.class);
+ brick = (Brick) bricks.iterator().next();
+ action.setEnabled(brick != null);
}
}
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/MigrateDiskPage1.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/MigrateDiskPage1.java
index ba5ef867..4533ca23 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/MigrateDiskPage1.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/MigrateDiskPage1.java
@@ -23,13 +23,16 @@ import java.util.List;
import org.eclipse.jface.layout.TableColumnLayout;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Table;
@@ -62,6 +65,8 @@ public class MigrateDiskPage1 extends WizardPage {
private TableViewer tableViewerFrom;
+ private Button autoCompleteCheckbox;
+
private ITableLabelProvider getDiskLabelProvider(final String volumeName) {
return new TableLabelProviderAdapter() {
@@ -74,9 +79,9 @@ public class MigrateDiskPage1 extends WizardPage {
return (columnIndex == DISK_TABLE_COLUMN_INDICES.SERVER.ordinal() ? disk.getServerName()
: columnIndex == DISK_TABLE_COLUMN_INDICES.BRICK_DIRECTORY.ordinal() ? disk.getMountPoint() + "/" + volumeName
: columnIndex == DISK_TABLE_COLUMN_INDICES.FREE_SPACE.ordinal() ? NumberUtil
- .formatNumber(disk.getFreeSpace())
+ .formatNumber(disk.getFreeSpace() / 1024 ) /* Coverted to GB */
: columnIndex == DISK_TABLE_COLUMN_INDICES.TOTAL_SPACE.ordinal() ? NumberUtil
- .formatNumber(disk.getSpace()) : "Invalid");
+ .formatNumber(disk.getSpace() / 1024) : "Invalid");
}
};
}
@@ -118,10 +123,6 @@ public class MigrateDiskPage1 extends WizardPage {
this.volume = volume;
this.fromBrick = brick;
setTitle("Migrate Brick [" + volume.getName() + "]");
- // setDescription("Migrate data from one disk to another for the chosen Volume. " +
- // "This will copy all data present in the \"from disk\" of the volume " +
- // "to \"to disk\", remove \"from disk\" from the volume, and " +
- // "add \"to disk\" to the volume");
setPageDescription(null, null);
setPageComplete(false);
}
@@ -162,12 +163,18 @@ public class MigrateDiskPage1 extends WizardPage {
return tableViewerComposite;
}
- public Disk getSourceDisk() {
- return getSelectedDisk(tableViewerFrom);
+ public String getSourceBrickDir() {
+ Disk sourceDisk = getSelectedDisk(tableViewerFrom);
+ return sourceDisk.getQualifiedBrickName(volume.getName());
}
- public Disk getTargetDisk() {
- return getSelectedDisk(tableViewerTo);
+ public String getTargetBrickDir() {
+ Disk targetDisk = getSelectedDisk(tableViewerTo);
+ return targetDisk.getQualifiedBrickName(volume.getName());
+ }
+
+ public Boolean getAutoCommitSelection() {
+ return autoCompleteCheckbox.getSelection();
}
/**
@@ -200,7 +207,7 @@ public class MigrateDiskPage1 extends WizardPage {
GlusterDataModelManager glusterDataModelManager = GlusterDataModelManager.getInstance();
List<Disk> fromBricks = glusterDataModelManager.getReadyDisksOfVolume(volume);
- List<Disk> toDisks = glusterDataModelManager.getReadyDisksOfAllServersExcluding( glusterDataModelManager.getReadyDisksOfVolume(volume));
+ List<Disk> toDisks = glusterDataModelManager.getReadyDisksOfAllServersExcluding( fromBricks );
tableViewerFrom = createTableViewer(container, diskLabelProvider, fromBricks, txtFilterFrom);
@@ -208,6 +215,17 @@ public class MigrateDiskPage1 extends WizardPage {
setFromDisk(tableViewerFrom, fromBrick);
}
tableViewerTo = createTableViewer(container, diskLabelProvider, toDisks, txtFilterTo);
+
+ // Auto commit selection field
+ Composite autoCommitContainer = new Composite(container, SWT.NONE);
+ GridData data = new GridData();
+ data.horizontalSpan = 2;
+ autoCommitContainer.setLayoutData(data);
+ autoCompleteCheckbox = new Button(autoCommitContainer, SWT.CHECK);
+ autoCompleteCheckbox.setSelection(true);
+ Label lblAutoComplete = new Label(autoCommitContainer, SWT.NONE);
+ lblAutoComplete.setText("Auto commit on migration complete");
+ autoCommitContainer.setLayout( container.getLayout());
}
private void setFromDisk(TableViewer tableViewer, Brick brickToSelect) {
@@ -220,9 +238,17 @@ public class MigrateDiskPage1 extends WizardPage {
}
}
}
+
+ private void refreshButtonStatus() {
+ if(tableViewerFrom.getSelection().isEmpty() || tableViewerTo.getSelection().isEmpty()) {
+ setPageComplete(false);
+ } else {
+ setPageComplete(true);
+ }
+ }
private TableViewer createTableViewer(Composite container, ITableLabelProvider diskLabelProvider,
- List<Disk> fromDisks, Text txtFilterText) {
+ List<Disk> bricks, Text txtFilterText) {
Composite tableViewerComposite = createTableViewerComposite(container);
TableViewer tableViewer = new TableViewer(tableViewerComposite, SWT.SINGLE);
@@ -232,7 +258,15 @@ public class MigrateDiskPage1 extends WizardPage {
setupDiskTable(tableViewerComposite, tableViewer.getTable());
guiHelper.createFilter(tableViewer, txtFilterText, false);
- tableViewer.setInput(fromDisks.toArray());
+ tableViewer.setInput(bricks.toArray());
+
+ tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
+
+ @Override
+ public void selectionChanged(SelectionChangedEvent event) {
+ refreshButtonStatus();
+ }
+ });
return tableViewer;
}
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/MigrateDiskWizard.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/MigrateDiskWizard.java
index 60cbd387..514f805e 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/MigrateDiskWizard.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/MigrateDiskWizard.java
@@ -18,9 +18,9 @@
*******************************************************************************/
package com.gluster.storage.management.gui.dialogs;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.wizard.Wizard;
-import com.gluster.storage.management.client.GlusterDataModelManager;
import com.gluster.storage.management.client.VolumesClient;
import com.gluster.storage.management.core.model.Brick;
import com.gluster.storage.management.core.model.Disk;
@@ -47,14 +47,19 @@ public class MigrateDiskWizard extends Wizard {
@Override
public boolean performFinish() {
- Disk sourceDisk = page.getSourceDisk();
- Disk targetDisk = page.getTargetDisk();
- Boolean autoCommit = true; //TODO get auto commit from user selection
- // TODO add custom confirm dialog
-
+ String sourceDir = page.getSourceBrickDir();
+ String targetDir = page.getTargetBrickDir();
+ Boolean autoCommit = page.getAutoCommitSelection();
VolumesClient volumesClient = new VolumesClient();
- volumesClient.startMigration(volume.getName(), sourceDisk.getQualifiedName(), targetDisk.getQualifiedName(), autoCommit);
-
+
+ try {
+ volumesClient.startMigration(volume.getName(), sourceDir, targetDir, autoCommit);
+ MessageDialog.openInformation(getShell(), "Brick migration",
+ "Brick migration is initiated, Please check the status...");
+ //TODO Add the task to model
+ } catch (Exception e) {
+ MessageDialog.openError(getShell(), "Error: Migrate brick", e.getMessage());
+ }
return true;
}
}
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/utils/GUIHelper.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/utils/GUIHelper.java
index 31d762ec..d6fd5d03 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/utils/GUIHelper.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/utils/GUIHelper.java
@@ -417,6 +417,7 @@ public class GUIHelper {
return selectedEntities;
}
+
public void configureCheckboxTableViewer(final CheckboxTableViewer tableViewer) {
tableViewer.addCheckStateListener(new ICheckStateListener() {
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/TasksResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/TasksResource.java
index d86cede2..44d86b1b 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/TasksResource.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/TasksResource.java
@@ -47,6 +47,7 @@ import com.gluster.storage.management.core.exceptions.GlusterRuntimeException;
import com.gluster.storage.management.core.exceptions.GlusterValidationException;
import com.gluster.storage.management.core.model.Task;
import com.gluster.storage.management.core.model.TaskInfo;
+import com.gluster.storage.management.core.response.TaskInfoListResponse;
import com.sun.jersey.spi.resource.Singleton;
@Path(RESOURCE_PATH_CLUSTERS + "/{" + PATH_PARAM_CLUSTER_NAME + "}/" + RESOURCE_TASKS)
@@ -87,7 +88,7 @@ public class TasksResource extends AbstractResource {
@Produces(MediaType.APPLICATION_XML)
public Response getTasks() {
try {
- return okResponse(getAllTasksInfo(), MediaType.APPLICATION_XML);
+ return okResponse(new TaskInfoListResponse(getAllTasksInfo()), MediaType.APPLICATION_XML);
} catch (GlusterRuntimeException e) {
return errorResponse(e.getMessage());
}
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/MigrateDiskTask.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/MigrateDiskTask.java
index 1f044d77..0b1b67e4 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/MigrateDiskTask.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/MigrateDiskTask.java
@@ -20,6 +20,7 @@
*/
package com.gluster.storage.management.server.tasks;
+import com.gluster.storage.management.core.exceptions.GlusterRuntimeException;
import com.gluster.storage.management.core.model.Status;
import com.gluster.storage.management.core.model.Task;
import com.gluster.storage.management.core.model.TaskInfo;
@@ -83,7 +84,7 @@ public class MigrateDiskTask extends Task {
ProcessResult processResult = sshUtil.executeRemote(serverName, command);
TaskStatus taskStatus = new TaskStatus();
if (processResult.isSuccess()) {
- if (processResult.getOutput().matches("*started successfully")) {
+ if (processResult.getOutput().trim().matches(".*started successfully$")) {
taskStatus.setCode(Status.STATUS_CODE_RUNNING);
} else {
taskStatus.setCode(Status.STATUS_CODE_FAILURE);
@@ -136,7 +137,7 @@ public class MigrateDiskTask extends Task {
ProcessResult processResult = sshUtil.executeRemote(serverName, command);
TaskStatus taskStatus = new TaskStatus();
if (processResult.isSuccess()) {
- if (processResult.getOutput().matches("*abort")) {
+ if (processResult.getOutput().trim().matches(".*aborted successfully$")) {
taskStatus.setCode(Status.STATUS_CODE_SUCCESS);
} else {
taskStatus.setCode(Status.STATUS_CODE_FAILURE);
@@ -156,10 +157,12 @@ public class MigrateDiskTask extends Task {
ProcessResult processResult = sshUtil.executeRemote(serverName, command);
TaskStatus taskStatus = new TaskStatus();
if (processResult.isSuccess()) {
- if (processResult.getOutput().matches("*Migration complete")) {
+ if (processResult.getOutput().trim().matches("^Number of files migrated.*Migration complete$")) {
taskStatus.setCode(Status.STATUS_CODE_SUCCESS);
- } else {
+ } else if ( processResult.getOutput().trim().matches("^Number of files migrated.*Current file=.*")) {
taskStatus.setCode(Status.STATUS_CODE_RUNNING);
+ } else {
+ taskStatus.setCode(Status.STATUS_CODE_FAILURE);
}
} else {
taskStatus.setCode(Status.STATUS_CODE_FAILURE);
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 767b15c3..aa44b016 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
@@ -550,7 +550,6 @@ public class GlusterUtil {
} else {
throw new GlusterRuntimeException( migrateDiskTask.getTaskInfo().getStatus().getMessage());
}
-
return migrateDiskTask.getId();
}