diff options
| author | Selvam <selvam@gluster.com> | 2011-04-29 15:04:18 +0530 |
|---|---|---|
| committer | Selvam <selvam@gluster.com> | 2011-04-29 15:04:18 +0530 |
| commit | 3149b18d24539f5680848c25064f447c15bbbcc4 (patch) | |
| tree | 4f6b3ef9fcb7a8951511324697752528191fc49e /src/com.gluster.storage.management.client | |
| parent | e4b86192d443e968cf2ad417a46c203ab2751418 (diff) | |
| parent | 276118b6d207bb49905d1e9c19a7f08c33f9ed8d (diff) | |
Merge remote branch 'upstream/master'
Conflicts:
src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java
src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java
src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/GlusterUtil.java
Diffstat (limited to 'src/com.gluster.storage.management.client')
3 files changed, 63 insertions, 35 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 e1a42de1..a4df0e58 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 @@ -93,6 +93,24 @@ public abstract class AbstractClient { }
/**
+ * Fetches the resource whose name is arrived at by appending the "subResourceName" parameter to the default
+ * resource (the one returned by {@link AbstractClient#getResourceName()})
+ *
+ * @param subResourceName
+ * Name of the sub-resource
+ * @param queryParams
+ * Query parameters to be sent for the GET request
+ * @param responseClass
+ * Expected class of the response
+ * @return Object of responseClass received as a result of the GET request on the sub-resource
+ */
+ @SuppressWarnings("rawtypes")
+ protected Object fetchSubResource(String subResourceName, MultivaluedMap<String, String> queryParams,
+ 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
*
* @param responseClass
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 9e031ad3..da3ac279 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 @@ -244,7 +244,7 @@ public class GlusterDataModelManager { private void addMessages(List<LogMessage> messages, Disk disk, String severity, int count) { for (int i = 1; i <= count; i++) { String message = severity + "message" + i; - messages.add(new LogMessage(new Date(), disk, severity, message)); + messages.add(new LogMessage(new Date(), disk.getQualifiedName(), severity, message)); } } 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 7ce2028f..b37c880c 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 @@ -20,16 +20,16 @@ */ package com.gluster.storage.management.client; -import java.util.ArrayList; -import java.util.List; +import javax.ws.rs.core.MultivaluedMap; import com.gluster.storage.management.core.constants.RESTConstants; -import com.gluster.storage.management.core.model.Disk; import com.gluster.storage.management.core.model.Status; import com.gluster.storage.management.core.model.Volume; +import com.gluster.storage.management.core.response.LogMessageListResponse; import com.gluster.storage.management.core.response.VolumeListResponse; import com.gluster.storage.management.core.response.VolumeOptionInfoListResponse; import com.sun.jersey.api.representation.Form; +import com.sun.jersey.core.util.MultivaluedMapImpl; public class VolumesClient extends AbstractClient { @@ -45,14 +45,14 @@ public class VolumesClient extends AbstractClient { public Status createVolume(Volume volume) { return (Status) postObject(Status.class, volume); } - + private Status performOperation(String volumeName, String operation) { Form form = new Form(); form.add(RESTConstants.FORM_PARAM_OPERATION, operation); - - return (Status)putRequest(volumeName, Status.class, form); + + return (Status) putRequest(volumeName, Status.class, form); } - + public Status startVolume(String volumeName) { return performOperation(volumeName, RESTConstants.FORM_PARAM_VALUE_START); } @@ -60,26 +60,26 @@ public class VolumesClient extends AbstractClient { public Status stopVolume(String volumeName) { return performOperation(volumeName, RESTConstants.FORM_PARAM_VALUE_STOP); } - + public Status setVolumeOption(String volume, String key, String value) { Form form = new Form(); form.add(RESTConstants.FORM_PARAM_OPTION_KEY, key); form.add(RESTConstants.FORM_PARAM_OPTION_VALUE, value); - return (Status)postRequest(volume + "/" + RESTConstants.SUBRESOURCE_OPTIONS, Status.class, form); + return (Status) postRequest(volume + "/" + RESTConstants.SUBRESOURCE_OPTIONS, Status.class, form); } - + public Status resetVolumeOptions(String volume) { - return (Status)putRequest(volume + "/" + RESTConstants.SUBRESOURCE_OPTIONS, Status.class); + return (Status) putRequest(volume + "/" + RESTConstants.SUBRESOURCE_OPTIONS, Status.class); } - + public VolumeListResponse getAllVolumes() { return (VolumeListResponse) fetchResource(VolumeListResponse.class); } - + public Volume getVolume(String volumeName) { return (Volume) fetchSubResource(volumeName, Volume.class); } - + public Status deleteVolume(Volume volume, String deleteOption) { return (Status) deleteSubResource(volume.getName(), Status.class, volume.getName(), deleteOption); } @@ -88,36 +88,46 @@ public class VolumesClient extends AbstractClient { return ((VolumeOptionInfoListResponse) fetchSubResource(RESTConstants.SUBRESOURCE_DEFAULT_OPTIONS, VolumeOptionInfoListResponse.class)); } - + public Status addDisks(String volumeName, String disks) { Form form = new Form(); form.add(RESTConstants.QUERY_PARAM_DISKS, disks); return (Status) postRequest(volumeName + "/" + RESTConstants.SUBRESOURCE_DISKS, Status.class, form); } + public LogMessageListResponse getLogs(String volumeName, int lineCount) { + MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl(); + queryParams.add(RESTConstants.QUERY_PARAM_LINE_COUNT, "" + lineCount); + // TODO: Add other filte criteria as query parameters + return (LogMessageListResponse) fetchSubResource(volumeName + "/" + RESTConstants.SUBRESOURCE_LOGS, + queryParams, LogMessageListResponse.class); + + } + public static void main(String[] args) { UsersClient usersClient = new UsersClient(); if (usersClient.authenticate("gluster", "gluster").isSuccess()) { VolumesClient client = new VolumesClient(usersClient.getSecurityToken()); -// List<Disk> disks = new ArrayList<Disk>(); -// Disk diskElement = new Disk(); -// diskElement.setName("sda1"); -// diskElement.setStatus(DISK_STATUS.READY); -// disks.add(diskElement); -// diskElement.setName("sda2"); -// diskElement.setStatus(DISK_STATUS.READY); -// disks.add(diskElement); -// -// Volume vol = new Volume("vol1", null, Volume.VOLUME_TYPE.PLAIN_DISTRIBUTE, Volume.TRANSPORT_TYPE.ETHERNET, -// Volume.VOLUME_STATUS.ONLINE); -// // vol.setDisks(disks); -// System.out.println(client.createVolume(vol)); -// for (VolumeOptionInfo option : client.getVolumeOptionsDefaults()) { -// System.out.println(option.getName() + "-" + option.getDescription() + "-" + option.getDefaultValue()); -// } -// System.out.println(client.getVolume("Volume3").getOptions()); -// System.out.println(client.setVolumeOption("Volume3", "network.frame-timeout", "600").getMessage()); - + // List<Disk> disks = new ArrayList<Disk>(); + // Disk diskElement = new Disk(); + // diskElement.setName("sda1"); + // diskElement.setStatus(DISK_STATUS.READY); + // disks.add(diskElement); + // diskElement.setName("sda2"); + // diskElement.setStatus(DISK_STATUS.READY); + // disks.add(diskElement); + // + // Volume vol = new Volume("vol1", null, Volume.VOLUME_TYPE.PLAIN_DISTRIBUTE, + // Volume.TRANSPORT_TYPE.ETHERNET, + // Volume.VOLUME_STATUS.ONLINE); + // // vol.setDisks(disks); + // System.out.println(client.createVolume(vol)); + // for (VolumeOptionInfo option : client.getVolumeOptionsDefaults()) { + // System.out.println(option.getName() + "-" + option.getDescription() + "-" + option.getDefaultValue()); + // } + // System.out.println(client.getVolume("Volume3").getOptions()); + // System.out.println(client.setVolumeOption("Volume3", "network.frame-timeout", "600").getMessage()); + Status status = client.addDisks("Volume3", "server1:sda, server1:sdb, server1:sdc"); System.out.println(status.getMessage()); } |
