From da029069ac72d3205b0b96b13bd2c0b161423765 Mon Sep 17 00:00:00 2001 From: Selvasundaram Date: Sat, 23 Jul 2011 18:56:42 +0530 Subject: Gluster online status check includes glusterd status --- .../management/core/model/GlusterDummyModel.java | 2 +- .../management/core/model/GlusterServer.java | 23 --------------------- .../storage/management/core/model/Server.java | 24 ++++++++++++++++++++++ .../storage/management/gui/AlertsManager.java | 2 +- .../management/gui/GlusterDataModelManager.java | 3 --- .../gui/GlusterServerTableLabelProvider.java | 2 +- .../management/gui/dialogs/LoginDialog.java | 19 ++++++++++++----- .../management/gui/views/ClusterSummaryView.java | 2 +- .../gui/views/GlusterServerSummaryView.java | 5 +---- .../gui/views/GlusterServersSummaryView.java | 5 ++--- .../management/gui/views/VolumeSummaryView.java | 2 +- .../resources/v1_0/GlusterServersResource.java | 2 +- .../management/server/services/ClusterService.java | 16 +++++---------- .../management/server/utils/GlusterUtil.java | 2 +- 14 files changed, 53 insertions(+), 56 deletions(-) (limited to 'src') diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/GlusterDummyModel.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/GlusterDummyModel.java index 22681919..d162ec38 100644 --- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/GlusterDummyModel.java +++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/GlusterDummyModel.java @@ -24,7 +24,7 @@ import java.util.Date; import java.util.List; import com.gluster.storage.management.core.model.Device.DEVICE_STATUS; -import com.gluster.storage.management.core.model.GlusterServer.SERVER_STATUS; +import com.gluster.storage.management.core.model.Server.SERVER_STATUS; import com.gluster.storage.management.core.model.Volume.TRANSPORT_TYPE; import com.gluster.storage.management.core.model.Volume.VOLUME_STATUS; import com.gluster.storage.management.core.model.Volume.VOLUME_TYPE; diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/GlusterServer.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/GlusterServer.java index 5928f3af..92943074 100644 --- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/GlusterServer.java +++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/GlusterServer.java @@ -25,14 +25,7 @@ import com.gluster.storage.management.core.utils.StringUtil; @XmlRootElement(name = "glusterServer") public class GlusterServer extends Server { - public enum SERVER_STATUS { - ONLINE, OFFLINE - }; - - private static final String[] STATUS_STR = new String[] { "Online", "Offline" }; - private String uuid; - private SERVER_STATUS status; public GlusterServer() { } @@ -47,22 +40,6 @@ public class GlusterServer extends Server { setStatus(status); } - public Boolean isOnline() { - return getStatus() == SERVER_STATUS.ONLINE; - } - - public String getStatusStr() { - return STATUS_STR[getStatus().ordinal()]; - } - - public SERVER_STATUS getStatus() { - return status; - } - - public void setStatus(SERVER_STATUS status) { - this.status = status; - } - public String getUuid() { return uuid; } diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Server.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Server.java index 5697530e..cfca8206 100644 --- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Server.java +++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Server.java @@ -30,12 +30,19 @@ import com.gluster.storage.management.core.utils.StringUtil; @XmlRootElement(name = "server") public class Server extends Entity { + public enum SERVER_STATUS { + ONLINE, OFFLINE + }; + + protected static final String[] STATUS_STR = new String[] { "Online", "Offline" }; + private int numOfCPUs; private double cpuUsage; private double totalMemory; private double memoryInUse; private List disks = new ArrayList(); private List networkInterfaces = new ArrayList(); + private SERVER_STATUS status; public Server() { @@ -166,6 +173,22 @@ public class Server extends Entity { } return ipAddresses; } + + public String getStatusStr() { + return STATUS_STR[getStatus().ordinal()]; + } + + public SERVER_STATUS getStatus() { + return status; + } + + public void setStatus(SERVER_STATUS status) { + this.status = status; + } + + public Boolean isOnline() { + return getStatus() == SERVER_STATUS.ONLINE; + } @Override public boolean filter(String filterString, boolean caseSensitive) { @@ -188,6 +211,7 @@ public class Server extends Entity { setCpuUsage(server.getCpuUsage()); setTotalMemory(server.getTotalMemory()); setMemoryInUse(server.getMemoryInUse()); + setStatus(server.getStatus()); } @Override diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/AlertsManager.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/AlertsManager.java index 5bfae8d0..7680caaf 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/AlertsManager.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/AlertsManager.java @@ -32,8 +32,8 @@ import com.gluster.storage.management.core.model.Brick.BRICK_STATUS; import com.gluster.storage.management.core.model.Cluster; import com.gluster.storage.management.core.model.Disk; import com.gluster.storage.management.core.model.GlusterServer; -import com.gluster.storage.management.core.model.GlusterServer.SERVER_STATUS; import com.gluster.storage.management.core.model.Partition; +import com.gluster.storage.management.core.model.Server.SERVER_STATUS; import com.gluster.storage.management.core.model.Volume; import com.gluster.storage.management.core.model.Volume.VOLUME_STATUS; import com.gluster.storage.management.core.utils.StringUtil; diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/GlusterDataModelManager.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/GlusterDataModelManager.java index da72d1cc..aba7dde2 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/GlusterDataModelManager.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/GlusterDataModelManager.java @@ -152,9 +152,6 @@ public class GlusterDataModelManager { monitor.done(); return model; - } catch(RuntimeException e) { - logger.error("Error in data sync!", e); - return null; } finally { syncInProgress = false; } diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/GlusterServerTableLabelProvider.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/GlusterServerTableLabelProvider.java index ac82f2c6..31bb49ed 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/GlusterServerTableLabelProvider.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/GlusterServerTableLabelProvider.java @@ -21,7 +21,7 @@ package com.gluster.storage.management.gui; import org.eclipse.swt.graphics.Image; import com.gluster.storage.management.core.model.GlusterServer; -import com.gluster.storage.management.core.model.GlusterServer.SERVER_STATUS; +import com.gluster.storage.management.core.model.Server.SERVER_STATUS; import com.gluster.storage.management.core.utils.NumberUtil; import com.gluster.storage.management.gui.utils.GUIHelper; import com.gluster.storage.management.gui.views.pages.GlusterServersPage.GLUSTER_SERVER_TABLE_COLUMN_INDICES; diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/LoginDialog.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/LoginDialog.java index f041495e..9c7988e3 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/LoginDialog.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/LoginDialog.java @@ -215,6 +215,9 @@ public class LoginDialog extends Dialog { // authentication successful. close the login dialog and open the next one. close(); + IPreferenceStore preferenceStore = Activator.getDefault().getPreferenceStore(); + boolean showClusterSelectionDialog = preferenceStore.getBoolean(PreferenceConstants.P_SHOW_CLUSTER_SELECTION_DIALOG); + // If the password is default, Let user to change the password if (password.equalsIgnoreCase(CoreConstants.DEFAULT_PASSWORD)) { String oldSecurityTokeString = GlusterDataModelManager.getInstance().getSecurityToken(); @@ -227,13 +230,13 @@ public class LoginDialog extends Dialog { cancelPressed(); return; } + + // after first login, cluster selection dialog must be shown. + showClusterSelectionDialog = true; } ClustersClient clustersClient = new ClustersClient(); - IPreferenceStore preferenceStore = Activator.getDefault().getPreferenceStore(); - boolean showClusterSelectionDialog = preferenceStore.getBoolean(PreferenceConstants.P_SHOW_CLUSTER_SELECTION_DIALOG); - CLUSTER_MODE mode; String clusterName = null; if (!showClusterSelectionDialog) { @@ -270,7 +273,7 @@ public class LoginDialog extends Dialog { final String clusterName1 = clusterName; new ProgressMonitorDialog(getShell()).run(true, false, new IRunnableWithProgress() { - + @Override public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { GlusterDataModelManager.getInstance().initializeModel(clusterName1, monitor); @@ -278,8 +281,14 @@ public class LoginDialog extends Dialog { }); super.okPressed(); } catch (Exception e) { + String errMsg; + if(e instanceof InvocationTargetException) { + errMsg = ((InvocationTargetException) e).getTargetException().getMessage(); + } else { + errMsg = e.getMessage(); + } setReturnCode(RETURN_CODE_ERROR); - MessageDialog.openError(getShell(), "Gluster Management Console", e.getMessage()); + MessageDialog.openError(getShell(), "Gluster Management Console", errMsg); } } diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/ClusterSummaryView.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/ClusterSummaryView.java index a358066d..d391628b 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/ClusterSummaryView.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/ClusterSummaryView.java @@ -45,8 +45,8 @@ import com.gluster.storage.management.core.model.Cluster; import com.gluster.storage.management.core.model.EntityGroup; import com.gluster.storage.management.core.model.GlusterDataModel; import com.gluster.storage.management.core.model.GlusterServer; -import com.gluster.storage.management.core.model.GlusterServer.SERVER_STATUS; import com.gluster.storage.management.core.model.Server; +import com.gluster.storage.management.core.model.Server.SERVER_STATUS; import com.gluster.storage.management.core.model.TaskInfo; import com.gluster.storage.management.core.utils.NumberUtil; import com.gluster.storage.management.gui.GlusterDataModelManager; diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/GlusterServerSummaryView.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/GlusterServerSummaryView.java index fbf787e3..f9718d06 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/GlusterServerSummaryView.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/GlusterServerSummaryView.java @@ -46,14 +46,11 @@ import org.eclipse.ui.forms.widgets.Hyperlink; import org.eclipse.ui.forms.widgets.ScrolledForm; import org.eclipse.ui.part.ViewPart; -import com.gluster.storage.management.client.GlusterServersClient; import com.gluster.storage.management.core.model.ClusterListener; import com.gluster.storage.management.core.model.DefaultClusterListener; import com.gluster.storage.management.core.model.Event; import com.gluster.storage.management.core.model.GlusterServer; -import com.gluster.storage.management.core.model.GlusterServer.SERVER_STATUS; -import com.gluster.storage.management.core.model.ServerStats; -import com.gluster.storage.management.core.model.ServerStatsRow; +import com.gluster.storage.management.core.model.Server.SERVER_STATUS; import com.gluster.storage.management.core.utils.NumberUtil; import com.gluster.storage.management.gui.GlusterDataModelManager; import com.gluster.storage.management.gui.IImageKeys; diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/GlusterServersSummaryView.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/GlusterServersSummaryView.java index 197b925f..11b69c2e 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/GlusterServersSummaryView.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/GlusterServersSummaryView.java @@ -36,14 +36,13 @@ import com.gluster.storage.management.core.model.Alert; import com.gluster.storage.management.core.model.Alert.ALERT_TYPES; import com.gluster.storage.management.core.model.EntityGroup; import com.gluster.storage.management.core.model.GlusterServer; +import com.gluster.storage.management.core.model.Server.SERVER_STATUS; import com.gluster.storage.management.core.model.TaskInfo; -import com.gluster.storage.management.core.model.GlusterServer.SERVER_STATUS; import com.gluster.storage.management.core.model.TaskInfo.TASK_TYPE; import com.gluster.storage.management.gui.GlusterDataModelManager; import com.gluster.storage.management.gui.IImageKeys; -import com.gluster.storage.management.gui.utils.ChartViewerComposite.CHART_TYPE; -import com.gluster.storage.management.gui.utils.GUIHelper; import com.gluster.storage.management.gui.utils.ChartViewerComposite; +import com.gluster.storage.management.gui.utils.GUIHelper; /** * diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java index d9e82f64..be23fcd3 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumeSummaryView.java @@ -39,8 +39,8 @@ import com.gluster.storage.management.core.model.DefaultClusterListener; import com.gluster.storage.management.core.model.Disk; import com.gluster.storage.management.core.model.Event; import com.gluster.storage.management.core.model.GlusterServer; -import com.gluster.storage.management.core.model.GlusterServer.SERVER_STATUS; import com.gluster.storage.management.core.model.Partition; +import com.gluster.storage.management.core.model.Server.SERVER_STATUS; import com.gluster.storage.management.core.model.Volume; import com.gluster.storage.management.core.model.Volume.NAS_PROTOCOL; import com.gluster.storage.management.core.model.Volume.VOLUME_TYPE; diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/GlusterServersResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/GlusterServersResource.java index 271161b9..28cf419d 100644 --- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/GlusterServersResource.java +++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/GlusterServersResource.java @@ -57,7 +57,7 @@ import com.gluster.storage.management.core.constants.RESTConstants; 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.model.Server.SERVER_STATUS; import com.gluster.storage.management.core.model.TaskStatus; import com.gluster.storage.management.core.response.GlusterServerListResponse; import com.gluster.storage.management.core.response.ServerNameListResponse; 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 59cb185b..47960827 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 @@ -18,16 +18,10 @@ *******************************************************************************/ package com.gluster.storage.management.server.services; -import static com.gluster.storage.management.core.constants.RESTConstants.FORM_PARAM_CLUSTER_NAME; -import static com.gluster.storage.management.core.constants.RESTConstants.FORM_PARAM_SERVER_NAME; -import static com.gluster.storage.management.core.constants.RESTConstants.PATH_PARAM_CLUSTER_NAME; - import java.util.ArrayList; import java.util.List; import javax.persistence.EntityTransaction; -import javax.ws.rs.FormParam; -import javax.ws.rs.PathParam; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; @@ -37,8 +31,9 @@ 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.model.Server.SERVER_STATUS; import com.gluster.storage.management.core.utils.LRUCache; +import com.gluster.storage.management.core.utils.ProcessResult; import com.gluster.storage.management.server.data.ClusterInfo; import com.gluster.storage.management.server.data.PersistenceDao; import com.gluster.storage.management.server.data.ServerInfo; @@ -105,15 +100,14 @@ public class ClusterService { for (ServerInfo serverInfo : cluster.getServers()) { GlusterServer server = new GlusterServer(serverInfo.getName()); - server.setStatus(SERVER_STATUS.ONLINE); try { - serverUtil.fetchServerDetails(server); + serverUtil.fetchServerDetails(server); // Online status come with server details + // server is online. add it to cache and return if (server.isOnline() && !server.getName().equals(exceptServerName)) { - // server is online. add it to cache and return addOnlineServer(clusterName, server); return server; } - } catch(ConnectionException e) { + } 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/GlusterUtil.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/GlusterUtil.java index f43b7ae6..304da012 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 @@ -34,9 +34,9 @@ import com.gluster.storage.management.core.exceptions.GlusterRuntimeException; import com.gluster.storage.management.core.model.Brick; import com.gluster.storage.management.core.model.Brick.BRICK_STATUS; import com.gluster.storage.management.core.model.GlusterServer; -import com.gluster.storage.management.core.model.GlusterServer.SERVER_STATUS; import com.gluster.storage.management.core.model.InitDiskStatusResponse; import com.gluster.storage.management.core.model.InitDiskStatusResponse.FORMAT_STATUS; +import com.gluster.storage.management.core.model.Server.SERVER_STATUS; import com.gluster.storage.management.core.model.Status; import com.gluster.storage.management.core.model.TaskStatus; import com.gluster.storage.management.core.model.Volume; -- cgit