diff options
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> |