summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDhandapani <dhandapani@gluster.com>2011-07-20 20:25:28 +0530
committerDhandapani <dhandapani@gluster.com>2011-07-20 20:25:28 +0530
commit8a7b9f6f156bd9197c6ddccdcb9fa62ed5beb7cd (patch)
tree8f8eadaef56769b65c44759a1b115898c0ebeb5e /src
parentc751399f60942f916753e429b97aa9ae600f40c9 (diff)
parent01a08c0c3aeba21df5451de8243ced32a6b5b694 (diff)
Merge branch 'add-server'
Conflicts: src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/ServerAdditionAction.java src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/ServerAdditionDialog.java
Diffstat (limited to 'src')
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/ServerAdditionAction.java8
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/ServerAdditionDialog.java73
2 files changed, 45 insertions, 36 deletions
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/ServerAdditionAction.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/ServerAdditionAction.java
index d94d7277..410b7bea 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/ServerAdditionAction.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/ServerAdditionAction.java
@@ -1,5 +1,6 @@
package com.gluster.storage.management.gui.actions;
+import org.apache.log4j.Logger;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.IWorkbenchWindow;
@@ -7,9 +8,10 @@ import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import com.gluster.storage.management.gui.dialogs.ChangePasswordDialog;
import com.gluster.storage.management.gui.dialogs.ServerAdditionDialog;
+import com.gluster.storage.management.gui.views.pages.AbstractDisksPage;
public class ServerAdditionAction extends AbstractActionDelegate {
-
+ private static final Logger logger = Logger.getLogger(ServerAdditionAction.class);
@Override
public void dispose() {
// TODO Auto-generated method stub
@@ -24,11 +26,9 @@ public class ServerAdditionAction extends AbstractActionDelegate {
ServerAdditionDialog dialog = new ServerAdditionDialog(getShell());
dialog.open();
} catch (Exception e) {
+ logger.error("Error in Manual server addition", e);
e.printStackTrace();
}
-
}
-
-
}
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/ServerAdditionDialog.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/ServerAdditionDialog.java
index ca9a0058..dd8e0fd1 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/ServerAdditionDialog.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/ServerAdditionDialog.java
@@ -20,14 +20,17 @@
*/
package com.gluster.storage.management.gui.dialogs;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.core.databinding.UpdateValueStrategy;
import org.eclipse.core.databinding.beans.PojoProperties;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.databinding.swt.SWTObservables;
import org.eclipse.jface.databinding.swt.WidgetProperties;
import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.fieldassist.ControlDecoration;
@@ -46,12 +49,11 @@ import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
+import com.gluster.storage.management.client.GlusterDataModelManager;
import com.gluster.storage.management.client.GlusterServersClient;
-import com.gluster.storage.management.client.UsersClient;
-import com.gluster.storage.management.core.constants.CoreConstants;
-import com.gluster.storage.management.core.model.ConnectionDetails;
+import com.gluster.storage.management.core.model.GlusterServer;
import com.gluster.storage.management.core.model.Server;
-import com.gluster.storage.management.gui.IImageKeys;
+import com.gluster.storage.management.core.model.Volume;
import com.gluster.storage.management.gui.utils.GUIHelper;
import com.gluster.storage.management.gui.validators.StringRequiredValidator;
@@ -61,6 +63,8 @@ public class ServerAdditionDialog extends Dialog {
private Button addButton;
private final GUIHelper guiHelper = GUIHelper.getInstance();
+ private ControlDecoration errDecoration;
+
private Composite composite;
public ServerAdditionDialog(Shell shell) {
@@ -125,14 +129,12 @@ public class ServerAdditionDialog extends Dialog {
@Override
protected Control createDialogArea(Composite parent) {
-// parent.setBackgroundImage(guiHelper.getImage(IImageKeys.DIALOG_SPLASH_IMAGE));
- parent.setBackgroundMode(SWT.INHERIT_FORCE);
-
composite = (Composite) super.createDialogArea(parent);
configureDialogLayout(composite);
createLabel(composite, "Server Name:");
serverName = createServerNameText(composite);
+ errDecoration = guiHelper.createErrorDecoration(serverName);
createListeners();
@@ -141,7 +143,7 @@ public class ServerAdditionDialog extends Dialog {
private void createListeners() {
ModifyListener listener = new ModifyListener() {
-
+
@Override
public void modifyText(ModifyEvent e) {
updateButtonStatus();
@@ -152,12 +154,20 @@ public class ServerAdditionDialog extends Dialog {
}
private void updateButtonStatus() {
- if(serverName.getText().isEmpty()) {
+ addButton.setEnabled(true);
+ errDecoration.hide();
+
+ if(!serverExists(serverName.getText())) {
addButton.setEnabled(false);
- return;
+ errDecoration.setDescriptionText("Server name already exists.");
+ errDecoration.show();
}
- addButton.setEnabled(true);
+ if(serverName.getText().isEmpty()) {
+ addButton.setEnabled(false);
+ errDecoration.setDescriptionText("Please enter server name!");
+ errDecoration.show();
+ }
}
@Override
@@ -165,31 +175,30 @@ public class ServerAdditionDialog extends Dialog {
addButton = createButton(parent, IDialogConstants.OK_ID, "&Add Server", true);
addButton.setEnabled(false);
createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-
- setupDataBinding();
}
-
- private void setupDataBinding() {
- DataBindingContext dataBindingContext = new DataBindingContext(SWTObservables.getRealm(Display.getCurrent()));
- UpdateValueStrategy serverNameBindingStrategy = new UpdateValueStrategy(UpdateValueStrategy.POLICY_UPDATE);
-
- // The Validator shows error decoration and disables OK button on
- // validation failure
- serverNameBindingStrategy.setBeforeSetValidator(new StringRequiredValidator("Please enter server name!",
- guiHelper.createErrorDecoration(serverName), null));
-
- dataBindingContext.bindValue(WidgetProperties.text(SWT.Modify).observe(serverName),
- PojoProperties.value("serverName").observe(serverName.getText()), serverNameBindingStrategy,
- serverNameBindingStrategy);
-
+
+ public Boolean serverExists(String serverName) {
+ List<GlusterServer> servers = GlusterDataModelManager.getInstance().getModel().getCluster().getServers();
+ for (GlusterServer server : servers) {
+ if (server.getName().equals(serverName)) {
+ return false;
+ }
+ }
+ return true;
}
protected void okPressed() {
GlusterServersClient serversClient = new GlusterServersClient();
+ GlusterDataModelManager modelManager = GlusterDataModelManager.getInstance();
+
try {
- serversClient.addServer(serverName.getText());
-
- MessageDialog.openInformation(getShell(), "Add Server", "Server added successfully!");
+ String serverNameText = serverName.getText();
+ serversClient.addServer(serverNameText);
+
+ modelManager.addGlusterServer(serversClient.getGlusterServer(serverNameText));
+
+ MessageDialog
+ .openInformation(getShell(), "Add Server", "Server " + serverNameText + " added successfully!");
} catch (Exception e) {
MessageDialog.openError(getShell(), "Server addition Failed", e.getMessage());
setReturnCode(RETURN_CODE_ERROR);