summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSelvasundaram <selvam@gluster.com>2011-07-21 18:10:07 +0530
committerSelvasundaram <selvam@gluster.com>2011-07-21 18:10:07 +0530
commit3a662d1e6e3bb481434ca349a11fdd8108d9e4b8 (patch)
treedf9c5447b11d226943d5af90a7814386c197be67 /src
parente31f68942ec86023f9cc9df428b170b6e965fe90 (diff)
parent9f494cc99e20d39543005286353752e3fe613819 (diff)
Merge branch 'master' of github.com:gluster/console
Diffstat (limited to 'src')
-rw-r--r--src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Disk.java44
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/CreateVolumePage1.java28
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java29
-rwxr-xr-xsrc/com.gluster.storage.management.server.scripts/src/get_brick_status.py15
-rwxr-xr-xsrc/com.gluster.storage.management.server.scripts/src/get_server_status.py5
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/VolumesResource.java8
6 files changed, 102 insertions, 27 deletions
diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Disk.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Disk.java
index d6d3f7af..d464ee9e 100644
--- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Disk.java
+++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Disk.java
@@ -146,4 +146,48 @@ public class Disk extends Device {
setSpace(newDisk.getSpace());
setSpaceInUse(newDisk.getSpaceInUse());
}
+
+ @Override
+ public boolean isReady() {
+ if (hasPartitions()) {
+ for (Partition partition : getPartitions()) {
+ if (partition.isReady()) {
+ return true;
+ }
+ }
+ return false;
+ } else {
+ return super.isReady();
+ }
+ }
+
+ @Override
+ public Double getSpace() {
+ Double space = 0d;
+ if (hasPartitions()) {
+ for (Partition partition : getPartitions()) {
+ if (partition.isReady()) {
+ space += partition.getSpace();
+ }
+ }
+ return space;
+ } else {
+ return super.getSpace();
+ }
+ }
+
+ @Override
+ public Double getSpaceInUse() {
+ Double spaceInUse = 0d;
+ if (hasPartitions()) {
+ for (Partition partition : getPartitions()) {
+ if (partition.isReady()) {
+ spaceInUse += partition.getSpaceInUse();
+ }
+ }
+ return spaceInUse;
+ } else {
+ return super.getSpaceInUse();
+ }
+ }
} \ No newline at end of file
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/CreateVolumePage1.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/CreateVolumePage1.java
index b4672095..26cb0c2f 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/CreateVolumePage1.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/CreateVolumePage1.java
@@ -65,6 +65,7 @@ public class CreateVolumePage1 extends WizardPage {
private Text txtAccessControl;
private Volume volume = new Volume();
private Button btnNfs;
+ private Button btnCIFS;
private Button btnStartVolume;
private Link linkCustomize;
private List<Device> allDevices;
@@ -116,6 +117,9 @@ public class CreateVolumePage1 extends WizardPage {
createNasProtocolLabel(container);
createNasProtocolCheckboxes(container);
+ createCifsUserLabel(container);
+ createCifsUserText(container);
+
createAccessControlLabel(container);
createAccessControlText(container);
@@ -166,6 +170,20 @@ public class CreateVolumePage1 extends WizardPage {
lblAccessControl.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
lblAccessControl.setText("Access Control: ");
}
+
+ private void createCifsUserLabel(Composite container) {
+ Label lblAccessControl = new Label(container, SWT.NONE);
+ lblAccessControl.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+ lblAccessControl.setText("CIFS Users: ");
+ }
+
+ private void createCifsUserText(Composite container) {
+ txtAccessControl = new Text(container, SWT.BORDER);
+ txtAccessControl.setText("testuser1,testuser2,testuser3");
+ GridData accessControlData = new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1);
+ accessControlData.widthHint = 300;
+ txtAccessControl.setLayoutData(accessControlData);
+ }
private void createNasProtocolCheckboxes(Composite container) {
Button btnGluster = new Button(container, SWT.CHECK);
@@ -175,15 +193,21 @@ public class CreateVolumePage1 extends WizardPage {
createEmptyLabel(container);
btnNfs = new Button(container, SWT.CHECK);
- btnNfs.setEnabled(false);
+ btnNfs.setEnabled(true);
btnNfs.setSelection(true);
btnNfs.setText("NFS");
+ createEmptyLabel(container);
+
+ btnCIFS = new Button(container, SWT.CHECK);
+ btnCIFS.setEnabled(true);
+ btnCIFS.setSelection(true);
+ btnCIFS.setText("CIFS");
}
private void createNasProtocolLabel(Composite container) {
Label lblNasProtocol = new Label(container, SWT.RIGHT);
lblNasProtocol.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
- lblNasProtocol.setText("NAS Protocol: ");
+ lblNasProtocol.setText("Access Protocol: ");
}
private void createDisksCustomizeLink(Composite container) {
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java
index 37d1ef3e..d55088b0 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java
@@ -4,7 +4,6 @@ import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
-import java.util.Map.Entry;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.fieldassist.ControlDecoration;
@@ -39,10 +38,9 @@ import com.gluster.storage.management.core.model.Cluster;
import com.gluster.storage.management.core.model.DefaultClusterListener;
import com.gluster.storage.management.core.model.Disk;
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.GlusterServer;
import com.gluster.storage.management.core.model.GlusterServer.SERVER_STATUS;
-import com.gluster.storage.management.core.model.Status;
+import com.gluster.storage.management.core.model.Partition;
import com.gluster.storage.management.core.model.Volume;
import com.gluster.storage.management.core.model.Volume.NAS_PROTOCOL;
import com.gluster.storage.management.core.model.Volume.VOLUME_TYPE;
@@ -350,22 +348,23 @@ public class VolumeSummaryView extends ViewPart {
}
private void createNASProtocolField(Composite section) {
- toolkit.createLabel(section, "NAS Protocols: ", SWT.NONE);
+ toolkit.createLabel(section, "Access Protocols: ", SWT.NONE);
Composite nasProtocolsComposite = toolkit.createComposite(section);
nasProtocolsComposite.setLayout(new FillLayout());
- createCheckbox(nasProtocolsComposite, "Gluster", true);
+ createCheckbox(nasProtocolsComposite, "Gluster", true, false);
final Button nfsCheckBox = createCheckbox(nasProtocolsComposite, "NFS",
- volume.getNASProtocols().contains(NAS_PROTOCOL.NFS));
+ volume.getNASProtocols().contains(NAS_PROTOCOL.NFS), true);
+ createCheckbox(nasProtocolsComposite, "CIFS", false, true);
toolkit.createLabel(section, "", SWT.NONE); // dummy
// createChangeLinkForNASProtocol(section, nfsCheckBox);
}
- private Button createCheckbox(Composite parent, String label, boolean selected) {
+ private Button createCheckbox(Composite parent, String label, boolean selected, boolean enabled) {
final Button checkBox = toolkit.createButton(parent, label, SWT.CHECK);
- checkBox.setEnabled(false);
+ checkBox.setEnabled(enabled);
checkBox.setSelection(selected);
return checkBox;
}
@@ -403,13 +402,23 @@ public class VolumeSummaryView extends ViewPart {
});
}
- private double getDiskSize(String serverName, String diskName) {
+ private double getDiskSize(String serverName, String deviceName) {
double diskSize = 0;
GlusterServer server = cluster.getServer(serverName);
if (server.getStatus() == SERVER_STATUS.ONLINE) {
for (Disk disk : server.getDisks()) {
- if (disk.getName().equals(diskName)) {
+ if (disk.getName().equals(deviceName)) {
diskSize = disk.getSpace();
+ break;
+ }
+
+ if (disk.hasPartitions()) {
+ for (Partition partition : disk.getPartitions()) {
+ if (partition.getName().equals(deviceName)) {
+ diskSize = partition.getSpace();
+ break;
+ }
+ }
}
}
}
diff --git a/src/com.gluster.storage.management.server.scripts/src/get_brick_status.py b/src/com.gluster.storage.management.server.scripts/src/get_brick_status.py
index 8d827bd2..91622f1e 100755
--- a/src/com.gluster.storage.management.server.scripts/src/get_brick_status.py
+++ b/src/com.gluster.storage.management.server.scripts/src/get_brick_status.py
@@ -6,7 +6,6 @@
import os
import sys
import Utils
-from XmlHandler import ResponseXml
def main():
if len(sys.argv) != 3:
@@ -17,28 +16,24 @@ def main():
brickName = sys.argv[2]
pidFile = "/etc/glusterd/vols/%s/run/%s.pid" % (volumeName, brickName.replace(":", "-").replace("/", "-"))
- responseDom = ResponseXml()
- responseDom.appendTagRoute("volumeName", volumeName)
- responseDom.appendTagRoute("brickName", brickName)
if not os.path.exists(pidFile):
- responseDom.appendTagRoute("brickStatus", "OFFLINE")
+ print "OFFLINE"
else:
try:
fp = open(pidFile)
pidString = fp.readline()
fp.close()
os.getpgid(int(pidString))
- responseDom.appendTagRoute("brickStatus", "ONLINE")
+ print "ONLINE"
except IOError, e:
Utils.log("failed to open file %s: %s" % (pidFile, str(e)))
- responseDom.appendTagRoute("brickStatus", "UNKNOWN")
+ print "UNKNOWN"
except ValueError, e:
Utils.log("invalid pid %s in file %s: %s" % (pidString, pidFile, str(e)))
- responseDom.appendTagRoute("brickStatus", "UNKNOWN")
+ print "UNKNOWN"
except OSError, e:
#Utils.log("failed to get process detail of pid %s: %s" % (pidString, str(e)))
- responseDom.appendTagRoute("brickStatus", "OFFLINE")
- print responseDom.toxml()
+ print "OFFLINE"
sys.exit(0)
if __name__ == "__main__":
diff --git a/src/com.gluster.storage.management.server.scripts/src/get_server_status.py b/src/com.gluster.storage.management.server.scripts/src/get_server_status.py
index 4e089b4b..99432a72 100755
--- a/src/com.gluster.storage.management.server.scripts/src/get_server_status.py
+++ b/src/com.gluster.storage.management.server.scripts/src/get_server_status.py
@@ -6,7 +6,6 @@
import os
import sys
import Utils
-from XmlHandler import ResponseXml
def main():
if len(sys.argv) != 1:
@@ -15,9 +14,9 @@ def main():
responseDom = ResponseXml()
if Utils.runCommand("pidof glusterd") == 0:
- responseDom.appendTagRoute("serverStatus", "ONLINE")
+ print "ONLINE"
else:
- responseDom.appendTagRoute("serverStatus", "OFFLINE")
+ print "OFFLINE"
print responseDom.toxml()
sys.exit(0)
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/VolumesResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/VolumesResource.java
index a00ed974..fb3923fc 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/VolumesResource.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/VolumesResource.java
@@ -475,15 +475,19 @@ public class VolumesResource extends AbstractResource {
}
public void removeBricks(String clusterName, String volumeName, List<String> brickList, GlusterServer onlineServer) {
+ Status status;
try {
- glusterUtil.removeBricks(volumeName, brickList, onlineServer.getName());
+ status = glusterUtil.removeBricks(volumeName, brickList, onlineServer.getName());
} catch (ConnectionException e) {
// online server has gone offline! try with a different one.
onlineServer = clusterService.getNewOnlineServer(clusterName);
if (onlineServer == null) {
throw new GlusterRuntimeException("No online servers found in cluster [" + clusterName + "]");
}
- glusterUtil.removeBricks(volumeName, brickList, onlineServer.getName());
+ status = glusterUtil.removeBricks(volumeName, brickList, onlineServer.getName());
+ }
+ if (!status.isSuccess()) {
+ throw new GlusterRuntimeException(status.toString());
}
}