diff options
| author | Shireesh Anjal <shireesh@gluster.com> | 2011-03-22 17:53:14 +0530 |
|---|---|---|
| committer | Shireesh Anjal <shireesh@gluster.com> | 2011-03-22 17:53:14 +0530 |
| commit | c0767db8bf79afd62cdb750558ab7db1a227838f (patch) | |
| tree | 86e64122f70f8a03a3a9dbe677ac1be89948490a /com.gluster.storage.management.client/src/com/gluster | |
| parent | 97964bbc552cf0c3a86d0dff8ba00d930f60fd5d (diff) | |
story#21 Start Volume
Diffstat (limited to 'com.gluster.storage.management.client/src/com/gluster')
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")) { |
