summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorShireesh Anjal <anjalshireesh@gmail.com>2011-06-30 03:21:11 -0700
committerShireesh Anjal <anjalshireesh@gmail.com>2011-06-30 03:21:11 -0700
commit0c36771b2b372273fed877dab8e7b79d6ee6ee4a (patch)
treee63cf572f8a3f67e5ea6da8b42f0beca79c39eb3 /src
parent4bc285c970d0682cc374af6367897ec37336eee3 (diff)
parentbb8929ddef5725c4ea30fca056f00605113453d9 (diff)
Merge pull request #91 from Selvasundaram/master
login issue fix
Diffstat (limited to 'src')
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/services/ClusterService.java20
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/ServerUtil.java1
2 files changed, 14 insertions, 7 deletions
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/services/ClusterService.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/services/ClusterService.java
index 42bfc736..b622c3a1 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/services/ClusterService.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/services/ClusterService.java
@@ -33,8 +33,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.gluster.storage.management.core.constants.CoreConstants;
+import com.gluster.storage.management.core.exceptions.ConnectionException;
import com.gluster.storage.management.core.exceptions.GlusterRuntimeException;
import com.gluster.storage.management.core.model.GlusterServer;
+import com.gluster.storage.management.core.model.GlusterServer.SERVER_STATUS;
import com.gluster.storage.management.core.utils.LRUCache;
import com.gluster.storage.management.server.data.ClusterInfo;
import com.gluster.storage.management.server.data.PersistenceDao;
@@ -75,7 +77,7 @@ public class ClusterService {
// uses cache
public GlusterServer getOnlineServer(String clusterName, String exceptServerName) {
- GlusterServer server = getOnlineServer(clusterName);
+ GlusterServer server = onlineServerCache.get(clusterName);
if (server != null && !server.getName().equals(exceptServerName)) {
return server;
}
@@ -100,11 +102,17 @@ public class ClusterService {
for (ServerInfo serverInfo : cluster.getServers()) {
GlusterServer server = new GlusterServer(serverInfo.getName());
- serverUtil.fetchServerDetails(server);
- if (server.isOnline() && !server.getName().equals(exceptServerName)) {
- // server is online. add it to cache and return
- addOnlineServer(clusterName, server);
- return server;
+ server.setStatus(SERVER_STATUS.ONLINE);
+ try {
+ serverUtil.fetchServerDetails(server);
+ if (server.isOnline() && !server.getName().equals(exceptServerName)) {
+ // server is online. add it to cache and return
+ addOnlineServer(clusterName, server);
+ return server;
+ }
+ } catch(ConnectionException e) {
+ // server is offline. continue checking next one.
+ continue;
}
}
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/ServerUtil.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/ServerUtil.java
index 3524d35d..ed77def3 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/ServerUtil.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/ServerUtil.java
@@ -88,7 +88,6 @@ public class ServerUtil {
// fetch standard server details like cpu, disk, memory details
Object response = executeOnServer(true, server.getName(), "get_server_details.py --only-data-disks", Server.class);
if (response instanceof Status) {
- // TODO: check if this happened because the server is not reachable, and if yes, set it's status as offline
throw new GlusterRuntimeException(((Status)response).getMessage());
}
server.copyFrom((Server) response); // Update the details in <Server> object