summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.client
diff options
context:
space:
mode:
authorShireesh Anjal <shireesh@gluster.com>2011-06-21 21:17:09 +0530
committerShireesh Anjal <shireesh@gluster.com>2011-06-21 21:17:09 +0530
commitd37d17a75ef78fc05b2038c01e47b6b46aab60e4 (patch)
treedd1d921f69a819b4a2887d3eb85aac7db4890c34 /src/com.gluster.storage.management.client
parente0ac946f71010ab1ff1497c6a5ef0b9aac2be359 (diff)
REST API enhancements
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.java83
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/ClustersClient.java45
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java17
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/TasksClient.java16
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/UsersClient.java9
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java30
6 files changed, 105 insertions, 95 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 282b45b5..f38c1a5f 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
@@ -23,6 +23,7 @@ import com.gluster.storage.management.client.utils.ClientUtil;
import com.gluster.storage.management.core.exceptions.GlusterRuntimeException;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
+import com.sun.jersey.api.client.UniformInterfaceException;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.DefaultClientConfig;
import com.sun.jersey.api.representation.Form;
@@ -120,7 +121,7 @@ public abstract class AbstractClient {
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
private Object fetchResource(WebResource res, MultivaluedMap<String, String> queryParams, Class responseClass) {
- return res.queryParams(queryParams).header(HTTP_HEADER_AUTH, authHeader).accept(MediaType.TEXT_XML)
+ return res.queryParams(queryParams).header(HTTP_HEADER_AUTH, authHeader).accept(MediaType.APPLICATION_XML)
.get(responseClass);
}
@@ -214,16 +215,16 @@ public abstract class AbstractClient {
/**
* Submits given Form using POST method to the resource and returns the object received as response
*
- * @param responseClass
- * Class of the object expected as response
* @param form
* Form to be submitted
- * @return Object of given class received as response
*/
- @SuppressWarnings({ "unchecked", "rawtypes" })
- protected Object postRequest(Class responseClass, Form form) {
- return resource.type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).header(HTTP_HEADER_AUTH, authHeader)
- .accept(MediaType.TEXT_XML).post(responseClass, form);
+ protected void postRequest(Form form) {
+ try {
+ resource.type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).header(HTTP_HEADER_AUTH, authHeader)
+ .accept(MediaType.APPLICATION_XML).post(form);
+ } catch (UniformInterfaceException e) {
+ throw new GlusterRuntimeException(e.getResponse().getEntity(String.class));
+ }
}
/**
@@ -231,16 +232,16 @@ public abstract class AbstractClient {
*
* @param subResourceName
* Name of the sub-resource to which the request is to be posted
- * @param responseClass
- * Class of the object expected as response
* @param form
* Form to be submitted
- * @return Object of given class received as response
*/
- @SuppressWarnings({ "rawtypes", "unchecked" })
- protected Object postRequest(String subResourceName, Class responseClass, Form form) {
- return resource.path(subResourceName).type(MediaType.APPLICATION_FORM_URLENCODED_TYPE)
- .header(HTTP_HEADER_AUTH, authHeader).accept(MediaType.TEXT_XML).post(responseClass, form);
+ protected void postRequest(String subResourceName, Form form) {
+ try {
+ resource.path(subResourceName).type(MediaType.APPLICATION_FORM_URLENCODED_TYPE)
+ .header(HTTP_HEADER_AUTH, authHeader).accept(MediaType.APPLICATION_XML).post(form);
+ } catch (UniformInterfaceException e) {
+ throw new GlusterRuntimeException(e.getResponse().getEntity(String.class));
+ }
}
/**
@@ -248,29 +249,31 @@ public abstract class AbstractClient {
*
* @param subResourceName
* Name of the sub-resource to which the request is to be posted
- * @param responseClass
- * Class of the object expected as response
* @param form
* Form to be submitted
- * @return Object of given class received as response
*/
- protected Object putRequest(String subResourceName, Class responseClass, Form form) {
- return resource.path(subResourceName).type(MediaType.APPLICATION_FORM_URLENCODED_TYPE)
- .header(HTTP_HEADER_AUTH, authHeader).accept(MediaType.TEXT_XML).put(responseClass, form);
+ protected void putRequest(String subResourceName, Form form) {
+ try {
+ resource.path(subResourceName).type(MediaType.APPLICATION_FORM_URLENCODED_TYPE)
+ .header(HTTP_HEADER_AUTH, authHeader).accept(MediaType.APPLICATION_XML).put(form);
+ } catch (UniformInterfaceException e) {
+ throw new GlusterRuntimeException(e.getResponse().getEntity(String.class));
+ }
}
/**
* Submits given Form using PUT method to the given sub-resource and returns the object received as response
*
- * @param responseClass
- * Class of the object expected as response
* @param form
* Form to be submitted
- * @return Object of given class received as response
*/
- protected Object putRequest(Class responseClass, Form form) {
- return resource.type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).header(HTTP_HEADER_AUTH, authHeader)
- .accept(MediaType.TEXT_XML).put(responseClass, form);
+ protected void putRequest(Form form) {
+ try {
+ resource.type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).header(HTTP_HEADER_AUTH, authHeader)
+ .accept(MediaType.APPLICATION_XML).put(form);
+ } catch(UniformInterfaceException e) {
+ throw new GlusterRuntimeException(e.getResponse().getEntity(String.class));
+ }
}
/**
@@ -278,13 +281,14 @@ public abstract class AbstractClient {
*
* @param subResourceName
* Name of the sub-resource to which the request is to be posted
- * @param responseClass
- * Class of the object expected as response
- * @return Object of given class received as response
*/
- protected Object putRequest(String subResourceName, Class responseClass) {
- return resource.path(subResourceName).type(MediaType.APPLICATION_FORM_URLENCODED_TYPE)
- .header(HTTP_HEADER_AUTH, authHeader).accept(MediaType.TEXT_XML).put(responseClass);
+ protected void putRequest(String subResourceName) {
+ try {
+ resource.path(subResourceName).type(MediaType.APPLICATION_FORM_URLENCODED_TYPE)
+ .header(HTTP_HEADER_AUTH, authHeader).accept(MediaType.APPLICATION_XML).put();
+ } catch (UniformInterfaceException e) {
+ throw new GlusterRuntimeException(e.getResponse().getEntity(String.class));
+ }
}
/**
@@ -298,8 +302,8 @@ public abstract class AbstractClient {
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
protected Object postObject(Class responseClass, Object requestObject) {
- return resource.type(MediaType.TEXT_XML).header(HTTP_HEADER_AUTH, authHeader).accept(MediaType.TEXT_XML)
- .post(responseClass, requestObject);
+ return resource.type(MediaType.APPLICATION_XML).header(HTTP_HEADER_AUTH, authHeader)
+ .accept(MediaType.APPLICATION_XML).post(responseClass, requestObject);
}
@SuppressWarnings({ "unchecked", "rawtypes" })
@@ -314,9 +318,12 @@ public abstract class AbstractClient {
.delete(responseClass);
}
- @SuppressWarnings({ "unchecked", "rawtypes" })
- protected Object deleteSubResource(String subResourceName, Class responseClass) {
- return resource.path(subResourceName).header(HTTP_HEADER_AUTH, authHeader).delete(responseClass);
+ protected void deleteSubResource(String subResourceName) {
+ try {
+ resource.path(subResourceName).header(HTTP_HEADER_AUTH, authHeader).delete();
+ } catch (UniformInterfaceException e) {
+ throw new GlusterRuntimeException(e.getResponse().getEntity(String.class));
+ }
}
public abstract String getResourcePath();
diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/ClustersClient.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/ClustersClient.java
index 8eeb96fe..dadeadf8 100644
--- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/ClustersClient.java
+++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/ClustersClient.java
@@ -24,8 +24,9 @@ import static com.gluster.storage.management.core.constants.RESTConstants.RESOUR
import java.util.List;
+import com.gluster.storage.management.core.exceptions.GlusterRuntimeException;
import com.gluster.storage.management.core.model.Status;
-import com.gluster.storage.management.core.response.StringListResponse;
+import com.gluster.storage.management.core.response.ClusterNameListResponse;
import com.sun.jersey.api.representation.Form;
/**
@@ -49,25 +50,26 @@ public class ClustersClient extends AbstractClient {
return RESOURCE_PATH_CLUSTERS;
}
- public StringListResponse getClusters() {
- return (StringListResponse)fetchResource(StringListResponse.class);
+ public List<String> getClusterNames() {
+ return ((ClusterNameListResponse)fetchResource(ClusterNameListResponse.class)).getClusterNames();
}
- public Status createCluster(String clusterName) {
+ public void createCluster(String clusterName) {
Form form = new Form();
form.add(FORM_PARAM_CLUSTER_NAME, clusterName);
- return (Status)postRequest(Status.class, form);
+
+ postRequest(form);
}
- public Status registerCluster(String clusterName, String knownServer) {
+ public void registerCluster(String clusterName, String knownServer) {
Form form = new Form();
form.add(FORM_PARAM_CLUSTER_NAME, clusterName);
form.add(FORM_PARAM_SERVER_NAME, knownServer);
- return (Status)putRequest(Status.class, form);
+ putRequest(form);
}
- public Status deleteCluster(String clusterName) {
- return (Status)deleteSubResource(clusterName, Status.class);
+ public void deleteCluster(String clusterName) {
+ deleteSubResource(clusterName);
}
public static void main(String args[]) {
@@ -76,20 +78,21 @@ public class ClustersClient extends AbstractClient {
if (authStatus.isSuccess()) {
ClustersClient client = new ClustersClient();
client.setSecurityToken(usersClient.getSecurityToken());
- StringListResponse response = client.getClusters();
- List<String> clusters = response.getData();
- if(clusters.size() == 0) {
- Status status = client.createCluster("myCluster1");
- System.out.println(status);
+ System.out.println(client.getClusterNames());
+ try {
+ client.createCluster("test1");
+ } catch(GlusterRuntimeException e) {
+ System.out.println(e.getMessage());
}
- response = client.getClusters();
- clusters = response.getData();
- System.out.println(clusters);
- System.out.println(client.deleteCluster("myCluster1"));
- response = client.getClusters();
- clusters = response.getData();
- System.out.println(clusters);
+ System.out.println(client.getClusterNames());
+
+ try {
+ client.deleteCluster("test1");
+ } catch (GlusterRuntimeException e) {
+ System.out.println(e.getMessage());
+ }
+ System.out.println(client.getClusterNames());
} else {
System.out.println("authentication failed: " + authStatus);
}
diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java
index 6c75b7c5..26129736 100644
--- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java
+++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java
@@ -59,8 +59,9 @@ public class GlusterServersClient extends AbstractClient {
}
@SuppressWarnings("unchecked")
- public Server getServer(String serverName) {
- GenericResponse<Server> response = (GenericResponse<Server>) fetchSubResource(serverName, GenericResponse.class);
+ public GlusterServer getGlusterServer(String serverName) {
+ GenericResponse<GlusterServer> response = (GenericResponse<GlusterServer>) fetchSubResource(serverName,
+ GenericResponse.class);
return response.getData();
}
@@ -68,14 +69,14 @@ public class GlusterServersClient extends AbstractClient {
return ((String) fetchSubResource(serverName, String.class));
}
- public GlusterServerResponse addServer(Server discoveredServer) {
+ public void addServer(Server discoveredServer) {
Form form = new Form();
form.add(RESTConstants.FORM_PARAM_SERVER_NAME, discoveredServer.getName());
- return (GlusterServerResponse)postRequest(GlusterServerResponse.class, form);
+ postRequest(form);
}
- public Status removeServer(String serverName) {
- return (Status) deleteSubResource(serverName, Status.class);
+ public void removeServer(String serverName) {
+ deleteSubResource(serverName);
}
public static void main(String[] args) {
@@ -90,9 +91,7 @@ public class GlusterServersClient extends AbstractClient {
// Add server
Server srv = new Server();
srv.setName("server3");
- GlusterServerResponse response = glusterServersClient.addServer(srv);
- System.out.println(response.getGlusterServer().getName());
- System.out.println(response.getStatus().isSuccess());
+ glusterServersClient.addServer(srv);
}
}
}
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 9fab945c..54ba07e7 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
@@ -59,32 +59,32 @@ public class TasksClient extends AbstractClient {
}
// see startMigration @ VolumesClient, etc
- public TaskResponse pauseTask(String taskId) {
+ public void pauseTask(String taskId) {
Form form = new Form();
form.add(RESTConstants.FORM_PARAM_OPERATION, RESTConstants.TASK_PAUSE);
- return (TaskResponse) putRequest( taskId, TaskResponse.class, form);
+ putRequest( taskId, form);
}
- public TaskResponse resumeTask(String taskId) {
+ public void resumeTask(String taskId) {
Form form = new Form();
form.add(RESTConstants.FORM_PARAM_OPERATION, RESTConstants.TASK_RESUME);
- return (TaskResponse) putRequest( taskId, TaskResponse.class, form);
+ putRequest(taskId, form);
}
- public TaskResponse stopTask(String taskId) {
+ public void stopTask(String taskId) {
Form form = new Form();
form.add(RESTConstants.FORM_PARAM_OPERATION, RESTConstants.TASK_STOP);
- return (TaskResponse) putRequest( taskId, TaskResponse.class, form);
+ putRequest(taskId, form);
}
- public TaskResponse getTaskStatus(String taskId) {
+ public void getTaskStatus(String taskId) {
Form form = new Form();
form.add(RESTConstants.FORM_PARAM_OPERATION, RESTConstants.TASK_STATUS);
- return (TaskResponse) putRequest( taskId, TaskResponse.class, form);
+ putRequest(taskId, form);
}
public TaskResponse deleteTask(String taskId) {
diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/UsersClient.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/UsersClient.java
index 3d2310ac..84ed4e4c 100644
--- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/UsersClient.java
+++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/UsersClient.java
@@ -75,9 +75,12 @@ public class UsersClient extends AbstractClient {
Form form = new Form();
form.add(FORM_PARAM_OLD_PASSWORD, oldPassword);
form.add(FORM_PARAM_NEW_PASSWORD, newPassword);
- Status status = (Status) putRequest(user, Status.class, form);
-
- return status.isSuccess();
+ try {
+ putRequest(user, form);
+ return true;
+ } catch (Exception e) {
+ return false;
+ }
}
public static void main(String[] args) {
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 a0a2e84a..24ba119f 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
@@ -63,30 +63,30 @@ public class VolumesClient extends AbstractClient {
return (Status) postObject(Status.class, volume);
}
- private Status performOperation(String volumeName, String operation) {
+ private void performOperation(String volumeName, String operation) {
Form form = new Form();
form.add(RESTConstants.FORM_PARAM_OPERATION, operation);
- return (Status) putRequest(volumeName, Status.class, form);
+ putRequest(volumeName, form);
}
- public Status startVolume(String volumeName) {
- return performOperation(volumeName, RESTConstants.TASK_START);
+ public void startVolume(String volumeName) {
+ performOperation(volumeName, RESTConstants.TASK_START);
}
- public Status stopVolume(String volumeName) {
- return performOperation(volumeName, RESTConstants.TASK_STOP);
+ public void stopVolume(String volumeName) {
+ performOperation(volumeName, RESTConstants.TASK_STOP);
}
- public Status setVolumeOption(String volume, String key, String value) {
+ public void setVolumeOption(String volume, String key, String value) {
Form form = new Form();
form.add(RESTConstants.FORM_PARAM_OPTION_KEY, key);
form.add(RESTConstants.FORM_PARAM_OPTION_VALUE, value);
- return (Status) postRequest(volume + "/" + RESTConstants.RESOURCE_OPTIONS, Status.class, form);
+ postRequest(volume + "/" + RESTConstants.RESOURCE_OPTIONS, form);
}
- public Status resetVolumeOptions(String volume) {
- return (Status) putRequest(volume + "/" + RESTConstants.RESOURCE_OPTIONS, Status.class);
+ public void resetVolumeOptions(String volume) {
+ putRequest(volume + "/" + RESTConstants.RESOURCE_OPTIONS);
}
public VolumeListResponse getAllVolumes() {
@@ -108,11 +108,11 @@ public class VolumesClient extends AbstractClient {
VolumeOptionInfoListResponse.class));
}
- public Status addBricks(String volumeName, List<String> brickList) {
+ public void addBricks(String volumeName, List<String> brickList) {
String bricks = StringUtil.ListToString(brickList, ",");
Form form = new Form();
form.add(RESTConstants.FORM_PARAM_BRICKS, bricks);
- return (Status) postRequest(volumeName + "/" + RESTConstants.RESOURCE_BRICKS, Status.class, form);
+ postRequest(volumeName + "/" + RESTConstants.RESOURCE_BRICKS, form);
}
/**
@@ -192,18 +192,16 @@ public class VolumesClient extends AbstractClient {
return queryParams;
}
- public Status startMigration(String volumeName, String brickFrom, String brickTo, Boolean autoCommit) {
+ public void 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.TASK_START);
form.add(RESTConstants.FORM_PARAM_AUTO_COMMIT, autoCommit);
- return (Status) putRequest( volumeName + "/" + RESTConstants.RESOURCE_BRICKS, Status.class, form);
+ putRequest( volumeName + "/" + RESTConstants.RESOURCE_BRICKS, form);
}
-
-
public static void main(String[] args) {
UsersClient usersClient = new UsersClient();
if (usersClient.authenticate("gluster", "gluster").isSuccess()) {