diff options
| author | Shireesh Anjal <shireesh@gluster.com> | 2011-06-21 21:17:09 +0530 |
|---|---|---|
| committer | Shireesh Anjal <shireesh@gluster.com> | 2011-06-21 21:17:09 +0530 |
| commit | d37d17a75ef78fc05b2038c01e47b6b46aab60e4 (patch) | |
| tree | dd1d921f69a819b4a2887d3eb85aac7db4890c34 /src/com.gluster.storage.management.client | |
| parent | e0ac946f71010ab1ff1497c6a5ef0b9aac2be359 (diff) | |
REST API enhancements
Diffstat (limited to 'src/com.gluster.storage.management.client')
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()) { |
