diff options
Diffstat (limited to 'src')
6 files changed, 53 insertions, 34 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 97b3e1a0..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,21 +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);
- }
- @SuppressWarnings({ "rawtypes", "unchecked" })
- protected Object deleteSubResource(String subResourceName, Class responseClass, String volumeName, String disks,
- String deleteOption) {
- return resource.path(subResourceName).queryParam(RESTConstants.QUERY_PARAM_VOLUME_NAME, volumeName)
- .queryParam(RESTConstants.QUERY_PARAM_DISKS, disks)
- .queryParam(RESTConstants.QUERY_PARAM_DELETE_OPTION, deleteOption).header("Authorization", 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 767b4eb7..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 @@ -91,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() { @@ -144,11 +145,27 @@ public class VolumesClient extends AbstractClient { downloadSubResource((volumeName) + "/" + RESTConstants.SUBRESOURCE_LOGS + "/" + RESTConstants.SUBRESOURCE_DOWNLOAD); } - public Status removeBricks(String volumeName, List<Disk> diskList, String deleteOption) { + public Status removeBricks(String volumeName, List<Disk> diskList, boolean deleteOption) { String disks = StringUtil.ListToString( GlusterCoreUtil.getQualifiedDiskNames(diskList), ","); - return (Status) deleteSubResource(volumeName + "/" + RESTConstants.SUBRESOURCE_DISKS, Status.class, volumeName, disks, deleteOption); + 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(); diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/DeleteVolumeAction.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/DeleteVolumeAction.java index 9d479f0c..cfcf8656 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/DeleteVolumeAction.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/DeleteVolumeAction.java @@ -63,9 +63,10 @@ public class DeleteVolumeAction extends AbstractActionDelegate { return; } } - String confirmDelete = ""; + + boolean confirmDelete = false; if (deleteOption == 1) { - confirmDelete = "-d"; + confirmDelete = true; } status = client.deleteVolume(volume, confirmDelete); diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/RemoveDiskAction.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/RemoveDiskAction.java index 1524f334..0735b63f 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/RemoveDiskAction.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/RemoveDiskAction.java @@ -32,13 +32,13 @@ public class RemoveDiskAction extends AbstractActionDelegate { IImageKeys.VOLUME), "Are you sure you want to remove disks from volume [" + volume.getName() + "] ?", MessageDialog.QUESTION, new String[] { "Cancel", "Remove disks, delete volume data from them", "Remove disks, back-up volume data from them" }, 2).open(); - if (deleteOption == 0) { + if (deleteOption <= 0) { // By Cancel button(0) or Escape key(-1) return; } - String confirmDelete = ""; + boolean confirmDelete = false; if (deleteOption == 1) { - confirmDelete = "-d"; + confirmDelete = true; } VolumesClient client = new VolumesClient(modelManager.getSecurityToken()); 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 4fc70202..fe03fffd 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 @@ -173,10 +173,15 @@ public class VolumesResource { @Path("{" + PATH_PARAM_VOLUME_NAME + "}") @Produces(MediaType.TEXT_XML) public Status deleteVolume(@QueryParam(QUERY_PARAM_VOLUME_NAME) String volumeName, - @QueryParam(QUERY_PARAM_DELETE_OPTION) String deleteOption) { + @QueryParam(QUERY_PARAM_DELETE_OPTION) boolean deleteFlag) { Volume volume = glusterUtil.getVolume(volumeName); Status status = glusterUtil.deleteVolume(volumeName); - + + String deleteOption = ""; + if(deleteFlag) { + deleteOption = "-d"; + } + if (status.isSuccess()) { List<String> disks = volume.getDisks(); Status postDeleteStatus = postDelete(volumeName, disks, deleteOption); @@ -193,16 +198,21 @@ public class VolumesResource { @Path("{" + QUERY_PARAM_VOLUME_NAME + "}/" + SUBRESOURCE_DISKS) @Produces(MediaType.TEXT_XML) public Status removeBricks(@PathParam(QUERY_PARAM_VOLUME_NAME) String volumeName, - @QueryParam(QUERY_PARAM_DISKS) String disks, @QueryParam(QUERY_PARAM_DELETE_OPTION) String deleteOption) { + @QueryParam(QUERY_PARAM_DISKS) String disks, @QueryParam(QUERY_PARAM_DELETE_OPTION) boolean deleteFlag) { List<String> bricks = Arrays.asList(disks.split(",")); // Convert from comma separated string (query parameter) - List<String> volumeBrick = new ArrayList<String>(); + List<String> volumeBricks = new ArrayList<String>(); for (String brickInfo : bricks) { String diskInfo[] = brickInfo.split(":"); - volumeBrick.add(getBrickForDisk(getVolume(volumeName), diskInfo[1])); + volumeBricks.add(getBrickForDisk(getVolume(volumeName), diskInfo[1])); } - Status status = glusterUtil.removeBricks(volumeName, volumeBrick); + Status status = glusterUtil.removeBricks(volumeName, volumeBricks); + String deleteOption = ""; + if(deleteFlag) { + deleteOption = "-d"; + } + if (status.isSuccess()) { Status cleanupStatus = cleanupDirectories(bricks, volumeName, bricks.size(), deleteOption); if (!cleanupStatus.isSuccess()) { @@ -569,7 +579,7 @@ public class VolumesResource { Form form = new Form(); form.add("volumeName", volume.getName()); form.add(RESTConstants.FORM_PARAM_DELETE_OPTION, 1); - Status status = vr.deleteVolume("Vol2", "1"); + Status status = vr.deleteVolume("Vol2", true); System.out.println("Code : " + status.getCode()); System.out.println("Message " + status.getMessage()); } diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/GlusterUtil.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/GlusterUtil.java index fa49a529..476b5a14 100644 --- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/GlusterUtil.java +++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/GlusterUtil.java @@ -184,7 +184,6 @@ public class GlusterUtil { List<String> command = prepareVolumeCreateCommand(volume, bricks, count, volumeType, transportTypeStr); ProcessResult result = processUtil.executeCommand(command); if (!result.isSuccess()) { - // Perform cleanup on all nodes before returning return new Status(result); } |
