summaryrefslogtreecommitdiffstats
path: root/com.gluster.storage.management.client
diff options
context:
space:
mode:
authorShireesh Anjal <shireesh@gluster.com>2011-03-22 17:53:14 +0530
committerShireesh Anjal <shireesh@gluster.com>2011-03-22 17:53:14 +0530
commitc0767db8bf79afd62cdb750558ab7db1a227838f (patch)
tree86e64122f70f8a03a3a9dbe677ac1be89948490a /com.gluster.storage.management.client
parent97964bbc552cf0c3a86d0dff8ba00d930f60fd5d (diff)
story#21 Start Volume
Diffstat (limited to 'com.gluster.storage.management.client')
-rw-r--r--com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java19
-rw-r--r--com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java22
2 files changed, 32 insertions, 9 deletions
diff --git a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java
index 45e61e8e..58067a82 100644
--- a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java
+++ b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java
@@ -26,11 +26,13 @@ import java.util.List;
import com.gluster.storage.management.core.model.Cluster;
import com.gluster.storage.management.core.model.Disk;
import com.gluster.storage.management.core.model.Disk.DISK_STATUS;
+import com.gluster.storage.management.core.model.Event.EVENT_TYPE;
import com.gluster.storage.management.core.model.Entity;
+import com.gluster.storage.management.core.model.Event;
import com.gluster.storage.management.core.model.GlusterDataModel;
import com.gluster.storage.management.core.model.GlusterServer;
import com.gluster.storage.management.core.model.GlusterServer.SERVER_STATUS;
-import com.gluster.storage.management.core.model.IClusterListener;
+import com.gluster.storage.management.core.model.ClusterListener;
import com.gluster.storage.management.core.model.LogMessage;
import com.gluster.storage.management.core.model.NetworkInterface;
import com.gluster.storage.management.core.model.Server;
@@ -49,7 +51,7 @@ public class GlusterDataModelManager {
private GlusterDataModel model;
private String securityToken;
private String serverName;
- private List<IClusterListener> listeners = new ArrayList<IClusterListener>();
+ private List<ClusterListener> listeners = new ArrayList<ClusterListener>();
private GlusterDataModelManager() {
}
@@ -298,7 +300,7 @@ public class GlusterDataModelManager {
return disks;
}
- public void addClusterListener(IClusterListener listener) {
+ public void addClusterListener(ClusterListener listener) {
listeners.add(listener);
}
@@ -306,7 +308,7 @@ public class GlusterDataModelManager {
Cluster cluster = (Cluster)model.getChildren().get(0);
cluster.addServer(server);
- for(IClusterListener listener : listeners) {
+ for(ClusterListener listener : listeners) {
listener.serverAdded(server);
}
}
@@ -315,8 +317,15 @@ public class GlusterDataModelManager {
Cluster cluster = (Cluster)model.getChildren().get(0);
cluster.removeDiscoveredServer(server);
- for(IClusterListener listener : listeners) {
+ for(ClusterListener listener : listeners) {
listener.discoveredServerRemoved(server);
}
}
+
+ public void updateVolumeStatus(Volume volume, VOLUME_STATUS newStatus) {
+ volume.setStatus(newStatus);
+ for(ClusterListener listener : listeners) {
+ listener.volumeChanged(volume, new Event(EVENT_TYPE.VOLUME_STATUS_CHANGED, newStatus));
+ }
+ }
}
diff --git a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java
index 10c64e28..d2e870e7 100644
--- a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java
+++ b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java
@@ -23,14 +23,16 @@ package com.gluster.storage.management.client;
import java.util.ArrayList;
import java.util.List;
+import com.gluster.storage.management.core.constants.RESTConstants;
import com.gluster.storage.management.core.model.Disk;
import com.gluster.storage.management.core.model.Disk.DISK_STATUS;
import com.gluster.storage.management.core.model.GenericResponse;
import com.gluster.storage.management.core.model.Status;
import com.gluster.storage.management.core.model.Volume;
+import com.sun.jersey.api.representation.Form;
public class VolumesClient extends AbstractClient {
- private static final String RESOURCE_NAME = "/cluster/volumes";
+ private static final String RESOURCE_NAME = "/cluster/volumes"; // TODO: move to common place
public VolumesClient(String serverName, String securityToken) {
super(serverName, securityToken);
@@ -46,10 +48,22 @@ public class VolumesClient extends AbstractClient {
GenericResponse<String> response = (GenericResponse<String>) postObject(GenericResponse.class, volume);
return response.getStatus();
}
+
+ 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);
+ }
+
+ public Status startVolume(String volumeName) {
+ return performOperation(volumeName, RESTConstants.FORM_PARAM_VALUE_START);
+ }
+
+ public Status stopVolume(String volumeName) {
+ return performOperation(volumeName, RESTConstants.FORM_PARAM_VALUE_STOP);
+ }
- /**
- * @param args
- */
public static void main(String[] args) {
UsersClient usersClient = new UsersClient("localhost");
if (usersClient.authenticate("gluster", "gluster")) {