summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.client
diff options
context:
space:
mode:
authorSelvam <selvam@gluster.com>2011-05-06 14:58:27 +0530
committerSelvam <selvam@gluster.com>2011-05-06 14:58:27 +0530
commit10429a6c2c197ac82205fc904ccc5f6513c2b4ef (patch)
treecf08ca25ab8a076ed08d7ab3fa37ac631331d22b /src/com.gluster.storage.management.client
parenta46390ce97935a2c629f86c86a72e7407fc19740 (diff)
parent740e91a3ad585a7c9e4a58e1e9c8f01c6c85392f (diff)
Merge remote branch 'upstream/master'
Diffstat (limited to 'src/com.gluster.storage.management.client')
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java19
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java27
2 files changed, 35 insertions, 11 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 f8005044..b9a0ef56 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
@@ -48,14 +48,15 @@ public abstract class AbstractClient {
return res.queryParams(queryParams).header(HTTP_HEADER_AUTH, authHeader).accept(MediaType.TEXT_XML)
.get(responseClass);
}
-
+
private Object downloadResource(WebResource res, MultivaluedMap<String, String> queryParams, Class responseClass) {
return res.queryParams(queryParams).header(HTTP_HEADER_AUTH, authHeader).accept(MediaType.TEXT_XML)
.get(responseClass);
}
-
+
protected Object downloadResource(WebResource res) {
- ClientResponse response = res.header(HTTP_HEADER_AUTH, authHeader).accept(MediaType.APPLICATION_OCTET_STREAM).get(ClientResponse.class);
+ ClientResponse response = res.header(HTTP_HEADER_AUTH, authHeader).accept(MediaType.APPLICATION_OCTET_STREAM)
+ .get(ClientResponse.class);
return response;
}
@@ -124,7 +125,7 @@ public abstract class AbstractClient {
Class responseClass) {
return fetchResource(resource.path(subResourceName), queryParams, responseClass);
}
-
+
/**
* Submits given Form using POST method to the resource and returns the object received as response
*
@@ -207,12 +208,12 @@ public abstract class AbstractClient {
return resource.header(HTTP_HEADER_AUTH, authHeader).delete(responseClass);
}
- @SuppressWarnings({ "unchecked", "rawtypes" })
- protected Object deleteSubResource(String subResourceName, Class responseClass, String volumeName,
- String deleteOption) {
- return resource.path(subResourceName).queryParam(RESTConstants.QUERY_PARAM_VOLUME_NAME, volumeName)
- .queryParam(RESTConstants.QUERY_PARAM_DELETE_OPTION, deleteOption).header(HTTP_HEADER_AUTH, authHeader)
+ @SuppressWarnings("unchecked")
+ protected Object deleteSubResource(String subResourceName, Class responseClass,
+ MultivaluedMap<String, String> queryParams) {
+ return resource.path(subResourceName).queryParams(queryParams).header(HTTP_HEADER_AUTH, authHeader)
.delete(responseClass);
+
}
public abstract String getResourceName();
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 4af70c5a..f1464211 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
@@ -23,6 +23,7 @@ package com.gluster.storage.management.client;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+
import javax.ws.rs.core.MultivaluedMap;
import com.gluster.storage.management.core.constants.CoreConstants;
@@ -90,8 +91,9 @@ public class VolumesClient extends AbstractClient {
return (Volume) fetchSubResource(volumeName, Volume.class);
}
- public Status deleteVolume(Volume volume, String deleteOption) {
- return (Status) deleteSubResource(volume.getName(), Status.class, volume.getName(), deleteOption);
+ public Status deleteVolume(Volume volume, boolean deleteOption) {
+ MultivaluedMap<String, String> queryParams = prepareGetDeleteVolumeQueryParams(volume.getName(), deleteOption);
+ return (Status) deleteSubResource(volume.getName(), Status.class, queryParams);
}
public VolumeOptionInfoListResponse getVolumeOptionsDefaults() {
@@ -142,7 +144,28 @@ public class VolumesClient extends AbstractClient {
public void downloadLogs(String volumeName) {
downloadSubResource((volumeName) + "/" + RESTConstants.SUBRESOURCE_LOGS + "/" + RESTConstants.SUBRESOURCE_DOWNLOAD);
}
+
+ public Status removeBricks(String volumeName, List<Disk> diskList, boolean deleteOption) {
+ String disks = StringUtil.ListToString( GlusterCoreUtil.getQualifiedDiskNames(diskList), ",");
+ MultivaluedMap<String, String> queryParams = prepareGetRemoveBrickQueryParams(volumeName, disks, deleteOption);
+ return (Status) deleteSubResource(volumeName + "/" + RESTConstants.SUBRESOURCE_DISKS, Status.class, queryParams);
+ }
+
+ private MultivaluedMap<String, String> prepareGetRemoveBrickQueryParams(String volumeName, String disks, boolean deleteOption) {
+ MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
+ queryParams.add(RESTConstants.QUERY_PARAM_VOLUME_NAME, volumeName);
+ queryParams.add(RESTConstants.QUERY_PARAM_DISKS, disks);
+ queryParams.add(RESTConstants.QUERY_PARAM_DELETE_OPTION, "" + deleteOption);
+ return queryParams;
+ }
+ private MultivaluedMap<String, String> prepareGetDeleteVolumeQueryParams(String volumeName, boolean deleteOption) {
+ MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
+ queryParams.add(RESTConstants.QUERY_PARAM_VOLUME_NAME, volumeName);
+ queryParams.add(RESTConstants.QUERY_PARAM_DELETE_OPTION, "" + deleteOption);
+ return queryParams;
+ }
+
private MultivaluedMap<String, String> prepareGetLogQueryParams(String diskName, String severity,
Date fromTimestamp, Date toTimestamp, int messageCount) {
MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();