summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.console
diff options
context:
space:
mode:
authorSelvasundaram <selvam@gluster.com>2011-08-05 12:39:40 +0530
committerSelvasundaram <selvam@gluster.com>2011-08-07 16:01:31 +0530
commitc0a83f26fa8ab983fa3528f4b55f02f87ed4b7e0 (patch)
tree7f85c62e734ffe7114503c7d579a1a8f129dc6b5 /src/com.gluster.storage.management.console
parent21f17bedf2419045d373d318b791af09a9a64196 (diff)
Volume cifs service integration
Diffstat (limited to 'src/com.gluster.storage.management.console')
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StartVolumeAction.java4
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StopVolumeAction.java4
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/VolumeSummaryView.java189
3 files changed, 115 insertions, 82 deletions
diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StartVolumeAction.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StartVolumeAction.java
index 588dfdd6..1fa63269 100644
--- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StartVolumeAction.java
+++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StartVolumeAction.java
@@ -72,6 +72,10 @@ public class StartVolumeAction extends AbstractActionDelegate {
startedVolumes.add(volume.getName());
}catch (Exception e) {
failedVolumes.add(volume.getName());
+ // If any post volume start activity failed, update the volume status
+ if (vc.getVolume(volume.getName()).getStatus() == VOLUME_STATUS.ONLINE) {
+ modelManager.updateVolumeStatus(volume, VOLUME_STATUS.ONLINE);
+ }
errorMessage += e.getMessage();
}
}
diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StopVolumeAction.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StopVolumeAction.java
index bcfadcc5..bf86f2ec 100644
--- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StopVolumeAction.java
+++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StopVolumeAction.java
@@ -84,6 +84,10 @@ public class StopVolumeAction extends AbstractActionDelegate {
stoppedVolumes.add(volume.getName());
} catch (Exception e) {
failedVolumes.add(volume.getName());
+ // If any post volume stop activity failed, update the volume status
+ if (vc.getVolume(volume.getName()).getStatus() == VOLUME_STATUS.OFFLINE) {
+ modelManager.updateVolumeStatus(volume, VOLUME_STATUS.OFFLINE);
+ }
errorMessage += e.getMessage();
}
}
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 92b4b22e..73cd14a6 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
@@ -65,7 +65,7 @@ public class VolumeSummaryView extends ViewPart {
private CLabel lblStatusValue;
private DefaultClusterListener volumeChangedListener;
private Hyperlink changeLink;
- private Hyperlink CifsChangeLink;
+ private Hyperlink cifsChangeLink;
private Text accessControlText;
private Text cifsUsersText;
private ControlDecoration errDecoration;
@@ -270,29 +270,17 @@ public class VolumeSummaryView extends ViewPart {
}
private void createCifsField(Composite section) {
- GridData data = new GridData();
- data.heightHint = 0;
-
cifsLabel = toolkit.createLabel(section, "CIFS: ", SWT.NONE);
- cifsLabel.setLayoutData(data);
- cifsLabel.setVisible(false);
-
cifsUsersText = toolkit.createText(section, volume.getAccessControlList(), SWT.BORDER);
populateCifsUsersText();
addKeyListenerForCifsUser();
- cifsUsersText.setLayoutData(createDefaultLayoutData());
- cifsUsersText.setEnabled(true);
- cifsUsersText.setLayoutData(data);
- cifsUsersText.setVisible(false);
cifsUpdateLinkComposite = toolkit.createComposite(section, SWT.NONE);
- cifsUpdateLinkComposite.setVisible(false);
- cifsUpdateLinkComposite.setLayoutData(data);
cifsUpdateLinkComposite.setLayout(new FillLayout());
+ cifsUpdateLinkComposite.setVisible(volume.isCifsEnable());
createChangeLinkForCifs(cifsUpdateLinkComposite);
-
- // error decoration used while validating the cifs users text
+ renderCifsUsers(cifsCheckbox.getSelection());
errCifsDecoration = guiHelper.createErrorDecoration(cifsUsersText);
errCifsDecoration.hide();
}
@@ -381,18 +369,16 @@ public class VolumeSummaryView extends ViewPart {
}
private void createChangeLinkForCifs(Composite section) {
- CifsChangeLink = toolkit.createHyperlink(section, "Update", SWT.NONE);
- CifsChangeLink.addHyperlinkListener(new HyperlinkAdapter() {
+ cifsChangeLink = toolkit.createHyperlink(section, "change", SWT.NONE);
+ cifsChangeLink.addHyperlinkListener(new HyperlinkAdapter() {
private void finishEdit() {
saveCifsConfiguration();
}
private void startEdit() {
- cifsUsersText.setEnabled(true);
- cifsUsersText.setFocus();
+ enableCifsUsersControls(true);
cifsUsersText.selectAll();
- CifsChangeLink.setText("update");
}
@Override
@@ -408,47 +394,47 @@ public class VolumeSummaryView extends ViewPart {
});
}
+
private void saveCifsConfiguration() {
- final String cifsUsers = cifsUsersText.getText();
-
guiHelper.setStatusMessage("Setting Cifs Configuration...");
parent.update();
-
- List<String> userList = volume.getCifsUsers();
- String configuredUsers = "";
- if (userList != null) {
- configuredUsers = StringUtil.collectionToString(userList, ",");
- }
- if (cifsUsersText.equals(configuredUsers)) {
- cifsUsersText.setEnabled(false);
- CifsChangeLink.setText("change");
- // There is no change in the users list
- } else if(isvalidCifsUser()) {
+ final String cifsUsers = cifsUsersText.getText().trim();
+ List<String> userList = volume.getCifsUsers();
+ String configuredUsers = (userList != null) ? StringUtil.collectionToString(userList, ",") : "";
+
+ // To check if no changes in the users list
+ if (! isvalidCifsUser()) {
+ MessageDialog.openError(Display.getDefault().getActiveShell(), "Cifs Configuration",
+ "Please enter cifs user name ");
+ enableCifsUsersControls(true);
+ validateCifsUsers();
+ } else if (cifsUsers.equals(configuredUsers)) { // Nothing to do.
+ enableCifsUsersControls(false);
+ } else {
BusyIndicator.showWhile(Display.getDefault(), new Runnable() {
@Override
public void run() {
try {
new VolumesClient().setCifsConfig(volume.getName(), cifsCheckbox.getSelection(), cifsUsers);
- cifsUsersText.setEnabled(false);
- CifsChangeLink.setText("change");
-
+ enableCifsUsersControls(false);
GlusterDataModelManager.getInstance().setCifsConfig(volume, cifsCheckbox.getSelection(),
Arrays.asList(cifsUsers.split(",")));
} catch (Exception e) {
- MessageDialog.openError(Display.getDefault().getActiveShell(), "Cifs Configuration", e.getMessage());
+ MessageDialog.openError(Display.getDefault().getActiveShell(), "Cifs Configuration",
+ e.getMessage());
+ cifsCheckbox.setSelection(volume.isCifsEnable());
populateCifsUsersText();
}
}
});
- } else {
- MessageDialog.openError(Display.getDefault().getActiveShell(), "Cifs Configuration", "Please enter cifs user name ");
- cifsUsersText.setFocus();
- }
+ }
guiHelper.clearStatusMessage();
parent.update();
}
+
+
private void saveNFSOption() {
guiHelper.setStatusMessage("Setting NFS option...");
parent.update();
@@ -508,24 +494,25 @@ public class VolumeSummaryView extends ViewPart {
case SWT.ESC:
// Reset to default
populateCifsUsersText();
+ enableCifsUsersControls(false);
+ form.reflow(true);
break;
case 13:
// User has pressed enter. Save the new value
saveCifsConfiguration();
break;
}
- validateCifsUsers();
+ // validateCifsUsers();
}
});
}
private void populateCifsUsersText() {
List<String> userList = volume.getCifsUsers();
- if (userList == null) {
- cifsUsersText.setText("");
+ if (volume.isCifsEnable() && userList != null) {
+ cifsUsersText.setText(StringUtil.collectionToString(userList, ","));
} else {
- String users = StringUtil.collectionToString(userList, ",");
- cifsUsersText.setText(users);
+ cifsUsersText.setText("");
}
}
@@ -548,54 +535,92 @@ public class VolumeSummaryView extends ViewPart {
// CIFS checkbox
cifsCheckbox = createCheckbox(nasProtocolsComposite, "CIFS", volume.isCifsEnable(), true);
- cifsCheckboxListner(cifsCheckbox);
-
+ createCifsCheckboxListner(cifsCheckbox);
+
toolkit.createLabel(section, "", SWT.NONE); // dummy
}
- private void cifsCheckboxListner(final Button cifsCheckbox) {
+ private void createCifsCheckboxListner(final Button cifsCheckbox) {
cifsCheckbox.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
if (cifsCheckbox.getSelection()) {
- GridData data = new GridData();
- data.heightHint = 20;
- data.widthHint = 100;
-
- cifsLabel.setVisible(true);
- cifsLabel.setLayoutData(data);
-
- GridData data1 = new GridData();
- data1.heightHint = 20;
- data1.widthHint = 300;
- cifsUsersText.setVisible(true);
- cifsUsersText.setLayoutData(data1);
-
- GridData data2 = new GridData();
- data2.heightHint = 25;
- data2.widthHint = 75;
- cifsUpdateLinkComposite.setVisible(true);
- cifsUpdateLinkComposite.setLayoutData(data2);
- form.reflow(true);
+ // need to enable cifs
+ // TODO: Open the text box (empty and enabled),
+ // the hyperlink next to the textbox should have label "update"
+ // when user clicks on that hyperlink,
+ // saveCifsConfiguration should be called
+ // Also, if user presses the "ESC" key,
+ // return to the previous state of checkbox and hide the textbox + hyperlink
+ showCifsUsersControls(true);
+ enableCifsUsersControls(true);
+ // saveCifsConfiguration();
} else {
- GridData data = new GridData();
- data.heightHint = 0;
-
- cifsUsersText.setVisible(false);
- cifsUsersText.setLayoutData(data);
-
- cifsLabel.setVisible(false);
- cifsLabel.setLayoutData(data);
-
- cifsUpdateLinkComposite.setVisible(false);
- cifsUpdateLinkComposite.setLayoutData(data);
-
- form.reflow(true);
+ // need to disable cifs
+ // TODO: hide the textbox and the link AFTER disabling cifs
+ showCifsUsersControls(false);
+ enableCifsUsersControls(false);
}
+ populateCifsUsersText();
+ form.reflow(true);
}
});
}
+
+ private void renderCifsUsers(Boolean cifsSelection) {
+ if (cifsSelection) {
+ enableCifsUsersControls(false);
+ showCifsUsersControls(true);
+ } else {
+ showCifsUsersControls(false);
+ }
+ }
+
+ private void showCifsUsersControls(Boolean visible) {
+ if ( visible) {
+ GridData data = new GridData();
+ data.heightHint = 20;
+ data.widthHint = 100;
+ cifsLabel.setLayoutData(data);
+
+ GridData data1 = new GridData();
+ data1.heightHint = 20;
+ data1.widthHint = 300;
+
+ cifsUsersText.setLayoutData(data1);
+
+ GridData data2 = new GridData();
+ data2.heightHint = 25;
+ data2.widthHint = 75;
+ cifsUpdateLinkComposite.setLayoutData(data2);
+ } else {
+ GridData data = new GridData();
+ data.heightHint = 0;
+ cifsLabel.setLayoutData(data);
+ cifsUsersText.setLayoutData(data);
+ cifsUpdateLinkComposite.setLayoutData(data);
+ }
+
+ cifsLabel.setVisible(visible);
+ cifsUsersText.setVisible(visible);
+ cifsUpdateLinkComposite.setVisible(visible);
+ form.reflow(true);
+ }
+
+ private void enableCifsUsersControls(Boolean enable) {
+ cifsUsersText.setEnabled(enable);
+ cifsChangeLink.setText((enable) ? "update" : "change");
+ if (enable) {
+ cifsUsersText.setFocus();
+ validateCifsUsers();
+ } else {
+ if (errCifsDecoration != null) {
+ errCifsDecoration.hide();
+ }
+ }
+ }
+
private Button createCheckbox(Composite parent, String label, boolean checked, boolean enabled) {
final Button checkBox = toolkit.createButton(parent, label, SWT.CHECK);
checkBox.setSelection(checked);
@@ -609,7 +634,6 @@ public class VolumeSummaryView extends ViewPart {
nfsCheckBox.setSelection(isNFSExported);
}
-
private void updateBrickChanges(Volume volume) {
numberOfBricks.setText("" + volume.getNumOfBricks());
totalDiskSpace.setText("" + NumberUtil.formatNumber((getTotalDiskSpace() / 1024)));
@@ -745,6 +769,7 @@ public class VolumeSummaryView extends ViewPart {
return true;
}
}
+ validateCifsUsers();
return true;
}
}