summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.client
diff options
context:
space:
mode:
authorSelvasundaram <selvam@gluster.com>2011-06-20 16:06:23 +0530
committerSelvasundaram <selvam@gluster.com>2011-06-21 12:11:46 +0530
commit924badad2e1c674ab2021cfdae0037098bf131db (patch)
treea02fb42c23f2a07f90d1637a5907c12926820fdc /src/com.gluster.storage.management.client
parent2bddfe0603ffaba22f3e8bc83e179e49476da018 (diff)
parentd61fa3b93293c6323c29006c97a88968fa2843bf (diff)
Merge branch 'tasks'
Diffstat (limited to 'src/com.gluster.storage.management.client')
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java19
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java15
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/RunningTaskClient.java26
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/TasksClient.java96
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java36
5 files changed, 117 insertions, 75 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 e8df26cb..282b45b5 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
@@ -42,7 +42,8 @@ public abstract class AbstractClient {
* This constructor will work only after the data model manager has been initialized.
*/
public AbstractClient() {
- this(GlusterDataModelManager.getInstance().getSecurityToken(), GlusterDataModelManager.getInstance().getClusterName());
+ this(GlusterDataModelManager.getInstance().getSecurityToken(), GlusterDataModelManager.getInstance()
+ .getClusterName());
}
/**
@@ -55,8 +56,8 @@ public abstract class AbstractClient {
public AbstractClient(String securityToken, String clusterName) {
this.clusterName = clusterName;
setSecurityToken(securityToken);
-
- SSLContext context = initializeSSLContext();
+
+ SSLContext context = initializeSSLContext();
DefaultClientConfig config = createClientConfig(context);
// this must be after setting clusterName as sub-classes may refer to cluster name in the getResourcePath method
@@ -84,16 +85,16 @@ public abstract class AbstractClient {
SSLContext context = null;
try {
context = SSLContext.getInstance(PROTOCOL_TLS);
-
+
KeyStore keyStore = KeyStore.getInstance(KEYSTORE_TYPE_JKS);
keyStore.load(loadResource(TRUSTED_KEYSTORE), TRUSTED_KEYSTORE_ACCESS.toCharArray());
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(ALGORITHM_SUNX509);
keyManagerFactory.init(keyStore, TRUSTED_KEYSTORE_ACCESS.toCharArray());
-
- TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(ALGORITHM_SUNX509);
- trustManagerFactory.init(keyStore);
-
+
+ TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(ALGORITHM_SUNX509);
+ trustManagerFactory.init(keyStore);
+
context.init(keyManagerFactory.getKeyManagers(), trustManagerFactory.getTrustManagers(), null);
} catch (Exception e) {
throw new GlusterRuntimeException(
@@ -101,7 +102,7 @@ public abstract class AbstractClient {
}
return context;
}
-
+
private InputStream loadResource(String resourcePath) {
return this.getClass().getClassLoader().getResourceAsStream(resourcePath);
}
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 e5d58ca4..fe8b3048 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
@@ -33,20 +33,18 @@ import com.gluster.storage.management.core.model.Event.EVENT_TYPE;
import com.gluster.storage.management.core.model.GlusterDataModel;
import com.gluster.storage.management.core.model.GlusterServer;
import com.gluster.storage.management.core.model.Server;
+import com.gluster.storage.management.core.model.TaskInfo;
import com.gluster.storage.management.core.model.Volume;
import com.gluster.storage.management.core.model.Volume.TRANSPORT_TYPE;
import com.gluster.storage.management.core.model.Volume.VOLUME_STATUS;
import com.gluster.storage.management.core.model.Volume.VOLUME_TYPE;
import com.gluster.storage.management.core.model.VolumeOptionInfo;
import com.gluster.storage.management.core.response.GlusterServerListResponse;
-import com.gluster.storage.management.core.response.RunningTaskListResponse;
import com.gluster.storage.management.core.response.ServerListResponse;
import com.gluster.storage.management.core.response.VolumeListResponse;
import com.gluster.storage.management.core.response.VolumeOptionInfoListResponse;
public class GlusterDataModelManager {
- // private Server discoveredServer1, discoveredServer2, discoveredServer3,
- // discoveredServer4, discoveredServer5;
private static GlusterDataModelManager instance = new GlusterDataModelManager();
private GlusterDataModel model;
private String securityToken;
@@ -94,7 +92,7 @@ public class GlusterDataModelManager {
initializeAutoDiscoveredServers(cluster);
// initializeDisks();
- initializeRunningTasks(cluster);
+ initializeTasks(cluster);
initializeAlerts(cluster);
initializeVolumeOptionsDefaults();
@@ -136,12 +134,9 @@ public class GlusterDataModelManager {
this.volumeOptionsDefaults = response.getOptions();
}
- public void initializeRunningTasks(Cluster cluster) {
- RunningTaskListResponse runningTaskResponse = new RunningTaskClient(cluster.getName()).getRunningTasks();
- if (!runningTaskResponse.getStatus().isSuccess()) {
- throw new GlusterRuntimeException(runningTaskResponse.getStatus().getMessage());
- }
- cluster.setRunningTasks(runningTaskResponse.getRunningTasks());
+ public void initializeTasks(Cluster cluster) {
+ List<TaskInfo> taskInfoList = new TasksClient(cluster.getName()).getAllTasks();
+ cluster.setTaskInfoList(taskInfoList);
}
public void initializeAlerts(Cluster cluster) {
diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/RunningTaskClient.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/RunningTaskClient.java
deleted file mode 100644
index cfeddcc2..00000000
--- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/RunningTaskClient.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.gluster.storage.management.client;
-
-import static com.gluster.storage.management.core.constants.RESTConstants.RESOURCE_PATH_CLUSTERS;
-import static com.gluster.storage.management.core.constants.RESTConstants.RESOURCE_RUNNING_TASKS;
-
-import com.gluster.storage.management.core.response.RunningTaskListResponse;
-
-public class RunningTaskClient extends AbstractClient {
-
- public RunningTaskClient(String clusterName) {
- super(clusterName);
- }
-
- public RunningTaskClient(String securityToken, String clusterName) {
- super(securityToken, clusterName);
- }
-
- @Override
- public String getResourcePath() {
- return RESOURCE_PATH_CLUSTERS + "/" + clusterName + "/" + RESOURCE_RUNNING_TASKS;
- }
-
- public RunningTaskListResponse getRunningTasks() {
- return (RunningTaskListResponse) fetchResource(RunningTaskListResponse.class);
- }
-}
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
new file mode 100644
index 00000000..9fab945c
--- /dev/null
+++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/TasksClient.java
@@ -0,0 +1,96 @@
+/**
+ * tasksClient.java
+ *
+ * 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.client;
+
+import java.util.List;
+
+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.Status;
+import com.gluster.storage.management.core.model.TaskInfo;
+import com.gluster.storage.management.core.response.TaskListResponse;
+import com.gluster.storage.management.core.response.TaskResponse;
+import com.sun.jersey.api.representation.Form;
+import com.sun.jersey.core.util.MultivaluedMapImpl;
+
+public class TasksClient extends AbstractClient {
+
+ public TasksClient(String clusterName) {
+ super(clusterName);
+ }
+
+ public TasksClient(String securityToken,String clusterName) {
+ super(securityToken, clusterName);
+ }
+
+ @Override
+ public String getResourcePath() {
+ return RESTConstants.RESOURCE_PATH_CLUSTERS + "/" + clusterName + "/" + RESTConstants.RESOURCE_TASKS + "/";
+ }
+
+ @SuppressWarnings("unchecked")
+ public List<TaskInfo> getAllTasks() { // TaskListResponse get only the list of taskInfo not list of Tasks
+ TaskListResponse response = (TaskListResponse) fetchResource(TaskListResponse.class);
+ if (response.getStatus().isSuccess()) {
+ return (List<TaskInfo>) response.getData();
+ } else {
+ throw new GlusterRuntimeException("Exception on fetching tasks [" + response.getStatus().getMessage() + "]");
+ }
+ }
+
+ // see startMigration @ VolumesClient, etc
+ public TaskResponse pauseTask(String taskId) {
+ Form form = new Form();
+ form.add(RESTConstants.FORM_PARAM_OPERATION, RESTConstants.TASK_PAUSE);
+
+ return (TaskResponse) putRequest( taskId, TaskResponse.class, form);
+ }
+
+ public TaskResponse resumeTask(String taskId) {
+ Form form = new Form();
+ form.add(RESTConstants.FORM_PARAM_OPERATION, RESTConstants.TASK_RESUME);
+
+ return (TaskResponse) putRequest( taskId, TaskResponse.class, form);
+ }
+
+ public TaskResponse stopTask(String taskId) {
+ Form form = new Form();
+ form.add(RESTConstants.FORM_PARAM_OPERATION, RESTConstants.TASK_STOP);
+
+ return (TaskResponse) putRequest( taskId, TaskResponse.class, form);
+ }
+
+ public TaskResponse getTaskStatus(String taskId) {
+ Form form = new Form();
+ form.add(RESTConstants.FORM_PARAM_OPERATION, RESTConstants.TASK_STATUS);
+
+ return (TaskResponse) putRequest( taskId, TaskResponse.class, form);
+ }
+
+ public TaskResponse deleteTask(String taskId) {
+ MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
+ queryParams.add(RESTConstants.FORM_PARAM_OPERATION, RESTConstants.TASK_DELETE);
+
+ return (TaskResponse) deleteSubResource(taskId, TaskResponse.class, queryParams);
+ }
+}
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 3b1a4dc0..a0a2e84a 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
@@ -71,11 +71,11 @@ public class VolumesClient extends AbstractClient {
}
public Status startVolume(String volumeName) {
- return performOperation(volumeName, RESTConstants.FORM_PARAM_VALUE_START);
+ return performOperation(volumeName, RESTConstants.TASK_START);
}
public Status stopVolume(String volumeName) {
- return performOperation(volumeName, RESTConstants.FORM_PARAM_VALUE_STOP);
+ return performOperation(volumeName, RESTConstants.TASK_STOP);
}
public Status setVolumeOption(String volume, String key, String value) {
@@ -192,41 +192,17 @@ public class VolumesClient extends AbstractClient {
return queryParams;
}
- public Status startMigration(String volumeName, String brickFrom, String brickTo) {
+ public Status startMigration(String volumeName, String brickFrom, String brickTo, Boolean autoCommit) {
Form form = new Form();
form.add(RESTConstants.FORM_PARAM_SOURCE, brickFrom);
form.add(RESTConstants.FORM_PARAM_TARGET, brickTo);
- form.add(RESTConstants.FORM_PARAM_OPERATION, RESTConstants.FORM_PARAM_VALUE_START);
+ form.add(RESTConstants.FORM_PARAM_OPERATION, RESTConstants.TASK_START);
+ form.add(RESTConstants.FORM_PARAM_AUTO_COMMIT, autoCommit);
return (Status) putRequest( volumeName + "/" + RESTConstants.RESOURCE_BRICKS, Status.class, form);
}
- public Status stopMigration(String volumeName, String brickFrom, String brickkTo) {
- Form form = new Form();
- form.add(RESTConstants.FORM_PARAM_SOURCE, brickFrom);
- form.add(RESTConstants.FORM_PARAM_TARGET, brickkTo);
- form.add(RESTConstants.FORM_PARAM_OPERATION, RESTConstants.FORM_PARAM_VALUE_STOP);
-
- return (Status) putRequest( volumeName + "/" + RESTConstants.RESOURCE_BRICKS, Status.class, form);
- }
-
- public Status pauseMigration(String volumeName, String brickFrom, String brickTo) {
- Form form = new Form();
- form.add(RESTConstants.FORM_PARAM_SOURCE, brickFrom);
- form.add(RESTConstants.FORM_PARAM_TARGET, brickTo);
- form.add(RESTConstants.FORM_PARAM_OPERATION, RESTConstants.FORM_PARAM_VALUE_PAUSE);
-
- return (Status) putRequest( volumeName + "/" + RESTConstants.RESOURCE_BRICKS, Status.class, form);
- }
-
- public Status statusMigration(String volumeName, String brickFrom, String brickTo) {
- Form form = new Form();
- form.add(RESTConstants.FORM_PARAM_SOURCE, brickFrom);
- form.add(RESTConstants.FORM_PARAM_TARGET, brickTo);
- form.add(RESTConstants.FORM_PARAM_OPERATION, RESTConstants.FORM_PARAM_VALUE_STATUS);
-
- return (Status) putRequest( volumeName + "/" + RESTConstants.RESOURCE_BRICKS, Status.class, form);
- }
+
public static void main(String[] args) {
UsersClient usersClient = new UsersClient();