diff options
| author | Dhandapani <dhandapani@gluster.com> | 2011-06-28 10:48:27 +0530 |
|---|---|---|
| committer | Dhandapani <dhandapani@gluster.com> | 2011-06-28 10:48:27 +0530 |
| commit | bf3cac6a4b53c7e05055de7d407d81fef2e3e362 (patch) | |
| tree | 2cd706e00a0ecb4c25ded877b02e6f898eb2abfd /src/com.gluster.storage.management.core | |
| parent | b51fce37009145f91f0345b428eb297ad4691563 (diff) | |
| parent | 849eb46d1f475a0f588325c7e45e9ed5fc5e22dd (diff) | |
Merge branch 'master' of git@github.com:gluster/console
Conflicts:
src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/GlusterUtil.java
Diffstat (limited to 'src/com.gluster.storage.management.core')
8 files changed, 125 insertions, 62 deletions
diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/constants/RESTConstants.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/constants/RESTConstants.java index 16f5d7b5..abc2d852 100644 --- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/constants/RESTConstants.java +++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/constants/RESTConstants.java @@ -45,6 +45,7 @@ public class RESTConstants { public static final String TASK_PAUSE = "pause"; public static final String TASK_RESUME = "resume"; public static final String TASK_STOP = "stop"; + public static final String TASK_COMMIT = "commit"; public static final String TASK_STATUS = "status"; public static final String TASK_DELETE = "delete"; public static final String TASK_REBALANCE_START = "rebalanceStart"; diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/exceptions/GlusterValidationException.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/exceptions/GlusterValidationException.java new file mode 100644 index 00000000..ca5e01f8 --- /dev/null +++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/exceptions/GlusterValidationException.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2011 Gluster, Inc. <http://www.gluster.com> + * This file is part of Gluster Management Console. + * + * Gluster Management Console is free software; you can redistribute it and/or + * modify it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Gluster Management Console is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License + * for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see + * <http://www.gnu.org/licenses/>. + *******************************************************************************/ +package com.gluster.storage.management.core.exceptions; + +public class GlusterValidationException extends GlusterRuntimeException { + private static final long serialVersionUID = 1L; + + public GlusterValidationException(String message) { + super(message); + } +} diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/ClusterListener.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/ClusterListener.java index f96116ed..71de5e23 100644 --- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/ClusterListener.java +++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/ClusterListener.java @@ -42,4 +42,10 @@ public interface ClusterListener { public void volumeCreated(Volume volume); public void volumeDeleted(Volume volume); + + public void taskAdded(TaskInfo taskInfo); + + public void taskRemoved(TaskInfo taskInfo); + + public void taskUpdated(TaskInfo taskInfo); } diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/DefaultClusterListener.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/DefaultClusterListener.java index e226d51b..d3b0e42e 100644 --- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/DefaultClusterListener.java +++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/DefaultClusterListener.java @@ -74,6 +74,24 @@ public class DefaultClusterListener implements ClusterListener { clusterChanged(); } + + @Override + public void taskAdded(TaskInfo taskInfo) { + clusterChanged(); + } + + + @Override + public void taskRemoved(TaskInfo taskInfo) { + clusterChanged(); + } + + + @Override + public void taskUpdated(TaskInfo taskInfo) { + clusterChanged(); + } + /** * This method is called by every other event method. Thus, if a view/listener is interested in performing the same * task on any change happening in the cluster data model, it can simply override this method and implement the @@ -82,4 +100,5 @@ public class DefaultClusterListener implements ClusterListener { public void clusterChanged() { } + } diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Task.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Task.java index 45eb07ba..b7823c4b 100644 --- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Task.java +++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Task.java @@ -20,22 +20,23 @@ */ package com.gluster.storage.management.core.model; +import com.gluster.storage.management.core.model.TaskInfo.TASK_TYPE; + public abstract class Task { - public enum TASK_TYPE { - DISK_FORMAT, BRICK_MIGRATE, VOLUME_REBALANCE - } - public String[] TASK_TYPE_STR = { "Format Disk", "Migrate Brick", "Volume Rebalance" }; - private TaskInfo taskInfo; + protected TaskInfo taskInfo; protected String serverName; - public Task(TASK_TYPE type, String reference) { + public Task(TASK_TYPE type, String reference, String desc, boolean canPause, boolean canStop, boolean canCommit) { taskInfo = new TaskInfo(); taskInfo.setType(type); - taskInfo.setId(getTypeStr() + "-" + reference); // construct id taskInfo.setReference(reference); + taskInfo.setDescription(desc); + + // IMPORTANT. This call must be in the end since getId may need to use the values set in above statements + taskInfo.setName(getId()); } public Task(TaskInfo taskInfo) { @@ -68,16 +69,18 @@ public abstract class Task { public abstract String getId(); - public abstract TaskInfo start(); + public abstract void start(); - public abstract TaskInfo resume(); + public abstract void resume(); - public abstract TaskInfo stop(); + public abstract void stop(); - public abstract TaskInfo pause(); - - public abstract TaskInfo status(); - - public abstract void setTaskDescription(); + public abstract void pause(); + public abstract void commit(); + + /** + * This method should check current status of the task and update it's taskInfo accordingly + */ + public abstract TaskStatus checkStatus(); } 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 d4549146..1ce2fa04 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 @@ -20,24 +20,31 @@ */ package com.gluster.storage.management.core.model; -import com.gluster.storage.management.core.model.Task.TASK_TYPE; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +import com.gluster.storage.management.core.utils.StringUtil; + +@XmlRootElement +public class TaskInfo extends Entity { + public enum TASK_TYPE { + DISK_FORMAT, BRICK_MIGRATE, VOLUME_REBALANCE + } -public class TaskInfo extends Status { - private String id; private TASK_TYPE type; private String reference; private String description; - private Boolean canPause; - private Boolean canStop; + private Boolean pauseSupported; + private Boolean stopSupported; + private Boolean commitSupported; private TaskStatus status; - - public String getId() { - return id; + public TaskInfo() { } - public void setId(String id) { - this.id = id; + @XmlElement(name="id") + public String getName() { + return super.getName(); } public TASK_TYPE getType() { @@ -72,20 +79,35 @@ public class TaskInfo extends Status { this.status = status; } - public Boolean getCanPause() { - return canPause; + public Boolean canPause() { + return pauseSupported; } public void setCanPause(Boolean canPause) { - this.canPause = canPause; + this.pauseSupported = canPause; } - public Boolean getCanStop() { - return canStop; + public Boolean canStop() { + return stopSupported; } public void setCanStop(Boolean canStop) { - this.canStop = canStop; + this.stopSupported = canStop; + } + + public Boolean canCommit() { + return this.commitSupported; + } + + public void setCanCommit(Boolean canCommit) { + this.commitSupported = canCommit; } + /* (non-Javadoc) + * @see com.gluster.storage.management.core.model.Entity#filter(java.lang.String, boolean) + */ + @Override + public boolean filter(String filterString, boolean caseSensitive) { + return StringUtil.filterString(getDescription() + getStatus().getMessage(), filterString, caseSensitive); + } } diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/response/LogMessageListResponse.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/response/LogMessageListResponse.java index c1f879bb..8c362fa9 100644 --- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/response/LogMessageListResponse.java +++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/response/LogMessageListResponse.java @@ -9,11 +9,10 @@ import java.util.List; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; -import com.gluster.storage.management.core.model.Status; import com.gluster.storage.management.core.model.VolumeLogMessage; @XmlRootElement(name = "logMessages") -public class LogMessageListResponse extends AbstractResponse { +public class LogMessageListResponse { private List<VolumeLogMessage> logMessages = new ArrayList<VolumeLogMessage>(); public LogMessageListResponse() { @@ -23,11 +22,6 @@ public class LogMessageListResponse extends AbstractResponse { setLogMessages(logMessages); } - public LogMessageListResponse(Status status, List<VolumeLogMessage> logMessages) { - setStatus(status); - setLogMessages(logMessages); - } - @XmlElement(name = "logMessage", type = VolumeLogMessage.class) public List<VolumeLogMessage> getLogMessages() { return logMessages; @@ -36,9 +30,4 @@ public class LogMessageListResponse extends AbstractResponse { public void setLogMessages(List<VolumeLogMessage> logMessages) { this.logMessages = logMessages; } - - @Override - public Object getData() { - return getLogMessages(); - } } 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/TaskListResponse.java index 2637b197..110f4e63 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/TaskListResponse.java @@ -20,35 +20,31 @@ */ package com.gluster.storage.management.core.response; -import java.util.ArrayList; import java.util.List; +import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; -import com.gluster.storage.management.core.model.Status; import com.gluster.storage.management.core.model.TaskInfo; -@XmlRootElement -public class TaskListResponse extends AbstractResponse { - private List<TaskInfo> taskList = new ArrayList<TaskInfo>(); - private Status status; - - public Status getStatus() { - return status; - } +@XmlRootElement(name = "response") +public class TaskListResponse { + private List<TaskInfo> taskInfoList; - public void setStatus(Status status) { - this.status = status; - } + public TaskListResponse() { + } - public void setData(List<TaskInfo> taskList) { - this.taskList.clear(); - this.taskList.addAll(taskList); + public TaskListResponse(List<TaskInfo> taskInfoList) { + this.taskInfoList = taskInfoList; + } + + @XmlElement(name="TaskInfo", type=TaskInfo.class) + public List<TaskInfo> getTaskList() { + return taskInfoList; } - @Override - public Object getData() { - return this.taskList; + public void setTaskList(List<TaskInfo> taskInfoList) { + this.taskInfoList = taskInfoList; } } |
