diff options
| author | Selvasundaram <selvam@gluster.com> | 2011-07-21 18:10:07 +0530 |
|---|---|---|
| committer | Selvasundaram <selvam@gluster.com> | 2011-07-21 18:10:07 +0530 |
| commit | 3a662d1e6e3bb481434ca349a11fdd8108d9e4b8 (patch) | |
| tree | df9c5447b11d226943d5af90a7814386c197be67 /src | |
| parent | e31f68942ec86023f9cc9df428b170b6e965fe90 (diff) | |
| parent | 9f494cc99e20d39543005286353752e3fe613819 (diff) | |
Merge branch 'master' of github.com:gluster/console
Diffstat (limited to 'src')
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()); } } |
