diff options
| author | Shireesh Anjal <shireesh@gluster.com> | 2011-05-25 18:12:48 +0530 |
|---|---|---|
| committer | Shireesh Anjal <shireesh@gluster.com> | 2011-05-30 17:19:56 +0530 |
| commit | 562a55a68407ed0d65de75c9a491188e1292a2c3 (patch) | |
| tree | 20e849d173713e8d5087b2994ad181f0838d8f1e /src/com.gluster.storage.management.client | |
| parent | 66eeb6a273b1a60813375a4bf55bcc38e1a3d00a (diff) | |
Design changes - introducing cluster-server mapping on gateway
Diffstat (limited to 'src/com.gluster.storage.management.client')
5 files changed, 35 insertions, 9 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 10064341..fedfacaa 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 @@ -161,7 +161,7 @@ public abstract class AbstractClient { */
@SuppressWarnings({ "unchecked", "rawtypes" })
protected Object postRequest(Class responseClass, Form form) {
- return resource.type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).header("Authorization", authHeader)
+ return resource.type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).header(HTTP_HEADER_AUTH, authHeader)
.accept(MediaType.TEXT_XML).post(responseClass, form);
}
@@ -179,7 +179,7 @@ public abstract class AbstractClient { @SuppressWarnings({ "rawtypes", "unchecked" })
protected Object postRequest(String subResourceName, Class responseClass, Form form) {
return resource.path(subResourceName).type(MediaType.APPLICATION_FORM_URLENCODED_TYPE)
- .header("Authorization", authHeader).accept(MediaType.TEXT_XML).post(responseClass, form);
+ .header(HTTP_HEADER_AUTH, authHeader).accept(MediaType.TEXT_XML).post(responseClass, form);
}
/**
@@ -195,7 +195,21 @@ public abstract class AbstractClient { */
protected Object putRequest(String subResourceName, Class responseClass, Form form) {
return resource.path(subResourceName).type(MediaType.APPLICATION_FORM_URLENCODED_TYPE)
- .header("Authorization", authHeader).accept(MediaType.TEXT_XML).put(responseClass, form);
+ .header(HTTP_HEADER_AUTH, authHeader).accept(MediaType.TEXT_XML).put(responseClass, form);
+ }
+
+ /**
+ * 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);
}
/**
@@ -209,7 +223,7 @@ public abstract class AbstractClient { */
protected Object putRequest(String subResourceName, Class responseClass) {
return resource.path(subResourceName).type(MediaType.APPLICATION_FORM_URLENCODED_TYPE)
- .header("Authorization", authHeader).accept(MediaType.TEXT_XML).put(responseClass);
+ .header(HTTP_HEADER_AUTH, authHeader).accept(MediaType.TEXT_XML).put(responseClass);
}
/**
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 08c380e0..8eeb96fe 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 @@ -19,6 +19,7 @@ package com.gluster.storage.management.client; import static com.gluster.storage.management.core.constants.RESTConstants.FORM_PARAM_CLUSTER_NAME; +import static com.gluster.storage.management.core.constants.RESTConstants.FORM_PARAM_SERVER_NAME; import static com.gluster.storage.management.core.constants.RESTConstants.RESOURCE_PATH_CLUSTERS; import java.util.List; @@ -58,6 +59,13 @@ public class ClustersClient extends AbstractClient { return (Status)postRequest(Status.class, form); } + public Status 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); + } + public Status deleteCluster(String clusterName) { return (Status)deleteSubResource(clusterName, Status.class); } diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java index 356e1e0d..b01a0ece 100644 --- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java +++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java @@ -137,7 +137,7 @@ public class GlusterDataModelManager { } private void initializeVolumes(Cluster cluster) { - VolumesClient volumeClient = new VolumesClient(securityToken); + VolumesClient volumeClient = new VolumesClient(clusterName); VolumeListResponse response = volumeClient.getAllVolumes(); if (!response.getStatus().isSuccess()) { throw new GlusterRuntimeException("Error fetching volume list: [" + response.getStatus() + "]"); 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 099b64a0..864418a7 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 @@ -18,6 +18,8 @@ *******************************************************************************/ package com.gluster.storage.management.client; +import javax.ws.rs.core.Response; + import com.gluster.storage.management.core.model.Status; import com.sun.jersey.api.client.UniformInterfaceException; import com.sun.jersey.api.representation.Form; @@ -27,7 +29,6 @@ public class UsersClient extends AbstractClient { private static final String RESOURCE_NAME = "users"; private static final String FORM_PARAM_OLD_PASSWORD = "oldpassword"; private static final String FORM_PARAM_NEW_PASSWORD = "newpassword"; - private static final int HTTP_STATUS_UNAUTHORIZED = 401; private String generateSecurityToken(String user, String password) { return new String(Base64.encode(user + ":" + password)); @@ -48,7 +49,8 @@ public class UsersClient extends AbstractClient { return authStatus; } catch (Exception e) { if (e instanceof UniformInterfaceException - && ((UniformInterfaceException) e).getResponse().getStatus() == HTTP_STATUS_UNAUTHORIZED) { + && ((UniformInterfaceException) e).getResponse().getStatus() == Response.Status.UNAUTHORIZED + .getStatusCode()) { // authentication failed. clear security token. setSecurityToken(null); return new Status(Status.STATUS_CODE_FAILURE, "Invalid user id or password!"); 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 96517766..d38a41b3 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 @@ -31,6 +31,7 @@ import com.gluster.storage.management.core.constants.RESTConstants; import com.gluster.storage.management.core.model.Brick; import com.gluster.storage.management.core.model.Status; import com.gluster.storage.management.core.model.Volume; +import com.gluster.storage.management.core.response.GenericResponse; import com.gluster.storage.management.core.response.LogMessageListResponse; import com.gluster.storage.management.core.response.VolumeListResponse; import com.gluster.storage.management.core.response.VolumeOptionInfoListResponse; @@ -88,8 +89,9 @@ public class VolumesClient extends AbstractClient { return (VolumeListResponse) fetchResource(VolumeListResponse.class); } - public Volume getVolume(String volumeName) { - return (Volume) fetchSubResource(volumeName, Volume.class); + @SuppressWarnings("unchecked") + public GenericResponse<Volume> getVolume(String volumeName) { + return (GenericResponse<Volume>)fetchSubResource(volumeName, GenericResponse.class); } public Status deleteVolume(Volume volume, boolean deleteOption) { |
