summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.client
diff options
context:
space:
mode:
authorSelvam <selvam@gluster.com>2011-04-29 15:04:18 +0530
committerSelvam <selvam@gluster.com>2011-04-29 15:04:18 +0530
commit3149b18d24539f5680848c25064f447c15bbbcc4 (patch)
tree4f6b3ef9fcb7a8951511324697752528191fc49e /src/com.gluster.storage.management.client
parente4b86192d443e968cf2ad417a46c203ab2751418 (diff)
parent276118b6d207bb49905d1e9c19a7f08c33f9ed8d (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')
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java18
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java2
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java78
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());
}