diff options
| author | Shireesh Anjal <shireesh@gluster.com> | 2011-03-16 19:14:57 +0530 |
|---|---|---|
| committer | Shireesh Anjal <shireesh@gluster.com> | 2011-03-16 19:14:57 +0530 |
| commit | 1bc1801223721c528fb87a4442e17664143d4466 (patch) | |
| tree | 3d04be08e34e3697be836105692b6ddee7f93f60 /com.gluster.storage.management.gui/src/com/gluster | |
| parent | d8426e9287c37a8e6e277a0e84929239269fd0d5 (diff) | |
Add server to cluster
Diffstat (limited to 'com.gluster.storage.management.gui/src/com/gluster')
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) { |
