summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSelvasundaram <selvam@gluster.com>2011-07-07 15:56:22 +0530
committerSelvasundaram <selvam@gluster.com>2011-07-07 15:56:22 +0530
commit9862c8c2da1414b4e70fa788e2ab53db1775b525 (patch)
tree55185d7a536f9e273db81b15d187582f9df27dfa /src
parentf82c3a6b43aca0c2502e0241dd6508b05d179b10 (diff)
parentbcef8a077f87b760fd04be847676e7ab9000f6f3 (diff)
Merge branch 'master' of github.com:gluster/console
Diffstat (limited to 'src')
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java34
-rw-r--r--src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/constants/GlusterConstants.java3
-rw-r--r--src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/InitDiskStatusResponse.java27
-rw-r--r--src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/TaskInfo.java27
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java13
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/GlusterServersResource.java2
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/GlusterUtil.java3
7 files changed, 87 insertions, 22 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 d4242089..9ee4513c 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
@@ -19,6 +19,7 @@
package com.gluster.storage.management.client;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
@@ -119,14 +120,43 @@ public class GlusterDataModelManager {
}
logger.info("Starting data sync");
- updateModel(fetchData(clusterName));
- syncInProgress = false;
+ try {
+ updateModel(fetchData(clusterName));
+ } catch(Exception e) {
+ logger.error("Error in data sync!", e);
+ } finally {
+ syncInProgress = false;
+ }
}
+
private void updateModel(GlusterDataModel model) {
updateVolumes(model);
updateGlusterServers(model);
updateDiscoveredServers(model);
+ updateTasks(model);
+ }
+
+ private void updateTasks(GlusterDataModel newModel) {
+ List<TaskInfo> oldTasks = model.getCluster().getTaskInfoList();
+ List<TaskInfo> newTasks = newModel.getCluster().getTaskInfoList();
+
+ Set<TaskInfo> addedTasks = GlusterCoreUtil.getAddedEntities(oldTasks, newTasks, true);
+ for(TaskInfo task : addedTasks) {
+ addTask(task);
+ }
+
+ Set<TaskInfo> removedTasks = GlusterCoreUtil.getAddedEntities(newTasks, oldTasks, true);
+ for(TaskInfo task : removedTasks) {
+ removeTask(task);
+ }
+
+ Map<TaskInfo, TaskInfo> modifiedTasks = GlusterCoreUtil.getModifiedEntities(oldTasks, newTasks);
+ for(Entry<TaskInfo, TaskInfo> entry : modifiedTasks.entrySet()) {
+ TaskInfo modifiedTask = entry.getKey();
+ modifiedTask.copyFrom(entry.getValue());
+ updateTask(modifiedTask);
+ }
}
private void updateDiscoveredServers(GlusterDataModel newModel) {
diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/constants/GlusterConstants.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/constants/GlusterConstants.java
index f48f33cf..567eda61 100644
--- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/constants/GlusterConstants.java
+++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/constants/GlusterConstants.java
@@ -31,4 +31,7 @@ public class GlusterConstants {
};
public static final List<String> VOLUME_LOG_LEVELS_ARR = StringUtil.enumToArray(VOLUME_LOG_LEVELS.values());
+ public static final String FSTYPE_EXT_3 = "ext3";
+ public static final String FSTYPE_EXT_4 = "ext4";
+ public static final String FSTYPE_XFS = "xfs";
}
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 1a448606..6d1e83e3 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
@@ -20,19 +20,21 @@
*******************************************************************************/
package com.gluster.storage.management.core.model;
+import javax.xml.bind.annotation.XmlRootElement;
-public class InitDiskStatusResponse extends Status {
+@XmlRootElement
+public class InitDiskStatusResponse {
public enum FORMAT_STATUS {
IN_PROGRESS, COMPLETED, NOT_RUNNING
};
- private String[] FORMAT_STATUS_STR = { "Inprogress", "Completed", "Notrunning" };
+ private String[] FORMAT_STATUS_STR = { "In Progress", "Completed", "Not Running" };
private String device;
private String message;
- private float total;
- private float completed;
+ private float totalBlocks;
+ private float completedBlocks;
private FORMAT_STATUS status;
public InitDiskStatusResponse() {
@@ -55,20 +57,21 @@ public class InitDiskStatusResponse extends Status {
this.message = message;
}
- public void setTotal(float total) {
- this.total = total;
+
+ public void setTotalBlocks(float totalBlocks) {
+ this.totalBlocks = totalBlocks;
}
- public float getTotal() {
- return total;
+ public float getTotalBlocks() {
+ return totalBlocks;
}
- public void setCompleted(float completed) {
- this.completed = completed;
+ public void setCompletedBlocks(float completedBlocks) {
+ this.completedBlocks = completedBlocks;
}
- public float getCompleted() {
- return completed;
+ public float getCompletedBlocks() {
+ return completedBlocks;
}
public String getStatusStr() {
diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/TaskInfo.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/TaskInfo.java
index d3267ec4..43299863 100644
--- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/TaskInfo.java
+++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/TaskInfo.java
@@ -110,4 +110,31 @@ public class TaskInfo extends Entity {
public boolean filter(String filterString, boolean caseSensitive) {
return StringUtil.filterString(getDescription() + getStatus().getMessage(), filterString, caseSensitive);
}
+
+ public void copyFrom(TaskInfo newTask) {
+ setName(newTask.getName());
+ setDescription(newTask.getDescription());
+ setReference(newTask.getReference());
+ setStatus(newTask.getStatus());
+ setType(newTask.getType());
+ setPauseSupported(newTask.getPauseSupported());
+ setStopSupported(newTask.getStopSupported());
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if(!(obj instanceof TaskInfo)) {
+ return false;
+ }
+
+ TaskInfo newTask = (TaskInfo)obj;
+ if (newTask.getName().equals(getName()) && newTask.getDescription().equals(getDescription())
+ && newTask.getReference().equals(getReference()) && newTask.getStatus().equals(getStatus())
+ && newTask.getType() == getType() && newTask.getPauseSupported() == getPauseSupported()
+ && newTask.getStopSupported() == getStopSupported()) {
+ return true;
+ }
+
+ return false;
+ }
}
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java
index e6145997..63cf65ed 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java
@@ -40,6 +40,7 @@ import org.eclipse.ui.forms.events.HyperlinkEvent;
import org.eclipse.ui.forms.widgets.ImageHyperlink;
import com.gluster.storage.management.client.GlusterServersClient;
+import com.gluster.storage.management.core.constants.GlusterConstants;
import com.gluster.storage.management.core.model.ClusterListener;
import com.gluster.storage.management.core.model.DefaultClusterListener;
import com.gluster.storage.management.core.model.Disk;
@@ -204,7 +205,7 @@ public abstract class AbstractDisksPage extends AbstractTableViewerPage<Disk> im
public void linkActivated(HyperlinkEvent e) {
Integer formatOption = new MessageDialog(getShell(), "Initialize Disk", GUIHelper.getInstance().getImage(
IImageKeys.DISK), "Please choose the file system to Initialize the disk?", MessageDialog.QUESTION, new String[] {
- "Cancel", "Ext3", "Ext4", "Xfs" }, -1).open();
+ "Cancel", GlusterConstants.FSTYPE_EXT_3, GlusterConstants.FSTYPE_EXT_4, GlusterConstants.FSTYPE_XFS }, -1).open();
if (formatOption <= 0) { // By Cancel button(0) or Escape key(-1)
return;
@@ -212,18 +213,18 @@ public abstract class AbstractDisksPage extends AbstractTableViewerPage<Disk> im
String fsType = null;
if (formatOption == 1) {
- fsType = "ext3";
+ fsType = GlusterConstants.FSTYPE_EXT_3;
} else if (formatOption == 2) {
- fsType = "ext4";
+ fsType = GlusterConstants.FSTYPE_EXT_4;
} else if (formatOption == 3) {
- fsType = "xfs";
+ fsType = GlusterConstants.FSTYPE_XFS;
}
- updateStatus(DISK_STATUS.INITIALIZING, true);
-
GlusterServersClient serversClient = new GlusterServersClient();
serversClient.initializeDisk(disk.getServerName(), disk.getName(), fsType);
+ updateStatus(DISK_STATUS.INITIALIZING, true);
+
guiHelper.showProgressView();
new InitializeDiskJob(disk).schedule();
}
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/GlusterServersResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/GlusterServersResource.java
index 1430d24f..b97d47f8 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/GlusterServersResource.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/GlusterServersResource.java
@@ -417,7 +417,7 @@ public class GlusterServersResource extends AbstractServersResource {
}
if (fsType == null || fsType.isEmpty()) {
- return badRequestResponse("FSType must not be empty!");
+ return badRequestResponse("Parameter [" + FORM_PARAM_FSTYPE + "] is missing in request!");
}
InitializeDiskTask initializeTask = new InitializeDiskTask(clusterService, clusterName, serverName, diskName, fsType);
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 31e02cd4..e052685c 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
@@ -595,7 +595,8 @@ public class GlusterUtil {
taskStatus.setCode(Status.STATUS_CODE_SUCCESS);
} else if (initDiskStatusResponse.getStatus() == FORMAT_STATUS.IN_PROGRESS) {
taskStatus.setCode(Status.STATUS_CODE_RUNNING);
- taskStatus.setPercentCompleted(initDiskStatusResponse.getCompleted() / initDiskStatusResponse.getTotal() * 100);
+ taskStatus.setPercentCompleted(Math.round(initDiskStatusResponse.getCompletedBlocks()
+ / initDiskStatusResponse.getTotalBlocks() * 100));
}
taskStatus.setMessage(initDiskStatusResponse.getMessage());