summaryrefslogtreecommitdiffstats
path: root/com.gluster.storage.management.gui/src/com
diff options
context:
space:
mode:
authorShireesh Anjal <shireesh@gluster.com>2011-03-16 19:14:57 +0530
committerShireesh Anjal <shireesh@gluster.com>2011-03-16 19:14:57 +0530
commit1bc1801223721c528fb87a4442e17664143d4466 (patch)
tree3d04be08e34e3697be836105692b6ddee7f93f60 /com.gluster.storage.management.gui/src/com
parentd8426e9287c37a8e6e277a0e84929239269fd0d5 (diff)
Add server to cluster
Diffstat (limited to 'com.gluster.storage.management.gui/src/com')
-rw-r--r--com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java33
-rw-r--r--com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/navigator/NavigationView.java12
2 files changed, 39 insertions, 6 deletions
diff --git a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java
index 559c5357..1a438898 100644
--- a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java
+++ b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java
@@ -19,15 +19,36 @@
package com.gluster.storage.management.gui.actions;
import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.swt.widgets.Display;
+import com.gluster.storage.management.client.GlusterDataModelManager;
+import com.gluster.storage.management.client.GlusterServersClient;
+import com.gluster.storage.management.core.model.Entity;
import com.gluster.storage.management.core.model.EntityGroup;
+import com.gluster.storage.management.core.model.GlusterServerResponse;
+import com.gluster.storage.management.core.model.Server;
import com.gluster.storage.management.core.model.Volume;
public class AddServerAction extends AbstractActionDelegate {
@Override
public void run(IAction action) {
- System.out.println("Running [" + this.getClass().getSimpleName() + "]");
+ GlusterDataModelManager modelManager = GlusterDataModelManager.getInstance();
+ GlusterServersClient glusterServersClient = new GlusterServersClient(modelManager.getServerName(),
+ modelManager.getSecurityToken());
+ Server server = (Server) selectedEntity;
+ GlusterServerResponse response = glusterServersClient.addServer(server);
+ if (response.getStatus().isSuccess()) {
+ modelManager.removeDiscoveredServer(server);
+ modelManager.addGlusterServer(response.getGlusterServer());
+ new MessageDialog(Display.getDefault().getActiveShell(), "Add Server", null, "Server [" + server.getName()
+ + "] added successfully!", MessageDialog.INFORMATION, new String[] { "OK" }, 0).open();
+ } else {
+ new MessageDialog(Display.getDefault().getActiveShell(), "Add Server", null, "Server [" + server.getName()
+ + " could not be added to cluster! Error: [" + response.getStatus().getMessage() + "]",
+ MessageDialog.ERROR, new String[] { "OK" }, 0).open();
+ }
}
@Override
@@ -39,10 +60,12 @@ public class AddServerAction extends AbstractActionDelegate {
@Override
public void selectionChanged(IAction action, ISelection selection) {
super.selectionChanged(action, selection);
-
- action.setEnabled(true);
- if(selectedEntity instanceof EntityGroup && ((EntityGroup)selectedEntity).getEntityType() == Volume.class) {
- action.setEnabled(false);
+
+ if (selectedEntity != null && selectedEntity instanceof Entity) {
+ action.setEnabled(true);
+ if (selectedEntity instanceof EntityGroup && ((EntityGroup) selectedEntity).getEntityType() == Volume.class) {
+ action.setEnabled(false);
+ }
}
}
}
diff --git a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/navigator/NavigationView.java b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/navigator/NavigationView.java
index 64ff1046..84fb9e99 100644
--- a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/navigator/NavigationView.java
+++ b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/navigator/NavigationView.java
@@ -31,8 +31,11 @@ import org.eclipse.ui.model.WorkbenchLabelProvider;
import org.eclipse.ui.part.ViewPart;
import com.gluster.storage.management.client.GlusterDataModelManager;
+import com.gluster.storage.management.core.model.DefaultClusterListener;
import com.gluster.storage.management.core.model.Entity;
import com.gluster.storage.management.core.model.GlusterDataModel;
+import com.gluster.storage.management.core.model.GlusterServer;
+import com.gluster.storage.management.core.model.IClusterListener;
public class NavigationView extends ViewPart {
public static final String ID = "com.gluster.storage.management.gui.views.navigator";
@@ -62,7 +65,14 @@ public class NavigationView extends ViewPart {
Menu contextMenu = menuManager.createContextMenu(treeViewer.getControl());
treeViewer.getTree().setMenu(contextMenu);
- getSite().registerContextMenu(menuManager, treeViewer);
+ getSite().registerContextMenu(menuManager, treeViewer);
+
+ GlusterDataModelManager.getInstance().addClusterListener(new DefaultClusterListener() {
+ @Override
+ public void serverAdded(GlusterServer server) {
+ treeViewer.refresh();
+ }
+ });
}
public void selectEntity(Entity entity) {