summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDhandapani <dhandapani@gluster.com>2011-08-03 16:16:58 +0530
committerDhandapani <dhandapani@gluster.com>2011-08-03 16:18:24 +0530
commit9330446005c99c0b424907e67167633ad64fe725 (patch)
tree0885db9de2514dd65956ddb26da677e19784860b
parent887157335306976c8926249251c910d6af95c25c (diff)
Bug 3290 - GUI throws 500 error if we try to add server with IP address or server name in small case
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java8
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java9
-rw-r--r--src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/resources/v1_0/GlusterServersResource.java18
-rw-r--r--src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/utils/GlusterUtil.java30
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/ServerAdditionDialog.java5
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!");