diff options
Diffstat (limited to 'src/com.gluster.storage.management.client')
4 files changed, 101 insertions, 35 deletions
diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AlertsClient.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AlertsClient.java new file mode 100644 index 00000000..ad258797 --- /dev/null +++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AlertsClient.java @@ -0,0 +1,33 @@ +package com.gluster.storage.management.client; + +import java.util.List; + +import com.gluster.storage.management.core.constants.RESTConstants; +import com.gluster.storage.management.core.model.Alert; +import com.gluster.storage.management.core.model.AlertListResponse; + +public class AlertsClient extends AbstractClient { + + public AlertsClient(String securityToken) { + super(securityToken); + } + + @Override + public String getResourceName() { + return RESTConstants.RESOURCE_PATH_ALERTS; + } + + @SuppressWarnings("rawtypes") + private Object fetchAllAlerts(Class responseClass) { + return fetchResource( responseClass ); + } + + public List<Alert> getAllAlerts() { + AlertListResponse response = (AlertListResponse) fetchAllAlerts(AlertListResponse.class); + return response.getAlerts(); + } +} + + + + 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 de0112db..ee3d418d 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 @@ -24,25 +24,24 @@ import java.util.Date; import java.util.List; import com.gluster.storage.management.core.model.Cluster; +import com.gluster.storage.management.core.model.ClusterListener; 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.Event.EVENT_TYPE; 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.ClusterListener; import com.gluster.storage.management.core.model.LogMessage; import com.gluster.storage.management.core.model.NetworkInterface; -import com.gluster.storage.management.core.model.RunningTask; import com.gluster.storage.management.core.model.Server; -import com.gluster.storage.management.core.model.Status; -import com.gluster.storage.management.core.model.RunningTaskStatus; import com.gluster.storage.management.core.model.Volume; import com.gluster.storage.management.core.model.Volume.TRANSPORT_TYPE; import com.gluster.storage.management.core.model.Volume.VOLUME_STATUS; import com.gluster.storage.management.core.model.Volume.VOLUME_TYPE; +import com.gluster.storage.management.core.model.VolumeListResponse; +import com.gluster.storage.management.client.VolumesClient; public class GlusterDataModelManager { // private Server discoveredServer1, discoveredServer2, discoveredServer3, discoveredServer4, discoveredServer5; @@ -107,20 +106,25 @@ public class GlusterDataModelManager { public void initializeModel(String securityToken) { setSecurityToken(securityToken); - // Create the dummy data model for demo - model = new GlusterDataModel("Clusters"); - Cluster cluster = new Cluster("Home", model); - + Cluster cluster = model.getCluster(); + VolumesClient volumeClient = new VolumesClient(securityToken); + initializeGlusterServers(cluster); - initializeVolumes(cluster); + + // initializeVolumes(cluster); + VolumeListResponse response = volumeClient.getAllVolumes(); + cluster.setVolumes( response.getVolumes()); + initializeAutoDiscoveredServers(cluster); initializeDisks(); - addDisksToVolumes(); - addVolumeOptions(); + // addDisksToVolumes(); + // addVolumeOptions(); createDummyLogMessages(); initializeRunningTasks(cluster); + + initializeAlerts(cluster); model.addCluster(cluster); } @@ -201,24 +205,24 @@ public class GlusterDataModelManager { } private void addDisksToVolumes() { - volume1.addDisk(s1da); + volume1.addDisk("server1:sda"); - volume2.addDisk(s2da); - volume2.addDisk(s1db); - volume2.addDisk(s3da); - volume2.addDisk(s4da); + volume2.addDisk("server2:sda"); + volume2.addDisk("server1:sdb"); + volume2.addDisk("server3:sda"); + volume2.addDisk("server4:sda"); - volume3.addDisk(s2db); - volume3.addDisk(s4da); - volume3.addDisk(s5da); + volume3.addDisk("server2:sdb"); + volume3.addDisk("server4:sda"); + volume3.addDisk("server5:sda"); - volume4.addDisk(s1da); - volume4.addDisk(s3da); - volume4.addDisk(s4da); - volume4.addDisk(s5db); + volume4.addDisk("server1:sda"); + volume4.addDisk("server3:sda"); + volume4.addDisk("server4:sda"); + volume4.addDisk("server5:sdb"); - volume5.addDisk(s2da); - volume5.addDisk(s5db); + volume5.addDisk("server2:sda"); + volume5.addDisk("server5:sdb"); } private void initializeGlusterServers(Cluster cluster) { @@ -247,6 +251,10 @@ public class GlusterDataModelManager { public void initializeRunningTasks(Cluster cluster) { cluster.setRunningTasks(new RunningTaskClient(securityToken).getRunningTasks()); } + + public void initializeAlerts(Cluster cluster) { + cluster.setAlerts(new AlertsClient(securityToken).getAllAlerts()); + } public List<LogMessage> createDummyLogMessages() { addMessagesForDisk(logMessages, s1da); @@ -264,20 +272,42 @@ public class GlusterDataModelManager { public static List<LogMessage> getDummyLogMessages() { return logMessages; } + + public Disk getVolumeDisk(String volumeDisk) { + List<Disk> allDisks = getReadyDisksOfAllServers(); + String brickInfo[] = volumeDisk.split(":"); + for( Disk disk: allDisks) { + if (disk.getServerName() == brickInfo[0] && disk.getName() == brickInfo[1]) { + return disk; + } + } + return null; + } public List<Disk> getReadyDisksOfVolume(Volume volume) { + /* TODO: review the logic + List<Disk> disks = new ArrayList<Disk>(); for (Disk disk : volume.getDisks()) { if (disk.isReady()) { disks.add(disk); } } - return disks; + */ + Disk disk = null; + List<Disk> volumeDisks = new ArrayList<Disk>(); + for (String volumeDisk : volume.getDisks() ) { + disk = getVolumeDisk(volumeDisk); + if (disk != null && disk.isReady()) { + volumeDisks.add(disk); + } + } + return volumeDisks; } public List<Disk> getReadyDisksOfAllVolumes() { List<Disk> disks = new ArrayList<Disk>(); - for (Volume volume : ((Cluster) model.getChildren().get(0)).getVolumes()) { + for (Volume volume : model.getCluster().getVolumes()) { disks.addAll(getReadyDisksOfVolume(volume)); } return disks; @@ -290,7 +320,7 @@ public class GlusterDataModelManager { public List<Disk> getReadyDisksOfAllServersExcluding(List<Disk> excludeDisks) { List<Disk> disks = new ArrayList<Disk>(); - for (Server server : ((Cluster) model.getChildren().get(0)).getServers()) { + for (Server server : model.getCluster().getServers()) { for (Disk disk : server.getDisks()) { if (disk.isReady() && !excludeDisks.contains(disk)) { disks.add(disk); @@ -309,7 +339,7 @@ public class GlusterDataModelManager { } public void addGlusterServer(GlusterServer server) { - Cluster cluster = (Cluster)model.getChildren().get(0); + Cluster cluster = model.getCluster(); cluster.addServer(server); for(ClusterListener listener : listeners) { @@ -318,7 +348,7 @@ public class GlusterDataModelManager { } public void removeDiscoveredServer(Server server) { - Cluster cluster = (Cluster)model.getChildren().get(0); + Cluster cluster = model.getCluster(); cluster.removeDiscoveredServer(server); for(ClusterListener listener : listeners) { @@ -334,7 +364,7 @@ public class GlusterDataModelManager { } public void addVolume(Volume volume) { - Cluster cluster = (Cluster)model.getChildren().get(0); + Cluster cluster = model.getCluster(); cluster.addVolume(volume); for(ClusterListener listener : listeners) { diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/RunningTaskClient.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/RunningTaskClient.java index 9309cdc8..ff728be0 100644 --- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/RunningTaskClient.java +++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/RunningTaskClient.java @@ -8,7 +8,6 @@ import com.gluster.storage.management.core.model.RunningTask; import com.gluster.storage.management.core.model.RunningTaskListResponse; public class RunningTaskClient extends AbstractClient { - private static final String RESOURCE_NAME = RESTConstants.RESOURCE_PATH_RUNNING_TASKS; public RunningTaskClient(String securityToken) { super(securityToken); @@ -16,7 +15,7 @@ public class RunningTaskClient extends AbstractClient { @Override public String getResourceName() { - return RESOURCE_NAME; + return RESTConstants.RESOURCE_PATH_RUNNING_TASKS; } @SuppressWarnings("rawtypes") 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 03e83a31..28f23c1b 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 @@ -29,6 +29,7 @@ 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.gluster.storage.management.core.model.VolumeListResponse; import com.sun.jersey.api.representation.Form; public class VolumesClient extends AbstractClient { @@ -66,7 +67,10 @@ public class VolumesClient extends AbstractClient { public Status stopVolume(String volumeName) { return performOperation(volumeName, RESTConstants.FORM_PARAM_VALUE_STOP); } - + + public VolumeListResponse getAllVolumes() { + return (VolumeListResponse) fetchResource(VolumeListResponse.class); + } public static void main(String[] args) { UsersClient usersClient = new UsersClient(); |
