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.server | |
| parent | e0ac946f71010ab1ff1497c6a5ef0b9aac2be359 (diff) | |
REST API enhancements
Diffstat (limited to 'src/com.gluster.storage.management.server')
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 |
