diff options
author | Dhandapani <dhandapani@gluster.com> | 2011-08-03 16:16:58 +0530 |
---|---|---|
committer | Dhandapani <dhandapani@gluster.com> | 2011-08-03 16:18:24 +0530 |
commit | 9330446005c99c0b424907e67167633ad64fe725 (patch) | |
tree | 0885db9de2514dd65956ddb26da677e19784860b | |
parent | 887157335306976c8926249251c910d6af95c25c (diff) |
Bug 3290 - GUI throws 500 error if we try to add server with IP address or server name in small case
5 files changed, 38 insertions, 32 deletions
diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java index 716d3b65..c570252e 100644 --- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java +++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java @@ -262,9 +262,9 @@ public abstract class AbstractClient { return fetchResource(resource.path(subResourceName), queryParams, responseClass);
}
- private void postRequest(WebResource resource, Form form) {
+ private ClientResponse postRequest(WebResource resource, Form form) {
try {
- prepareFormRequestBuilder(resource).post(form);
+ return prepareFormRequestBuilder(resource).post(ClientResponse.class, form);
} catch (UniformInterfaceException e) {
throw new GlusterRuntimeException(e.getResponse().getEntity(String.class));
}
@@ -290,8 +290,8 @@ public abstract class AbstractClient { * @param form
* Form to be submitted
*/
- protected void postRequest(Form form) {
- postRequest(resource, form);
+ protected URI postRequest(Form form) {
+ return postRequest(resource, form).getLocation();
}
/**
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 85c7d383..c61c993c 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 @@ -29,6 +29,7 @@ import javax.ws.rs.core.MultivaluedMap; import com.gluster.storage.management.core.constants.RESTConstants; import com.gluster.storage.management.core.model.GlusterServer; import com.gluster.storage.management.core.model.ServerStats; +import com.gluster.storage.management.core.model.TaskInfo; import com.gluster.storage.management.core.response.GlusterServerListResponse; import com.gluster.storage.management.core.utils.GlusterCoreUtil; import com.sun.jersey.api.representation.Form; @@ -67,10 +68,10 @@ public class GlusterServersClient extends AbstractClient { return server; } - public void addServer(String serverName) { + public URI addServer(String serverName) { Form form = new Form(); form.add(RESTConstants.FORM_PARAM_SERVER_NAME, serverName); - postRequest(form); + return postRequest(form); } public URI initializeDisk(String serverName, String diskName, String fsType) { @@ -118,4 +119,8 @@ public class GlusterServersClient extends AbstractClient { queryParams.add(RESTConstants.QUERY_PARAM_PERIOD, period); return fetchSubResource(RESTConstants.RESOURCE_STATISTICS, queryParams, ServerStats.class); } + + public GlusterServer getServer(URI uri) { + return fetchResource(uri, GlusterServer.class); + } } diff --git a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/resources/v1_0/GlusterServersResource.java b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/resources/v1_0/GlusterServersResource.java index e6e4f9d6..3578dd31 100644 --- a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/resources/v1_0/GlusterServersResource.java +++ b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/resources/v1_0/GlusterServersResource.java @@ -211,7 +211,7 @@ public class GlusterServersResource extends AbstractResource { throw new GlusterRuntimeException("No online server found in cluster [" + clusterName + "]"); } - glusterUtil.addServer(serverName, onlineServer.getName()); + glusterUtil.addServer(onlineServer.getName(), serverName); } } @@ -244,11 +244,7 @@ public class GlusterServersResource extends AbstractResource { List<ServerInfo> servers = cluster.getServers(); if (servers != null && !servers.isEmpty()) { // cluster has at least one existing server, so that peer probe can be performed - try { - performAddServer(clusterName, hostName); - } catch (Exception e) { - return errorResponse(e.getMessage()); - } + performAddServer(clusterName, hostName); } else { // this is the first server to be added to the cluster, which means no // gluster CLI operation required. just add it to the cluster-server mapping @@ -256,26 +252,26 @@ public class GlusterServersResource extends AbstractResource { try { // add the cluster-server mapping - clusterService.mapServerToCluster(clusterName, serverName); + clusterService.mapServerToCluster(clusterName, hostName); } catch (Exception e) { return errorResponse(e.getMessage()); } // since the server is added to a cluster, it should not more be considered as a // discovered server available to other clusters - discoveredServersResource.removeDiscoveredServer(serverName); + discoveredServersResource.removeDiscoveredServer(hostName); if (!publicKeyInstalled) { try { // install public key (this will also disable password based ssh login) - sshUtil.installPublicKey(serverName); + sshUtil.installPublicKey(hostName); } catch (Exception e) { - return errorResponse("Public key could not be installed on [" + serverName + "]! Error: [" + return errorResponse("Public key could not be installed on [" + hostName + "]! Error: [" + e.getMessage() + "]"); } } - return createdResponse(serverName); + return createdResponse(hostName); } @DELETE diff --git a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/utils/GlusterUtil.java b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/utils/GlusterUtil.java index 443b1853..50733fea 100644 --- a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/utils/GlusterUtil.java +++ b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/utils/GlusterUtil.java @@ -528,23 +528,27 @@ public class GlusterUtil { } } - // TODO: Execute the python script to find whether the volume is cifs enabled or not - boolean isCifsEnabled = false; - List<String> cifsUsers = new ArrayList<String>(); - if(isCifsEnabled) { - volume.enableCifs(); - volume.setCifsUsers(cifsUsers); - } else { - volume.disableCifs(); - } - - if (volume != null) {// Adding the last volume parsed - volumes.add(volume); - } + updateCifsInfo(volumes); return volumes; } + private void updateCifsInfo(List<Volume> volumes) { + for (Volume volume : volumes) { + boolean isCifsEnabled = false; + + // TODO: Call python script to check if CIFS is enabled on the volume + + List<String> cifsUsers = new ArrayList<String>(); + if (isCifsEnabled) { + volume.enableCifs(); + volume.setCifsUsers(cifsUsers); + } else { + volume.disableCifs(); + } + } + } + public void addBricks(String volumeName, List<String> bricks, String knownServer) { StringBuilder command = new StringBuilder("gluster volume add-brick " + volumeName); for (String brickDir : bricks) { 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 01341a5a..5dc12e0a 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,6 +20,7 @@ */ package com.gluster.storage.management.gui.dialogs; +import java.net.URI; import java.util.List; import org.eclipse.jface.dialogs.Dialog; @@ -181,9 +182,9 @@ public class ServerAdditionDialog extends Dialog { try { String serverNameText = serverName.getText(); - serversClient.addServer(serverNameText); + URI newServerURI = serversClient.addServer(serverNameText); - modelManager.addGlusterServer(serversClient.getGlusterServer(serverNameText)); + modelManager.addGlusterServer(serversClient.getServer(newServerURI)); MessageDialog .openInformation(getShell(), "Add Server", "Server " + serverNameText + " added successfully!"); |