summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorShireesh Anjal <shireesh@gluster.com>2011-06-23 19:50:06 +0530
committerShireesh Anjal <shireesh@gluster.com>2011-06-23 19:50:06 +0530
commitc3c0e6d50a641c050b179beaca023c2511b00157 (patch)
tree5eef30b58c317f3379ba98a11ea4802965de9a83 /src
parent356b3102e5aa24ab1eaae6d1460401be4d546152 (diff)
REST API Enhancements
Diffstat (limited to 'src')
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/DiscoveredServersClient.java16
-rw-r--r--src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/constants/RESTConstants.java2
-rw-r--r--src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/response/ServerNameListResponse.java46
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/DiscoveredServersResource.java30
4 files changed, 75 insertions, 19 deletions
diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/DiscoveredServersClient.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/DiscoveredServersClient.java
index e055a2dd..68ef27d2 100644
--- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/DiscoveredServersClient.java
+++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/DiscoveredServersClient.java
@@ -18,13 +18,16 @@
*******************************************************************************/
package com.gluster.storage.management.client;
+import static com.gluster.storage.management.core.constants.RESTConstants.QUERY_PARAM_DETAILS;
+import static com.gluster.storage.management.core.constants.RESTConstants.RESOURCE_PATH_DISCOVERED_SERVERS;
+
import javax.ws.rs.core.MultivaluedMap;
import com.gluster.storage.management.core.model.Server;
import com.gluster.storage.management.core.response.GenericResponse;
import com.gluster.storage.management.core.response.ServerListResponse;
+import com.gluster.storage.management.core.response.ServerNameListResponse;
import com.gluster.storage.management.core.response.StringListResponse;
-import static com.gluster.storage.management.core.constants.RESTConstants.RESOURCE_PATH_DISCOVERED_SERVERS;
import com.sun.jersey.core.util.MultivaluedMapImpl;
public class DiscoveredServersClient extends AbstractClient {
@@ -45,13 +48,12 @@ public class DiscoveredServersClient extends AbstractClient {
@SuppressWarnings("rawtypes")
private Object getDiscoveredServers(Boolean getDetails, Class responseClass) {
MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
- queryParams.putSingle("details", getDetails.toString());
+ queryParams.putSingle(QUERY_PARAM_DETAILS, getDetails.toString());
return fetchResource(queryParams, responseClass);
}
- public StringListResponse getDiscoveredServerNames() {
-
- return (StringListResponse) getDiscoveredServers(Boolean.FALSE, StringListResponse.class);
+ public ServerNameListResponse getDiscoveredServerNames() {
+ return (ServerNameListResponse) getDiscoveredServers(Boolean.FALSE, ServerNameListResponse.class);
}
public ServerListResponse getDiscoveredServerDetails() {
@@ -68,8 +70,8 @@ public class DiscoveredServersClient extends AbstractClient {
UsersClient usersClient = new UsersClient();
if (usersClient.authenticate("gluster", "gluster").isSuccess()) {
DiscoveredServersClient serverResource = new DiscoveredServersClient(usersClient.getSecurityToken());
- StringListResponse discoveredServerNames = serverResource.getDiscoveredServerNames();
- System.out.println(discoveredServerNames.getData());
+ ServerNameListResponse discoveredServerNames = serverResource.getDiscoveredServerNames();
+ System.out.println(discoveredServerNames.getServerNames());
ServerListResponse discoveredServers = serverResource.getDiscoveredServerDetails();
System.out.println(discoveredServers.getData());
diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/constants/RESTConstants.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/constants/RESTConstants.java
index a2d222a8..b3dc30c2 100644
--- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/constants/RESTConstants.java
+++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/constants/RESTConstants.java
@@ -56,7 +56,6 @@ public class RESTConstants {
public static final String FORM_PARAM_ACCESS_PROTOCOLS = "accessProtocols";
public static final String FORM_PARAM_VOLUME_OPTIONS = "options";
-
public static final String FORM_PARAM_CLUSTER_NAME = "clusterName";
public static final String FORM_PARAM_SERVER_NAME = "serverName";
public static final String FORM_PARAM_DISKS = "disks";
@@ -85,6 +84,7 @@ public class RESTConstants {
public static final String QUERY_PARAM_TO_TIMESTAMP = "toTimestamp";
public static final String QUERY_PARAM_DOWNLOAD = "download";
public static final String QUERY_PARAM_SERVER_NAME = "serverName";
+ public static final String QUERY_PARAM_DETAILS = "details";
public static final String FORMAT_XML = "xml";
public static final String FORMAT_JSON = "json";
diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/response/ServerNameListResponse.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/response/ServerNameListResponse.java
new file mode 100644
index 00000000..2211f29f
--- /dev/null
+++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/response/ServerNameListResponse.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * 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.core.response;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ * Response object for transferring cluster names during REST communication. This is just a wrapper over a list of
+ * Strings, and is required because the jersey rest framework can't transfer lists directly.
+ */
+@XmlRootElement(name="servers")
+public class ServerNameListResponse {
+private List<String> serverNames = new ArrayList<String>();
+
+ public ServerNameListResponse() {
+ }
+
+ public ServerNameListResponse(List<String> serverNames) {
+ this.serverNames = serverNames;
+ }
+
+ @XmlElement(name = "server", type = String.class)
+ public List<String> getServerNames() {
+ return serverNames;
+ }
+}
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 aba88d82..2c764770 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
@@ -18,7 +18,7 @@
*******************************************************************************/
package com.gluster.storage.management.server.resources;
-import static com.gluster.storage.management.core.constants.RESTConstants.RESOURCE_PATH_DISCOVERED_SERVERS;
+import static com.gluster.storage.management.core.constants.RESTConstants.*;
import java.util.ArrayList;
import java.util.List;
@@ -29,16 +29,16 @@ import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
import org.springframework.stereotype.Component;
import com.gluster.storage.management.core.constants.CoreConstants;
-import com.gluster.storage.management.core.model.Response;
import com.gluster.storage.management.core.model.Server;
import com.gluster.storage.management.core.model.Status;
import com.gluster.storage.management.core.response.GenericResponse;
import com.gluster.storage.management.core.response.ServerListResponse;
-import com.gluster.storage.management.core.response.StringListResponse;
+import com.gluster.storage.management.core.response.ServerNameListResponse;
import com.sun.jersey.spi.resource.Singleton;
@Component
@@ -67,12 +67,22 @@ public class DiscoveredServersResource extends AbstractServersResource {
@GET
@Produces(MediaType.APPLICATION_XML)
- @SuppressWarnings("rawtypes")
- public Response getDiscoveredServers(@QueryParam("details") Boolean getDetails) {
+ public Response getDiscoveredServersXML(@QueryParam(QUERY_PARAM_DETAILS) Boolean getDetails) {
+ return getDiscoveredServers(getDetails, MediaType.APPLICATION_XML);
+ }
+
+ @GET
+ @Produces(MediaType.APPLICATION_JSON)
+ public Response getDiscoveredServersJSON(@QueryParam(QUERY_PARAM_DETAILS) Boolean getDetails) {
+ return getDiscoveredServers(getDetails, MediaType.APPLICATION_JSON);
+ }
+
+ public Response getDiscoveredServers(Boolean getDetails, String mediaType) {
if(getDetails != null && getDetails == true) {
- return getDiscoveredServerDetails();
+ return okResponse(getDiscoveredServerDetails(), mediaType);
}
- return new StringListResponse(getDiscoveredServerNames());
+
+ return okResponse(new ServerNameListResponse(getDiscoveredServerNames()), mediaType);
}
private ServerListResponse getDiscoveredServerDetails() {
@@ -115,9 +125,7 @@ public class DiscoveredServersResource extends AbstractServersResource {
}
public static void main(String[] args) {
- StringListResponse listResponse = (StringListResponse)new DiscoveredServersResource().getDiscoveredServers(false);
- for (String server : listResponse.getData()) {
- System.out.println(server);
- }
+ Response response = (Response)new DiscoveredServersResource().getDiscoveredServersXML(false);
+ System.out.println(response.getEntity());
}
}