diff options
Diffstat (limited to 'src')
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 |
