summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSelvasundaram <selvam@gluster.com>2011-07-11 19:20:36 +0530
committerSelvasundaram <selvam@gluster.com>2011-07-11 19:20:36 +0530
commitd20c501af4dcb8d7d02247e1f12e9645102ee6ca (patch)
tree015ff2b33de8af0c1daff1bc9a17d63c98dbecd2
parentd0280748890bb6aef032032f8aa6d38d6ce14b04 (diff)
Format disk task status update bug fixes
[Bug 3150] New: Brick list is not getting updated after migrate operation - fix
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java10
-rw-r--r--src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/InitDiskStatusResponse.java16
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/MigrateBrickWizard.java5
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/TasksResource.java6
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/InitializeDiskTask.java6
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/GlusterUtil.java4
6 files changed, 31 insertions, 16 deletions
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 e6c08da7..497f0a29 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
@@ -109,6 +109,14 @@ public class GlusterDataModelManager {
return model;
}
+ public void refreshVolumeData(Volume oldVolume) {
+ VolumesClient volumeClient = new VolumesClient();
+ Volume newVolume = volumeClient.getVolume(oldVolume.getName());
+ if(!oldVolume.equals(newVolume)) {
+ volumeChanged(oldVolume, newVolume);
+ }
+ }
+
public GlusterDataModel fetchModel(IProgressMonitor monitor) {
synchronized (syncInProgress) {
if(syncInProgress) {
@@ -311,6 +319,8 @@ public class GlusterDataModelManager {
}
}
+
+
private void volumeChanged(Volume oldVolume, Volume newVolume) {
oldVolume.copyFrom(newVolume);
for (ClusterListener listener : listeners) {
diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/InitDiskStatusResponse.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/InitDiskStatusResponse.java
index 6d1e83e3..f09dfc88 100644
--- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/InitDiskStatusResponse.java
+++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/InitDiskStatusResponse.java
@@ -22,7 +22,7 @@ package com.gluster.storage.management.core.model;
import javax.xml.bind.annotation.XmlRootElement;
-@XmlRootElement
+@XmlRootElement(name="response")
public class InitDiskStatusResponse {
public enum FORMAT_STATUS {
@@ -35,7 +35,7 @@ public class InitDiskStatusResponse {
private String message;
private float totalBlocks;
private float completedBlocks;
- private FORMAT_STATUS status;
+ private FORMAT_STATUS formatStatus;
public InitDiskStatusResponse() {
@@ -74,16 +74,16 @@ public class InitDiskStatusResponse {
return completedBlocks;
}
- public String getStatusStr() {
- return FORMAT_STATUS_STR[getStatus().ordinal()];
+ public String getFormatStatusStr() {
+ return FORMAT_STATUS_STR[getFormatStatus().ordinal()];
}
- public FORMAT_STATUS getStatus() {
- return status;
+ public FORMAT_STATUS getFormatStatus() {
+ return formatStatus;
}
- public void setStatus(FORMAT_STATUS status) {
- this.status = status;
+ public void setFormatStatus(FORMAT_STATUS status) {
+ this.formatStatus = status;
}
}
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/MigrateBrickWizard.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/MigrateBrickWizard.java
index 4693726b..d8f0f165 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/MigrateBrickWizard.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/MigrateBrickWizard.java
@@ -27,6 +27,7 @@ import com.gluster.storage.management.client.GlusterDataModelManager;
import com.gluster.storage.management.client.TasksClient;
import com.gluster.storage.management.client.VolumesClient;
import com.gluster.storage.management.core.model.Brick;
+import com.gluster.storage.management.core.model.Cluster;
import com.gluster.storage.management.core.model.TaskInfo;
import com.gluster.storage.management.core.model.Volume;
@@ -34,6 +35,7 @@ public class MigrateBrickWizard extends Wizard {
private Volume volume;
private Brick brick;
private MigrateBrickPage1 page;
+ private Cluster cluster = GlusterDataModelManager.getInstance().getModel().getCluster();
public MigrateBrickWizard(Volume volume, Brick brick) {
setWindowTitle("Gluster Management Console - Migrate Brick [" + volume.getName() + "]");
@@ -63,7 +65,8 @@ public class MigrateBrickWizard extends Wizard {
TasksClient taskClient = new TasksClient();
TaskInfo taskInfo = taskClient.getTaskInfo(uri);
if (taskInfo != null && taskInfo instanceof TaskInfo) {
- GlusterDataModelManager.getInstance().getModel().getCluster().addTaskInfo(taskInfo);
+ cluster.addTaskInfo(taskInfo);
+ GlusterDataModelManager.getInstance().refreshVolumeData(cluster.getVolume(taskInfo.getReference()));
}
MessageDialog.openInformation(getShell(), "Brick migration", "Brick migration started successfully");
} catch (Exception e) {
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 43c9e35f..b455a255 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
@@ -47,6 +47,7 @@ import org.springframework.stereotype.Component;
import com.gluster.storage.management.core.constants.RESTConstants;
import com.gluster.storage.management.core.exceptions.GlusterRuntimeException;
import com.gluster.storage.management.core.exceptions.GlusterValidationException;
+import com.gluster.storage.management.core.model.Status;
import com.gluster.storage.management.core.model.TaskInfo;
import com.gluster.storage.management.core.response.TaskInfoListResponse;
import com.gluster.storage.management.server.tasks.Task;
@@ -120,6 +121,11 @@ public class TasksResource extends AbstractResource {
private Task checkTaskStatus(String taskId) {
Task task = getTask(taskId);
+ // No status check required if the task already complete or failure
+ if (task.getTaskInfo().getStatus() == Status.STATUS_FAILURE
+ || task.getTaskInfo().getStatus() == Status.STATUS_SUCCESS) {
+ return task;
+ }
task.getTaskInfo().setStatus(task.checkStatus());
return task;
}
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/InitializeDiskTask.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/InitializeDiskTask.java
index ea9dd7e5..2fe2373b 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/InitializeDiskTask.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/InitializeDiskTask.java
@@ -104,11 +104,7 @@ public class InitializeDiskTask extends Task {
return TASK_TYPE.DISK_FORMAT;
}
- @Override
- public TaskInfo getTaskInfo() {
- return getTaskInfo();
- }
-
+
@Override
public void start() {
try {
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 449dd269..a32c4f18 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
@@ -591,9 +591,9 @@ public class GlusterUtil {
InitDiskStatusResponse initDiskStatusResponse = (InitDiskStatusResponse) response;
- if (initDiskStatusResponse.getStatus() == FORMAT_STATUS.COMPLETED) {
+ if (initDiskStatusResponse.getFormatStatus() == FORMAT_STATUS.COMPLETED) {
taskStatus.setCode(Status.STATUS_CODE_SUCCESS);
- } else if (initDiskStatusResponse.getStatus() == FORMAT_STATUS.IN_PROGRESS) {
+ } else if (initDiskStatusResponse.getFormatStatus() == FORMAT_STATUS.IN_PROGRESS) {
taskStatus.setCode(Status.STATUS_CODE_RUNNING);
taskStatus.setPercentCompleted(Math.round(initDiskStatusResponse.getCompletedBlocks()
/ initDiskStatusResponse.getTotalBlocks() * 100));