summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTim <timothyasir@gluster.com>2011-08-17 15:37:32 +0530
committerTim <timothyasir@gluster.com>2011-08-17 15:37:32 +0530
commit0b32407eedb904366afe78a3f727e0ecdd7b05d3 (patch)
tree85e8d58d812385086766df1fccd7343b5ed8c763 /src
parent3866d0a66197140cae0ddd5081aa28f17e32c3be (diff)
parent26ca3ab4375a11487cc7ac9406bbcd60bf8cf7d9 (diff)
Merge remote branch 'upstream/master'
Diffstat (limited to 'src')
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/constants/ClientConstants.java2
-rw-r--r--src/com.gluster.storage.management.console/plugin.properties3
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/CreateVolumePage1.java5
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/CreateVolumeWizard.java14
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/VolumeSummaryView.java36
-rw-r--r--src/com.gluster.storage.management.gateway/WebContent/WEB-INF/web.xml2
6 files changed, 48 insertions, 14 deletions
diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/constants/ClientConstants.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/constants/ClientConstants.java
index 765735fb..e253dfa5 100644
--- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/constants/ClientConstants.java
+++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/constants/ClientConstants.java
@@ -27,7 +27,7 @@ public class ClientConstants {
public static final String SYS_PROP_SERVER_URL = "gluster.server.url";
public static final String DEFAULT_SERVER_URL = "https://localhost:8443/glustermg/linux.gtk.x86_64";
public static final String CONTEXT_ROOT = "glustermg";
- public static final String REST_API_VERSION = "1.0";
+ public static final String REST_API_VERSION = "1.0.0";
// SSL related
public static final String TRUSTED_KEYSTORE = "gmc-trusted.keystore";
diff --git a/src/com.gluster.storage.management.console/plugin.properties b/src/com.gluster.storage.management.console/plugin.properties
index 6a93e73d..4ef7da70 100644
--- a/src/com.gluster.storage.management.console/plugin.properties
+++ b/src/com.gluster.storage.management.console/plugin.properties
@@ -3,4 +3,5 @@ Version: 1.0.0\n\n\
Copyright (c) 2011 Gluster, Inc.\n\
Visit http://www.gluster.com/\n\n\
This product includes software developed by the\n\
-Eclipse Foundation http://eclipse.org/ \ No newline at end of file
+Eclipse Foundation http://eclipse.org/\n\
+RichClientGUI http://www.richclientgui.com/ \ No newline at end of file
diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/CreateVolumePage1.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/CreateVolumePage1.java
index ba19ef10..d7d98d24 100644
--- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/CreateVolumePage1.java
+++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/CreateVolumePage1.java
@@ -362,7 +362,6 @@ public class CreateVolumePage1 extends WizardPage {
}
addVolumeBricks();
-
return volume;
}
@@ -409,9 +408,9 @@ public class CreateVolumePage1 extends WizardPage {
VOLUME_TYPE volumeType = (VOLUME_TYPE) ((IStructuredSelection) typeComboViewer
.getSelection()).getFirstElement();
- if (volumeType == VOLUME_TYPE.DISTRIBUTED_REPLICATE && diskCount % 2 != 0) {
+ if ((volumeType == VOLUME_TYPE.DISTRIBUTED_REPLICATE || volumeType == VOLUME_TYPE.REPLICATE ) && diskCount % 2 != 0) {
setError("Mirror type volume requires bricks in multiples of two");
- } else if (volumeType == VOLUME_TYPE.DISTRIBUTED_STRIPE && diskCount % 4 != 0) {
+ } else if ((volumeType == VOLUME_TYPE.DISTRIBUTED_STRIPE || volumeType == VOLUME_TYPE.STRIPE) && diskCount % 4 != 0) {
setError("Stripe type volume requires bricks in multiples of four");
}
}
diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/CreateVolumeWizard.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/CreateVolumeWizard.java
index bfb29ee1..498723d9 100644
--- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/CreateVolumeWizard.java
+++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/CreateVolumeWizard.java
@@ -28,6 +28,7 @@ import com.gluster.storage.management.console.utils.GlusterLogger;
import com.gluster.storage.management.core.constants.CoreConstants;
import com.gluster.storage.management.core.model.Volume;
import com.gluster.storage.management.core.model.Volume.VOLUME_STATUS;
+import com.gluster.storage.management.core.model.Volume.VOLUME_TYPE;
public class CreateVolumeWizard extends Wizard {
private static final String title = "Gluster Management Console - Create Volume";
@@ -51,8 +52,17 @@ public class CreateVolumeWizard extends Wizard {
try {
volumesClient.createVolume(newVolume);
+
+ // Set proper volume type before assign to model
+ VOLUME_TYPE volumetype = newVolume.getVolumeType();
+ if (volumetype == VOLUME_TYPE.REPLICATE && newVolume.getBricks().size() > newVolume.getReplicaCount()) {
+ newVolume.setVolumeType(VOLUME_TYPE.DISTRIBUTED_REPLICATE);
+ } else if (volumetype == VOLUME_TYPE.STRIPE && newVolume.getBricks().size() > newVolume.getStripeCount()) {
+ newVolume.setVolumeType(VOLUME_TYPE.DISTRIBUTED_STRIPE);
+ }
+
handleSuccess(newVolume, volumesClient);
- } catch(Exception e) {
+ } catch (Exception e) {
String errMsg = e.getMessage();
// the error could be in to post-volume-create processing. check if this is the case.
if (volumesClient.volumeExists(newVolume.getName())) {
@@ -62,7 +72,7 @@ public class CreateVolumeWizard extends Wizard {
return false;
}
}
-
+
return true;
}
diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/VolumeSummaryView.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/VolumeSummaryView.java
index 9a456626..dfd0c669 100644
--- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/VolumeSummaryView.java
+++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/VolumeSummaryView.java
@@ -3,6 +3,7 @@ package com.gluster.storage.management.console.views;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import org.eclipse.jface.dialogs.MessageDialog;
@@ -664,7 +665,7 @@ public class VolumeSummaryView extends ViewPart {
|| volume.getVolumeType() == VOLUME_TYPE.DISTRIBUTED_REPLICATE) {
replicaCount = (double) volume.getReplicaCount();
}
- totalDiskSpace.setText("" + NumberUtil.formatNumber((getTotalDiskSpace() / 1024) / replicaCount));
+ totalDiskSpace.setText("" + NumberUtil.formatNumber(getTotalDiskSpace() / 1024));
}
private double getDiskSize(String serverName, String deviceName) {
@@ -691,16 +692,39 @@ public class VolumeSummaryView extends ViewPart {
}
private double getTotalDiskSpace() {
+ List<Double> diskSizes = getVolumeDiskSizes();
+ VOLUME_TYPE volumeType = volume.getVolumeType();
double diskSize = 0d;
+ if (volumeType == VOLUME_TYPE.DISTRIBUTE || volumeType == VOLUME_TYPE.STRIPE
+ || volumeType == VOLUME_TYPE.DISTRIBUTED_STRIPE) {
+ for (Double size : diskSizes) {
+ diskSize += size;
+ }
+ } else { // Replicate or distributed replicate
+ int replicaCount = volume.getReplicaCount();
+ if (replicaCount == 0) {
+ replicaCount = Volume.DEFAULT_REPLICA_COUNT;
+ }
+ int startIndex = 0;
+ for (int i = 0; i < (diskSizes.size() / replicaCount); i++) {
+ startIndex = i * replicaCount;
+ diskSize += Collections.min(diskSizes.subList(startIndex, startIndex + replicaCount));
+ }
+ }
+ return diskSize;
+ }
+
+ private List<Double> getVolumeDiskSizes() {
+ List<Double> diskSizes = new ArrayList<Double>();
Device device;
for (Brick brick : volume.getBricks()) {
device = modelManager.getDeviceForBrickDir(brick);
- if (device != null) { // In case of off line server, device becomes null
- diskSize += getDiskSize(brick.getServerName(), device.getName());
- }
+ diskSizes.add( (device == null) ? 0d : getDiskSize(brick.getServerName(), device.getName()) );
}
- return diskSize;
+ return diskSizes;
}
+
+
private void createDiskSpaceField(Composite section) {
Label diskSpaceLabel = toolkit.createLabel(section, "Total Disk Space (GB): ", SWT.NONE);
@@ -712,7 +736,7 @@ public class VolumeSummaryView extends ViewPart {
replicaCount = (double) Volume.DEFAULT_REPLICA_COUNT;
}
totalDiskSpace = toolkit.createLabel(section,
- "" + NumberUtil.formatNumber((getTotalDiskSpace() / 1024) / replicaCount), SWT.NONE);
+ "" + NumberUtil.formatNumber(getTotalDiskSpace() / 1024), SWT.NONE);
toolkit.createLabel(section, "", SWT.NONE); // dummy
}
diff --git a/src/com.gluster.storage.management.gateway/WebContent/WEB-INF/web.xml b/src/com.gluster.storage.management.gateway/WebContent/WEB-INF/web.xml
index 631788ff..54872639 100644
--- a/src/com.gluster.storage.management.gateway/WebContent/WEB-INF/web.xml
+++ b/src/com.gluster.storage.management.gateway/WebContent/WEB-INF/web.xml
@@ -37,7 +37,7 @@
</servlet>
<servlet-mapping>
<servlet-name>gluster-resources-1.0</servlet-name>
- <url-pattern>/1.0/*</url-pattern>
+ <url-pattern>/1.0.0/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>JnlpDownloadServlet</servlet-name>