summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java21
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/GlusterServersResource.java31
2 files changed, 40 insertions, 12 deletions
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java
index a28fd90f..3d77e026 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java
@@ -122,6 +122,8 @@ public abstract class AbstractDisksPage extends AbstractTableTreeViewerPage<Disk
Device device = null;
int rowNum1 = -1;
TreeItem item1 = null;
+
+ mainloop:
for (int i = 0; i < itemCount; i++) {
item1 = tree.getItem(i);
@@ -141,8 +143,9 @@ public abstract class AbstractDisksPage extends AbstractTableTreeViewerPage<Disk
// this is an uninitialized "partition"
rowNum1 = i + j;
item1 = partitionItem;
- device = (Device) partitionItem.getData();
- break;
+ device = partition;
+ // found the uninitialized device. break out.
+ break mainloop;
}
}
}
@@ -174,20 +177,24 @@ public abstract class AbstractDisksPage extends AbstractTableTreeViewerPage<Disk
private void setupStatusCellEditor() {
final TreeViewer viewer = treeViewer;
final Tree tree = viewer.getTree();
- for (int i = 0; i < tree.getItemCount(); i++) {
+ int rowNum = 0;
+ for (int i = 0; i < tree.getItemCount(); i++, rowNum++) {
final TreeItem item = tree.getItem(i);
if (item.isDisposed() || item.getData() == null) {
continue;
}
final Disk disk = (Disk) item.getData();
if (disk.isUninitialized()) {
- createInitializeLink(item, i, disk);
+ createInitializeLink(item, rowNum, disk);
}
if (disk.hasPartitions()) {
- for (Partition partition : disk.getPartitions()) {
- if(partition.isUninitialized()) {
- createInitializeLink(item, i, partition);
+ for(int j = 0; j < disk.getPartitions().size(); j++, rowNum++) {
+ TreeItem partitionItem = item.getItem(j);
+ // check each partition
+ Device partition = (Device)partitionItem.getData();
+ if (partition.isUninitialized()) {
+ createInitializeLink(partitionItem, rowNum, partition);
}
}
}
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/GlusterServersResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/GlusterServersResource.java
index e3332648..2d5034ec 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/GlusterServersResource.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/GlusterServersResource.java
@@ -61,6 +61,7 @@ import com.gluster.storage.management.core.exceptions.GlusterRuntimeException;
import com.gluster.storage.management.core.exceptions.GlusterValidationException;
import com.gluster.storage.management.core.model.GlusterServer;
import com.gluster.storage.management.core.model.Server.SERVER_STATUS;
+import com.gluster.storage.management.core.model.ServerStats;
import com.gluster.storage.management.core.model.TaskStatus;
import com.gluster.storage.management.core.response.GlusterServerListResponse;
import com.gluster.storage.management.core.response.ServerNameListResponse;
@@ -502,27 +503,47 @@ public class GlusterServersResource extends AbstractServersResource {
@GET
@Produces(MediaType.APPLICATION_XML)
@Path("{" + PATH_PARAM_SERVER_NAME + "}/" + RESOURCE_STATISTICS)
- public Response getPerformanceDataXML(@PathParam(PATH_PARAM_SERVER_NAME) String serverName,
+ public Response getPerformanceDataXML(@PathParam(PATH_PARAM_CLUSTER_NAME) String clusterName, @PathParam(PATH_PARAM_SERVER_NAME) String serverName,
@QueryParam(QUERY_PARAM_TYPE) String type, @QueryParam(QUERY_PARAM_PERIOD) String period,
@QueryParam(QUERY_PARAM_INTERFACE) String networkInterface) {
- return getPerformanceData(serverName, type, period, networkInterface, MediaType.APPLICATION_XML);
+ return getPerformanceData(clusterName, serverName, type, period, networkInterface, MediaType.APPLICATION_XML);
}
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("{" + PATH_PARAM_SERVER_NAME + "}/" + RESOURCE_STATISTICS)
- public Response getPerformanceDataJSON(@PathParam(PATH_PARAM_SERVER_NAME) String serverName,
+ public Response getPerformanceDataJSON(@PathParam(PATH_PARAM_CLUSTER_NAME) String clusterName, @PathParam(PATH_PARAM_SERVER_NAME) String serverName,
@QueryParam(QUERY_PARAM_TYPE) String type, @QueryParam(QUERY_PARAM_PERIOD) String period,
@QueryParam(QUERY_PARAM_INTERFACE) String networkInterface) {
- return getPerformanceData(serverName, type, period, networkInterface, MediaType.APPLICATION_JSON);
+ return getPerformanceData(clusterName, serverName, type, period, networkInterface, MediaType.APPLICATION_JSON);
}
private Response getAggregaredPerformanceData(String clusterName, String type, String period, String mediaType) {
+ if (clusterName == null || clusterName.isEmpty()) {
+ throw new GlusterValidationException("Cluster name must not be empty!");
+ }
+
+ ClusterInfo cluster = clusterService.getCluster(clusterName);
+ if (cluster == null) {
+ return notFoundResponse("Cluster [" + clusterName + "] not found!");
+ }
+
+ if (cluster.getServers().size() == 0) {
+ // cluster is empty. return empty stats.
+ return okResponse(new ServerStats(), mediaType);
+ }
+
List<String> serverNames = getServerNames(getGlusterServers(clusterName, false));
return okResponse(getStatsFactory(type).fetchAggregatedStats(serverNames, period), mediaType);
}
- private Response getPerformanceData(String serverName, String type, String period, String networkInterface, String mediaType) {
+ private Response getPerformanceData(String clusterName, String serverName, String type, String period, String networkInterface, String mediaType) {
+ if (clusterName == null || clusterName.isEmpty()) {
+ throw new GlusterValidationException("Cluster name must not be empty!");
+ }
+ if (serverName == null || serverName.isEmpty()) {
+ throw new GlusterValidationException("Server name must not be empty!");
+ }
return okResponse(getStatsFactory(type).fetchStats(serverName, period, networkInterface), mediaType);
}