summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSelvasundaram <selvam@gluster.com>2011-11-10 08:29:49 +0530
committerSelvasundaram <selvam@gluster.com>2011-11-10 08:34:42 +0530
commit5db18d827c55d4452b55e8215721b86fbfa49c92 (patch)
tree680661201773a7b78776f9313fcb640cf555715d /src
parenta7d564e78889cc2ce4950579e09d755be19ee63a (diff)
Story#65 Task#189 Double click on volume log row will show in a popup dialog
Diffstat (limited to 'src')
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/VolumeLogsView.java24
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/pages/VolumeLogsPage.java5
-rw-r--r--src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/Gluster323InterfaceService.java2
-rw-r--r--src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/GlusterInterface.java4
-rw-r--r--src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/GlusterInterfaceService.java4
-rw-r--r--src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/VolumeService.java4
6 files changed, 36 insertions, 7 deletions
diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/VolumeLogsView.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/VolumeLogsView.java
index 7f35d332..2790869f 100644
--- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/VolumeLogsView.java
+++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/VolumeLogsView.java
@@ -1,14 +1,22 @@
package com.gluster.storage.management.console.views;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.part.ViewPart;
import com.gluster.storage.management.console.utils.GUIHelper;
import com.gluster.storage.management.console.views.pages.VolumeLogsPage;
+import com.gluster.storage.management.core.constants.CoreConstants;
import com.gluster.storage.management.core.model.Volume;
+import com.gluster.storage.management.core.model.VolumeLogMessage;
+import com.gluster.storage.management.core.utils.DateUtil;
-public class VolumeLogsView extends ViewPart {
+public class VolumeLogsView extends ViewPart implements IDoubleClickListener {
VolumeLogsPage logsPage;
public static final String ID = VolumeLogsView.class.getName();
private static final GUIHelper guiHelper = GUIHelper.getInstance();
@@ -25,6 +33,8 @@ public class VolumeLogsView extends ViewPart {
private void createPage(Composite parent) {
logsPage = new VolumeLogsPage(parent, SWT.NONE, volume);
+ logsPage.addDoubleClickListener(this);
+
parent.layout(); // IMP: lays out the form properly
}
@@ -32,4 +42,16 @@ public class VolumeLogsView extends ViewPart {
public void setFocus() {
logsPage.setFocus();
}
+
+ @Override
+ public void doubleClick(DoubleClickEvent event) {
+ VolumeLogMessage volumeLogMessage = (VolumeLogMessage) ((StructuredSelection) event.getSelection())
+ .getFirstElement();
+ String message = DateUtil.formatDate(volumeLogMessage.getTimestamp()) + " "
+ + DateUtil.formatTime(volumeLogMessage.getTimestamp()) + " [" + volumeLogMessage.getSeverity() + "]"
+ + CoreConstants.NEWLINE + CoreConstants.NEWLINE + volumeLogMessage.getMessage();
+
+ new MessageDialog(getSite().getShell(), "Log message from " + volumeLogMessage.getBrick(), GUIHelper
+ .getInstance().getImage(""), message, MessageDialog.NONE, new String[] { "Close" }, 0).open();
+ }
} \ No newline at end of file
diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/pages/VolumeLogsPage.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/pages/VolumeLogsPage.java
index e573229c..162160f8 100644
--- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/pages/VolumeLogsPage.java
+++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/pages/VolumeLogsPage.java
@@ -26,6 +26,7 @@ import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.layout.TableColumnLayout;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.DisposeEvent;
@@ -423,4 +424,8 @@ public class VolumeLogsPage extends Composite {
calendar.set(Calendar.SECOND, time.getSeconds());
return calendar.getTime();
}
+
+ public void addDoubleClickListener(IDoubleClickListener listener) {
+ tableViewer.addDoubleClickListener(listener);
+ }
}
diff --git a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/Gluster323InterfaceService.java b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/Gluster323InterfaceService.java
index 9b093baf..a4cc5575 100644
--- a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/Gluster323InterfaceService.java
+++ b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/Gluster323InterfaceService.java
@@ -434,7 +434,7 @@ public class Gluster323InterfaceService extends AbstractGlusterInterface {
* @see com.gluster.storage.management.gateway.utils.GlusterInterface#getLogFileNameForBrickDir(java.lang.String)
*/
@Override
- public String getLogFileNameForBrickDir(String brickDir) {
+ public String getLogFileNameForBrickDir(String serverName, String brickDir) {
String logFileName = brickDir;
if (logFileName.length() > 0 && logFileName.charAt(0) == '/') {
logFileName = logFileName.replaceFirst("/", "");
diff --git a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/GlusterInterface.java b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/GlusterInterface.java
index c282bb45..a4641e07 100644
--- a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/GlusterInterface.java
+++ b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/GlusterInterface.java
@@ -224,11 +224,13 @@ public interface GlusterInterface {
/**
* Returns the log file name for given brick directory.
*
+ * @param serverName
+ * Server to which the brick belongs
* @param brickDir
* Brick directory for which log file name is to be returned.
* @return The log file name (without path) for the given brick directory.
*/
- public abstract String getLogFileNameForBrickDir(String brickDir);
+ public abstract String getLogFileNameForBrickDir(String serverName, String brickDir);
/**
* Checks the status of "Rebalance" operation on given Volume by executing appropriate Gluster command on the
diff --git a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/GlusterInterfaceService.java b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/GlusterInterfaceService.java
index 4baca5d9..584d5f50 100644
--- a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/GlusterInterfaceService.java
+++ b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/GlusterInterfaceService.java
@@ -166,8 +166,8 @@ public class GlusterInterfaceService extends AbstractGlusterInterface {
* @see com.gluster.storage.management.gateway.utils.GlusterInterface#getLogFileNameForBrickDir(java.lang.String)
*/
@Override
- public String getLogFileNameForBrickDir(String brickDir) {
- return getGlusterInterface(brickDir.split(":")[0]).getLogFileNameForBrickDir(brickDir);
+ public String getLogFileNameForBrickDir(String serverName, String brickDir) {
+ return getGlusterInterface(serverName).getLogFileNameForBrickDir(serverName, brickDir);
}
/* (non-Javadoc)
diff --git a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/VolumeService.java b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/VolumeService.java
index 1a86b9cd..66f839d1 100644
--- a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/VolumeService.java
+++ b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/VolumeService.java
@@ -465,7 +465,7 @@ public class VolumeService {
for (Brick brick : volume.getBricks()) {
String logDir = glusterUtil.getLogLocation(volume.getName(), brick.getQualifiedName(),
brick.getServerName());
- String logFileName = glusterUtil.getLogFileNameForBrickDir(brick.getBrickDirectory());
+ String logFileName = glusterUtil.getLogFileNameForBrickDir(brick.getServerName(), brick.getBrickDirectory());
String logFilePath = logDir + CoreConstants.FILE_SEPARATOR + logFileName;
serverUtil.getFileFromServer(brick.getServerName(), logFilePath, tempDirPath);
@@ -587,7 +587,7 @@ public class VolumeService {
private List<VolumeLogMessage> getBrickLogs(Volume volume, Brick brick, Integer lineCount)
throws GlusterRuntimeException {
String logDir = glusterUtil.getLogLocation(volume.getName(), brick.getQualifiedName(), brick.getServerName());
- String logFileName = glusterUtil.getLogFileNameForBrickDir(brick.getBrickDirectory());
+ String logFileName = glusterUtil.getLogFileNameForBrickDir(brick.getServerName(), brick.getBrickDirectory());
String logFilePath = logDir + CoreConstants.FILE_SEPARATOR + logFileName;
// Usage: get_volume_disk_log.py <volumeName> <diskName> <lineCount>