summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorShireesh Anjal <anjalshireesh@gmail.com>2011-07-20 07:01:00 -0700
committerShireesh Anjal <anjalshireesh@gmail.com>2011-07-20 07:01:00 -0700
commit467d023dfbccc7ff10c5fe29fe7992e6c798875a (patch)
tree1ce07d062988e69b67a951cbefda354d4c658312 /src
parentc41e8eced1df90d1c7dd47f1035d151a6429136c (diff)
parentc751399f60942f916753e429b97aa9ae600f40c9 (diff)
Merge pull request #126 from Dhandapani/master
Initialize disk task issue fix
Diffstat (limited to 'src')
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java4
-rw-r--r--src/com.gluster.storage.management.gui/plugin.xml98
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java2
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/ServerAdditionAction.java34
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/InitializeDiskTypeSelection.java2
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/ServerAdditionDialog.java199
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java10
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/TasksResource.java4
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/InitializeDiskTask.java1
9 files changed, 346 insertions, 8 deletions
diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java
index 0ee933f0..8be5beac 100644
--- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java
+++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java
@@ -69,9 +69,9 @@ public class GlusterServersClient extends AbstractClient {
return server;
}
- public void addServer(Server discoveredServer) {
+ public void addServer(String serverName) {
Form form = new Form();
- form.add(RESTConstants.FORM_PARAM_SERVER_NAME, discoveredServer.getName());
+ form.add(RESTConstants.FORM_PARAM_SERVER_NAME, serverName);
postRequest(form);
}
diff --git a/src/com.gluster.storage.management.gui/plugin.xml b/src/com.gluster.storage.management.gui/plugin.xml
index 1850c93e..3c87ffe1 100644
--- a/src/com.gluster.storage.management.gui/plugin.xml
+++ b/src/com.gluster.storage.management.gui/plugin.xml
@@ -462,6 +462,20 @@
toolbarPath="Normal"
tooltip="Create a new Volume">
</action>
+ <action
+ allowLabelUpdate="false"
+ class="com.gluster.storage.management.gui.actions.ServerAdditionAction"
+ definitionId="com.gluster.storage.management.gui.commands.ServerAddition"
+ id="com.gluster.storage.management.gui.actions.ServerAdditionAction"
+ label="Add Server"
+ menubarPath="com.gluster.storage.management.gui.actionsets.volumes/volumes"
+ mode="FORCE_TEXT"
+ pulldown="false"
+ retarget="false"
+ state="false"
+ style="push"
+ tooltip="Manual Server Addition">
+ </action>
<menu
id="com.gluster.storage.management.gui.actionsets.volumes"
label="&amp;Gluster"
@@ -631,6 +645,20 @@
toolbarPath="Normal"
tooltip="Create a new Volume">
</action>
+ <action
+ allowLabelUpdate="false"
+ class="com.gluster.storage.management.gui.actions.ServerAdditionAction"
+ definitionId="com.gluster.storage.management.gui.commands.ServerAddition"
+ id="com.gluster.storage.management.gui.actions.ServerAdditionAction"
+ label="Add Server"
+ menubarPath="com.gluster.storage.management.gui.menu.volume/volume"
+ mode="FORCE_TEXT"
+ pulldown="false"
+ retarget="false"
+ state="false"
+ style="push"
+ tooltip="Manual Server Addition">
+ </action>
<menu
id="com.gluster.storage.management.gui.menu.volume"
label="&amp;Gluster"
@@ -675,6 +703,20 @@
toolbarPath="Normal"
tooltip="Create a new Volume">
</action>
+ <action
+ allowLabelUpdate="false"
+ class="com.gluster.storage.management.gui.actions.ServerAdditionAction"
+ definitionId="com.gluster.storage.management.gui.commands.ServerAddition"
+ id="com.gluster.storage.management.gui.actions.ServerAdditionAction"
+ label="Add Server"
+ menubarPath="com.gluster.storage.management.gui.menu.servers/servers"
+ mode="FORCE_TEXT"
+ pulldown="false"
+ retarget="false"
+ state="false"
+ style="push"
+ tooltip="Manual Server Addition">
+ </action>
<menu
id="com.gluster.storage.management.gui.menu.servers"
label="&amp;Gluster"
@@ -719,6 +761,20 @@
toolbarPath="Normal"
tooltip="Create a new Volume">
</action>
+ <action
+ allowLabelUpdate="false"
+ class="com.gluster.storage.management.gui.actions.ServerAdditionAction"
+ definitionId="com.gluster.storage.management.gui.commands.ServerAddition"
+ id="com.gluster.storage.management.gui.actions.ServerAdditionAction"
+ label="Add Server"
+ menubarPath="com.gluster.storage.management.gui.menu.glusterserver/glusterserver"
+ mode="FORCE_TEXT"
+ pulldown="false"
+ retarget="false"
+ state="false"
+ style="push"
+ tooltip="Manual Server Addition">
+ </action>
<menu
id="com.gluster.storage.management.gui.menu.glusterserver"
label="&amp;Gluster"
@@ -763,6 +819,20 @@
toolbarPath="Normal"
tooltip="Create a new Volume">
</action>
+ <action
+ allowLabelUpdate="false"
+ class="com.gluster.storage.management.gui.actions.ServerAdditionAction"
+ definitionId="com.gluster.storage.management.gui.commands.ServerAddition"
+ id="com.gluster.storage.management.gui.actions.ServerAdditionAction"
+ label="Add Server"
+ menubarPath="com.gluster.storage.management.gui.menu.discoveredservers/discoveredservers"
+ mode="FORCE_TEXT"
+ pulldown="false"
+ retarget="false"
+ state="false"
+ style="push"
+ tooltip="Manual Server Addition">
+ </action>
<menu
id="com.gluster.storage.management.gui.menu.discoveredservers"
label="&amp;Gluster"
@@ -807,6 +877,20 @@
toolbarPath="Normal"
tooltip="Create a new Volume">
</action>
+ <action
+ allowLabelUpdate="false"
+ class="com.gluster.storage.management.gui.actions.ServerAdditionAction"
+ definitionId="com.gluster.storage.management.gui.commands.ServerAddition"
+ id="com.gluster.storage.management.gui.actions.ServerAdditionAction"
+ label="Add Server"
+ menubarPath="com.gluster.storage.management.gui.menu.discoveredserver/discoveredserver"
+ mode="FORCE_TEXT"
+ pulldown="false"
+ retarget="false"
+ state="false"
+ style="push"
+ tooltip="Manual Server Addition">
+ </action>
<menu
id="com.gluster.storage.management.gui.menu.discoveredserver"
label="&amp;Gluster"
@@ -939,6 +1023,20 @@
toolbarPath="Normal"
tooltip="Create a new Volume">
</action>
+ <action
+ allowLabelUpdate="false"
+ class="com.gluster.storage.management.gui.actions.ServerAdditionAction"
+ definitionId="com.gluster.storage.management.gui.commands.ServerAddition"
+ id="com.gluster.storage.management.gui.actions.ServerAdditionAction"
+ label="Add Server"
+ menubarPath="com.gluster.storage.management.gui.menu.gluster/gluster"
+ mode="FORCE_TEXT"
+ pulldown="false"
+ retarget="false"
+ state="false"
+ style="push"
+ tooltip="Manual Server Addition">
+ </action>
<menu
id="com.gluster.storage.management.gui.menu.gluster"
label="&amp;Gluster"
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java
index 81661942..6d21e537 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java
@@ -52,7 +52,7 @@ public class AddServerAction extends AbstractActionDelegate {
guiHelper.setStatusMessage("Adding server [" + server.getName() + "]...");
try {
- glusterServersClient.addServer(server);
+ glusterServersClient.addServer(server.getName());
modelManager.addGlusterServer(glusterServersClient.getGlusterServer(server.getName()));
successServers.add(server);
} catch (Exception e) {
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
new file mode 100644
index 00000000..d94d7277
--- /dev/null
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/ServerAdditionAction.java
@@ -0,0 +1,34 @@
+package com.gluster.storage.management.gui.actions;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.IWorkbenchWindowActionDelegate;
+
+import com.gluster.storage.management.gui.dialogs.ChangePasswordDialog;
+import com.gluster.storage.management.gui.dialogs.ServerAdditionDialog;
+
+public class ServerAdditionAction extends AbstractActionDelegate {
+
+ @Override
+ public void dispose() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ protected void performAction(IAction action) {
+
+ try {
+ // To open a dialog for server addition
+ ServerAdditionDialog dialog = new ServerAdditionDialog(getShell());
+ dialog.open();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+
+
+}
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/InitializeDiskTypeSelection.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/InitializeDiskTypeSelection.java
index bb700de5..5fce27e4 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/InitializeDiskTypeSelection.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/InitializeDiskTypeSelection.java
@@ -56,7 +56,7 @@ public class InitializeDiskTypeSelection extends Dialog {
protected void configureShell(Shell newShell) {
super.configureShell(newShell);
- newShell.setText("Gluster Management Console - Select Cluster");
+ newShell.setText("Gluster Management Console - Select FS Type");
addEscapeListener(newShell);
}
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
new file mode 100644
index 00000000..ca9a0058
--- /dev/null
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/ServerAdditionDialog.java
@@ -0,0 +1,199 @@
+/**
+ * ServerAdditionDialog.java
+ *
+ * Copyright (c) 2011 Gluster, Inc. <http://www.gluster.com>
+ * This file is part of Gluster Management Console.
+ *
+ * Gluster Management Console is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gluster Management Console is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+package com.gluster.storage.management.gui.dialogs;
+
+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.IDialogConstants;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.fieldassist.ControlDecoration;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.TraverseEvent;
+import org.eclipse.swt.events.TraverseListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+
+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.Server;
+import com.gluster.storage.management.gui.IImageKeys;
+import com.gluster.storage.management.gui.utils.GUIHelper;
+import com.gluster.storage.management.gui.validators.StringRequiredValidator;
+
+public class ServerAdditionDialog extends Dialog {
+ public static final int RETURN_CODE_ERROR = 2;
+ private Text serverName;
+ private Button addButton;
+
+ private final GUIHelper guiHelper = GUIHelper.getInstance();
+ private Composite composite;
+
+ public ServerAdditionDialog(Shell shell) {
+ super(shell);
+ }
+
+ @Override
+ protected void configureShell(Shell newShell) {
+ super.configureShell(newShell);
+
+ newShell.setText("Gluster Management Console - Add Server");
+ addEscapeListener(newShell);
+ }
+
+ private void addEscapeListener(Shell shell) {
+ shell.addTraverseListener(new TraverseListener() {
+
+ @Override
+ public void keyTraversed(TraverseEvent e) {
+ if (e.keyCode == SWT.ESC) {
+ cancelPressed();
+ }
+ }
+ });
+ }
+
+ /**
+ * Overriding to make sure that the dialog is centered in screen
+ */
+ @Override
+ protected void initializeBounds() {
+ super.initializeBounds();
+
+ guiHelper.centerShellInScreen(getShell());
+ }
+
+ private void configureDialogLayout(Composite composite) {
+ GridLayout layout = (GridLayout) composite.getLayout();
+ layout.numColumns = 2;
+ layout.marginLeft = 20;
+ layout.marginRight = 20;
+ layout.marginTop = 20;
+ layout.horizontalSpacing = 20;
+ layout.verticalSpacing = 20;
+ }
+
+ // ------------------------------------------
+
+ private void createLabel(Composite composite, String label) {
+ Label passwordLabel = new Label(composite, SWT.NONE);
+ passwordLabel.setText(label);
+ passwordLabel.setLayoutData(new GridData(GridData.END, GridData.CENTER, false, false));
+ }
+
+ private Text createServerNameText(Composite composite) {
+ Text field = new Text(composite, SWT.BORDER );
+ GridData layoutData = new GridData(SWT.FILL, GridData.FILL, true, false);
+ layoutData.widthHint = convertWidthInCharsToPixels(32);
+ field.setLayoutData(layoutData);
+ return field;
+ }
+
+ @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);
+
+ createListeners();
+
+ return composite;
+ }
+
+ private void createListeners() {
+ ModifyListener listener = new ModifyListener() {
+
+ @Override
+ public void modifyText(ModifyEvent e) {
+ updateButtonStatus();
+ }
+ };
+
+ serverName.addModifyListener(listener);
+ }
+
+ private void updateButtonStatus() {
+ if(serverName.getText().isEmpty()) {
+ addButton.setEnabled(false);
+ return;
+ }
+
+ addButton.setEnabled(true);
+ }
+
+ @Override
+ protected void createButtonsForButtonBar(Composite parent) {
+ 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);
+
+ }
+
+ protected void okPressed() {
+ GlusterServersClient serversClient = new GlusterServersClient();
+ try {
+ serversClient.addServer(serverName.getText());
+
+ MessageDialog.openInformation(getShell(), "Add Server", "Server added successfully!");
+ } catch (Exception e) {
+ MessageDialog.openError(getShell(), "Server addition Failed", e.getMessage());
+ setReturnCode(RETURN_CODE_ERROR);
+ }
+ this.close();
+ }
+}
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java
index a59a027d..1c63e1c3 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractDisksPage.java
@@ -42,6 +42,8 @@ import org.eclipse.ui.forms.widgets.ImageHyperlink;
import com.gluster.storage.management.client.GlusterDataModelManager;
import com.gluster.storage.management.client.GlusterServersClient;
import com.gluster.storage.management.client.TasksClient;
+import com.gluster.storage.management.core.model.ClusterListener;
+import com.gluster.storage.management.core.model.DefaultClusterListener;
import com.gluster.storage.management.core.model.Device;
import com.gluster.storage.management.core.model.Device.DEVICE_STATUS;
import com.gluster.storage.management.core.model.Disk;
@@ -71,6 +73,10 @@ public abstract class AbstractDisksPage extends AbstractTableTreeViewerPage<Disk
Application.getApplication().addEntityListener(this);
}
+ protected ClusterListener createClusterListener() {
+ return new DefaultClusterListener();
+ }
+
private void createInitializeLink(final TreeItem item, final int rowNum, final Device uninitializedDevice) {
final Tree tree = treeViewer.getTree();
final TreeEditor editor = new TreeEditor(tree);
@@ -232,9 +238,9 @@ public abstract class AbstractDisksPage extends AbstractTableTreeViewerPage<Disk
GlusterDataModelManager.getInstance().getModel().getCluster().addTaskInfo(taskInfo);
}
- if (taskInfo.getStatus().getCode() != Status.STATUS_CODE_RUNNING) {
+ if (taskInfo.getStatus().getCode() == Status.STATUS_CODE_RUNNING) {
updateStatus(DEVICE_STATUS.INITIALIZING, true);
- } else if(taskInfo.getStatus().getCode() != Status.STATUS_CODE_SUCCESS) {
+ } else if(taskInfo.getStatus().getCode() == Status.STATUS_CODE_SUCCESS) {
updateStatus(DEVICE_STATUS.INITIALIZED, true);
}
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/TasksResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/TasksResource.java
index b455a255..0fa49dc3 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/TasksResource.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/TasksResource.java
@@ -122,8 +122,8 @@ public class TasksResource extends AbstractResource {
private Task checkTaskStatus(String taskId) {
Task task = getTask(taskId);
// No status check required if the task already complete or failure
- if (task.getTaskInfo().getStatus() == Status.STATUS_FAILURE
- || task.getTaskInfo().getStatus() == Status.STATUS_SUCCESS) {
+ if (task.getTaskInfo().getStatus().getCode() == Status.STATUS_CODE_FAILURE
+ || task.getTaskInfo().getStatus().getCode() == Status.STATUS_CODE_SUCCESS) {
return task;
}
task.getTaskInfo().setStatus(task.checkStatus());
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/InitializeDiskTask.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/InitializeDiskTask.java
index 6aa63e9e..4f168d66 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/InitializeDiskTask.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/InitializeDiskTask.java
@@ -53,6 +53,7 @@ public class InitializeDiskTask extends Task {
setServerName(serverName);
setDiskName(diskName);
setFsType(fsType);
+ taskInfo.setName(getId());
init();
}