summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.server
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.server
parente0ac946f71010ab1ff1497c6a5ef0b9aac2be359 (diff)
REST API enhancements
Diffstat (limited to 'src/com.gluster.storage.management.server')
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/AbstractResource.java19
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/AlertsResource.java2
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/ClustersResource.java2
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/DiscoveredServersResource.java4
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/GlusterServersResource.java8
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/TasksResource.java6
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/UsersResource.java4
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java20
8 files changed, 40 insertions, 25 deletions
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/AbstractResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/AbstractResource.java
index 200bd24b..2fcf3875 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/AbstractResource.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/AbstractResource.java
@@ -18,6 +18,8 @@
*******************************************************************************/
package com.gluster.storage.management.server.resources;
+import java.net.URI;
+
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
@@ -35,11 +37,11 @@ public class AbstractResource {
* the given path relative to current path.
*
* @param relativePath
- * path to be used for creating the URI to be set in the "location" header of response.
+ * relative path of the created resource - will be set in the "location" header of response.
* @return the {@link Response} object
*/
protected Response createdResponse(String relativePath) {
- return Response.created(uriInfo.getAbsolutePathBuilder().path(relativePath).build()).build();
+ return Response.created(createURI(relativePath)).build();
}
/**
@@ -51,6 +53,19 @@ public class AbstractResource {
}
/**
+ * Creates a response with HTTP status code of 204 (no content), also setting the location header to given location
+ * @param location path of the location to be set relative to current path
+ * @return the {@link Response} object
+ */
+ protected Response noContentResponse(String location) {
+ return Response.noContent().location(createURI(location)).build();
+ }
+
+ protected URI createURI(String location) {
+ return uriInfo.getAbsolutePathBuilder().path(location).build();
+ }
+
+ /**
* Creates a response with HTTP status code of 500 (internal server error) and sets the error message in the
* response body
*
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/AlertsResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/AlertsResource.java
index 060ce60c..3c70beec 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/AlertsResource.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/AlertsResource.java
@@ -20,7 +20,7 @@ import com.gluster.storage.management.core.model.Alert;
public class AlertsResource {
@GET
- @Produces(MediaType.TEXT_XML)
+ @Produces(MediaType.APPLICATION_XML)
public AlertListResponse getAlerts() {
List<Alert> alerts = new ArrayList<Alert>();
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/ClustersResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/ClustersResource.java
index a5bfe5ff..2ce23a4e 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/ClustersResource.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/ClustersResource.java
@@ -110,7 +110,7 @@ public class ClustersResource extends AbstractResource {
try {
clusterService.registerCluster(clusterName, knownServer);
- return noContentResponse();
+ return noContentResponse(clusterName);
} catch(Exception e) {
// TODO: Log the exception
return errorResponse("Exception while trying to register cluster [" + clusterName + "] using server ["
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/DiscoveredServersResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/DiscoveredServersResource.java
index 3d9a5b12..740f7cfa 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/DiscoveredServersResource.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/DiscoveredServersResource.java
@@ -65,7 +65,7 @@ public class DiscoveredServersResource extends AbstractServersResource {
}
@GET
- @Produces(MediaType.TEXT_XML)
+ @Produces(MediaType.APPLICATION_XML)
@SuppressWarnings("rawtypes")
public Response getDiscoveredServers(@QueryParam("details") Boolean getDetails) {
if(getDetails != null && getDetails == true) {
@@ -102,7 +102,7 @@ public class DiscoveredServersResource extends AbstractServersResource {
@Path("/{serverName}")
@GET
- @Produces(MediaType.TEXT_XML)
+ @Produces(MediaType.APPLICATION_XML)
public GenericResponse<Server> getDiscoveredServer(@PathParam("serverName") String serverName) {
Server server = new Server(serverName);
try {
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/GlusterServersResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/GlusterServersResource.java
index 27f0829b..48c9b7fc 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/GlusterServersResource.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/GlusterServersResource.java
@@ -121,7 +121,7 @@ public class GlusterServersResource extends AbstractServersResource {
}
@GET
- @Produces(MediaType.TEXT_XML)
+ @Produces(MediaType.APPLICATION_XML)
public GlusterServerListResponse getGlusterServers(
@PathParam(PATH_PARAM_CLUSTER_NAME) String clusterName) {
List<GlusterServer> glusterServers = new ArrayList<GlusterServer>();
@@ -181,7 +181,7 @@ public class GlusterServersResource extends AbstractServersResource {
@GET
@Path("{serverName}")
- @Produces(MediaType.TEXT_XML)
+ @Produces(MediaType.APPLICATION_XML)
public GlusterServerResponse getGlusterServer(
@PathParam(PATH_PARAM_CLUSTER_NAME) String clusterName,
@PathParam(PATH_PARAM_SERVER_NAME) String serverName) {
@@ -224,7 +224,7 @@ public class GlusterServersResource extends AbstractServersResource {
}
@POST
- @Produces(MediaType.TEXT_XML)
+ @Produces(MediaType.APPLICATION_XML)
public GlusterServerResponse addServer(@PathParam(PATH_PARAM_CLUSTER_NAME) String clusterName,
@FormParam(FORM_PARAM_SERVER_NAME) String serverName) {
if(clusterName.isEmpty()) {
@@ -293,7 +293,7 @@ public class GlusterServersResource extends AbstractServersResource {
}
@DELETE
- @Produces(MediaType.TEXT_XML)
+ @Produces(MediaType.APPLICATION_XML)
@Path("{" + PATH_PARAM_SERVER_NAME + "}")
public Status removeServer(@PathParam(PATH_PARAM_CLUSTER_NAME) String clusterName,
@PathParam(PATH_PARAM_SERVER_NAME) String serverName) {
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/TasksResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/TasksResource.java
index fe9a7763..4bf1c0cf 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/TasksResource.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/TasksResource.java
@@ -93,7 +93,7 @@ public class TasksResource {
}
@GET
- @Produces(MediaType.TEXT_XML)
+ @Produces(MediaType.APPLICATION_XML)
public TaskListResponse getTasks() {
TaskListResponse taskListResponse = new TaskListResponse();
try {
@@ -107,7 +107,7 @@ public class TasksResource {
@PUT
@Path("/{" + PATH_PARAM_TASK_ID + "}")
- @Produces(MediaType.TEXT_XML)
+ @Produces(MediaType.APPLICATION_XML)
public TaskResponse performTask(@PathParam(PATH_PARAM_TASK_ID) String taskId,
@FormParam(FORM_PARAM_OPERATION) String taskOperation) {
Task task = getTask(taskId);
@@ -134,7 +134,7 @@ public class TasksResource {
@DELETE
@Path("/{" + PATH_PARAM_TASK_ID + "}")
- @Produces(MediaType.TEXT_XML)
+ @Produces(MediaType.APPLICATION_XML)
public TaskResponse deleteTask(@PathParam(PATH_PARAM_TASK_ID) String taskId,
@QueryParam(FORM_PARAM_OPERATION) String taskOperation) {
TaskResponse taskResponse = new TaskResponse();
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/UsersResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/UsersResource.java
index 5e9c1945..0326793b 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/UsersResource.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/UsersResource.java
@@ -68,7 +68,7 @@ public class UsersResource {
@Path("{user}")
@GET
- @Produces(MediaType.TEXT_XML)
+ @Produces(MediaType.APPLICATION_XML)
public Status authenticate(@PathParam("user") String user) {
// success only if the user passed in query is same as the one passed in security header
// spring security would have already authenticated the user credentials
@@ -78,7 +78,7 @@ public class UsersResource {
@Path("{user}")
@PUT
- @Produces(MediaType.TEXT_XML)
+ @Produces(MediaType.APPLICATION_XML)
public Status changePassword(@FormParam("oldpassword") String oldPassword,
@FormParam("newpassword") String newPassword) {
try {
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java
index 76432b3f..71dc3579 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java
@@ -122,7 +122,7 @@ public class VolumesResource {
private VolumeOptionsDefaults volumeOptionsDefaults;
@GET
- @Produces(MediaType.TEXT_XML)
+ @Produces(MediaType.APPLICATION_XML)
public VolumeListResponse getAllVolumes(@PathParam(PATH_PARAM_CLUSTER_NAME) String clusterName) {
GlusterServer onlineServer = glusterServersResource.getOnlineServer(clusterName);
if (onlineServer == null) {
@@ -143,8 +143,8 @@ public class VolumesResource {
}
@POST
- @Consumes(MediaType.TEXT_XML)
- @Produces(MediaType.TEXT_XML)
+ @Consumes(MediaType.APPLICATION_XML)
+ @Produces(MediaType.APPLICATION_XML)
public Status createVolume(@PathParam(PATH_PARAM_CLUSTER_NAME) String clusterName, Volume volume) {
List<String> brickDirectories = GlusterCoreUtil.getQualifiedBrickList(volume.getBricks());
@@ -171,7 +171,7 @@ public class VolumesResource {
@SuppressWarnings("rawtypes")
@GET
@Path("{" + PATH_PARAM_VOLUME_NAME + "}")
- @Produces(MediaType.TEXT_XML)
+ @Produces(MediaType.APPLICATION_XML)
public GenericResponse getVolume(@PathParam(PATH_PARAM_CLUSTER_NAME) String clusterName,
@PathParam(PATH_PARAM_VOLUME_NAME) String volumeName) {
GlusterServer onlineServer = glusterServersResource.getOnlineServer(clusterName);
@@ -198,7 +198,7 @@ public class VolumesResource {
@PUT
@Path("{" + PATH_PARAM_VOLUME_NAME + "}")
- @Produces(MediaType.TEXT_XML)
+ @Produces(MediaType.APPLICATION_XML)
public Status performOperation(@PathParam(PATH_PARAM_CLUSTER_NAME) String clusterName,
@PathParam(PATH_PARAM_VOLUME_NAME) String volumeName, @FormParam(FORM_PARAM_OPERATION) String operation) {
GlusterServer onlineServer = glusterServersResource.getOnlineServer(clusterName);
@@ -231,7 +231,7 @@ public class VolumesResource {
@DELETE
@Path("{" + PATH_PARAM_VOLUME_NAME + "}")
- @Produces(MediaType.TEXT_XML)
+ @Produces(MediaType.APPLICATION_XML)
public Status deleteVolume(@PathParam(PATH_PARAM_CLUSTER_NAME) String clusterName,
@PathParam(PATH_PARAM_VOLUME_NAME) String volumeName,
@QueryParam(QUERY_PARAM_DELETE_OPTION) boolean deleteFlag) {
@@ -268,7 +268,7 @@ public class VolumesResource {
@DELETE
@Path("{" + QUERY_PARAM_VOLUME_NAME + "}/" + RESOURCE_BRICKS)
- @Produces(MediaType.TEXT_XML)
+ @Produces(MediaType.APPLICATION_XML)
public Status removeBricks(@PathParam(PATH_PARAM_CLUSTER_NAME) String clusterName,
@PathParam(QUERY_PARAM_VOLUME_NAME) String volumeName, @QueryParam(QUERY_PARAM_BRICKS) String bricks,
@QueryParam(QUERY_PARAM_DELETE_OPTION) boolean deleteFlag) {
@@ -320,7 +320,7 @@ public class VolumesResource {
@POST
@Path("{" + PATH_PARAM_VOLUME_NAME + " }/" + RESOURCE_OPTIONS)
- @Produces(MediaType.TEXT_XML)
+ @Produces(MediaType.APPLICATION_XML)
public Status setOption(@PathParam(PATH_PARAM_CLUSTER_NAME) String clusterName,
@PathParam(PATH_PARAM_VOLUME_NAME) String volumeName,
@FormParam(RESTConstants.FORM_PARAM_OPTION_KEY) String key,
@@ -345,7 +345,7 @@ public class VolumesResource {
@PUT
@Path("{" + PATH_PARAM_VOLUME_NAME + " }/" + RESOURCE_OPTIONS)
- @Produces(MediaType.TEXT_XML)
+ @Produces(MediaType.APPLICATION_XML)
public Status resetOptions(@PathParam(PATH_PARAM_CLUSTER_NAME) String clusterName,
@PathParam(PATH_PARAM_VOLUME_NAME) String volumeName) {
GlusterServer onlineServer = glusterServersResource.getOnlineServer(clusterName);
@@ -368,7 +368,7 @@ public class VolumesResource {
@GET
@Path(RESOURCE_DEFAULT_OPTIONS)
- @Produces(MediaType.TEXT_XML)
+ @Produces(MediaType.APPLICATION_XML)
public VolumeOptionInfoListResponse getDefaultOptions(@PathParam(PATH_PARAM_CLUSTER_NAME) String clusterName) {
// TODO: Fetch all volume options with their default values from GlusterFS
// whenever such a CLI command is made available in GlusterFS