From 115d2322e72dbacdfd1d1f9b984e5f096a08d74d Mon Sep 17 00:00:00 2001 From: selvam Date: Thu, 2 Jun 2011 19:51:31 +0530 Subject: Remove server REST path issue fix Removed server comes to Discovered list (UI) if it is online. --- .../management/client/GlusterDataModelManager.java | 18 ++++++++++++++++++ .../management/client/GlusterServersClient.java | 4 +--- .../management/gui/actions/RemoveServerAction.java | 6 ++++++ .../storage/management/server/utils/GlusterUtil.java | 2 +- 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java index 7566850a..37230d08 100644 --- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java +++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java @@ -290,6 +290,15 @@ public class GlusterDataModelManager { listener.serverAdded(server); } } + + public void addDiscoveredServer(Server server) { + Cluster cluster = model.getCluster(); + cluster.addDiscoveredServer(server); + + for (ClusterListener listener : listeners) { + listener.discoveredServerAdded(server);; + } + } public void removeDiscoveredServer(Server server) { Cluster cluster = model.getCluster(); @@ -299,6 +308,15 @@ public class GlusterDataModelManager { listener.discoveredServerRemoved(server); } } + + public void removeGlusterServer(GlusterServer server) { + Cluster cluster = model.getCluster(); + cluster.removeServer(server); + + for (ClusterListener listener : listeners) { + listener.serverRemoved(server); + } + } public void deleteVolume(Volume volume) { Cluster cluster = model.getCluster(); 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 f5609584..4eba0ca9 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 @@ -75,9 +75,7 @@ public class GlusterServersClient extends AbstractClient { } public Status removeServer(String serverName) { - MultivaluedMap queryParams = new MultivaluedMapImpl(); - queryParams.add(RESTConstants.QUERY_PARAM_SERVER_NAME, serverName); - return (Status) deleteResource(Status.class, queryParams); + return (Status) deleteSubResource(serverName, Status.class); } public static void main(String[] args) { diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/RemoveServerAction.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/RemoveServerAction.java index 93f28e11..060b3c38 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/RemoveServerAction.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/RemoveServerAction.java @@ -27,6 +27,7 @@ import org.eclipse.jface.viewers.ISelection; import com.gluster.storage.management.client.GlusterDataModelManager; import com.gluster.storage.management.client.GlusterServersClient; import com.gluster.storage.management.core.model.Cluster; +import com.gluster.storage.management.core.model.GlusterServer; import com.gluster.storage.management.core.model.Server; import com.gluster.storage.management.core.model.Status; import com.gluster.storage.management.core.model.Volume; @@ -61,6 +62,11 @@ public class RemoveServerAction extends AbstractActionDelegate { if (status.isSuccess()) { showInfoDialog(actionDesc, "Server removed successfully"); + GlusterServer glusterServer = (GlusterServer) server; + GlusterDataModelManager.getInstance().removeGlusterServer(glusterServer); + if (glusterServer.isOnline()) { + GlusterDataModelManager.getInstance().addDiscoveredServer(server); + } } else { showErrorDialog(actionDesc, "Server could not be removed. Error: [" + status + "]"); } diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/GlusterUtil.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/GlusterUtil.java index 6005f6dd..77549add 100644 --- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/GlusterUtil.java +++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/GlusterUtil.java @@ -506,7 +506,7 @@ System.out.println(brickDir); } public Status removeServer(String existingServer, String serverName) { - return new Status(sshUtil.executeRemote(existingServer, "gluster peer detach " + serverName)); + return new Status(sshUtil.executeRemote(existingServer, "gluster --mode=script peer detach " + serverName)); } public static void main(String args[]) { -- cgit