summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.client
diff options
context:
space:
mode:
authorSelvam <selvam@gluster.com>2011-03-30 18:02:08 +0530
committerSelvam <selvam@gluster.com>2011-04-05 15:10:37 +0530
commit3e997efcd1f569d38b1ac7623c4e10dd35da416a (patch)
tree78104bc99f8bef571490a7d39ae88a080d173585 /src/com.gluster.storage.management.client
parent5c39a47fdd3987bb5eee35f7f7397ce127c8919e (diff)
Alerts section in volumes summary page
Volumes update in navigation tree Review comments update for Alerts & Running tasks 1. RESOURCE_NAME removed and used RESTConstants 2. fetchAlerts renamed to fetchAllAlerts 3. System.out.println removed 4. ALERT_TYPE_STR made as static and final 5. getAlertDescription renamed as getMessage 6. getTaskDescription renamed as getTaskInfo 7. getCluster method is added in GlusterDataModel 8. getRunningTasksForVolumesContext will not implemented for Volumes summary view 9. Constants added for "Availability", "Running Tasks" etc. 10. CPU_USAGE_ALERT, MEMORY_USAGE_ALERT and DISK_USAGE_ALERT are modifies and OFFLINE_VOLUME_DISKS_ALERT, OFFLINE_SERVERS_ALERT are added. 11. Two more dummy alerts added 12. Reference format changed for Disk as "volumeName:serverName:diskName" 13. TaskInfo reflects the task type 14. Method removeSpaces added as static method 15. Local constants added for package and Manager
Diffstat (limited to 'src/com.gluster.storage.management.client')
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AlertsClient.java33
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java94
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/RunningTaskClient.java3
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java6
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();