From ae1720c5ec14f5290d78eff56c63346234c1051a Mon Sep 17 00:00:00 2001 From: Shireesh Anjal Date: Fri, 10 Jun 2011 16:11:36 +0530 Subject: Bug 2897 - Complete brick log file will not be downloaded --- .../storage/management/core/utils/FileUtil.java | 22 +++++++++++++++------- .../server/resources/VolumesResource.java | 8 ++++++++ 2 files changed, 23 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/utils/FileUtil.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/utils/FileUtil.java index d93ab2fb..d10dfee5 100644 --- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/utils/FileUtil.java +++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/utils/FileUtil.java @@ -107,20 +107,28 @@ public class FileUtil { * the file or dir to delete * @return true if all files are successfully deleted */ - public static boolean recursiveDelete(File fileOrDir) + public static void recursiveDelete(File fileOrDir) { if(fileOrDir.isDirectory()) { // recursively delete contents for(File innerFile: fileOrDir.listFiles()) { - if(!recursiveDelete(innerFile)) - { - return false; - } + recursiveDelete(innerFile); } } - return fileOrDir.delete(); + if(!fileOrDir.delete()) { + throw new GlusterRuntimeException("Couldn't delete file/directory [" + fileOrDir + "]"); + } + } + + public static void renameFile(String fromPath, String toPath) { + File fromFile = new File(fromPath); + File toFile = new File(toPath); + + if(!fromFile.renameTo(toFile)) { + throw new GlusterRuntimeException("Couldn't rename [" + fromFile + "] to [" + toFile + "]"); + } } -} \ No newline at end of file +} diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java index c8796d27..1cbab5b0 100644 --- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java +++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java @@ -453,6 +453,7 @@ public class VolumesResource { output.write(FileUtil.readFileAsByteArray(archiveFile)); archiveFile.delete(); } catch (Exception e) { + // TODO: Log the exception e.printStackTrace(); throw new GlusterRuntimeException("Exception while downloading/archiving volume log files!", e); } @@ -472,6 +473,13 @@ public class VolumesResource { String logFilePath = logDir + CoreConstants.FILE_SEPARATOR + logFileName; serverUtil.getFileFromServer(brick.getServerName(), logFilePath, tempDirPath); + + String fetchedLogFile = tempDirPath + File.separator + logFileName; + // append log file name with server name so that log files don't overwrite each other + // in cases where the brick log file names are same on multiple servers + String localLogFile = tempDirPath + File.separator + brick.getServerName() + "-" + logFileName; + + FileUtil.renameFile(fetchedLogFile, localLogFile); } String gzipPath = FileUtil.getTempDirName() + CoreConstants.FILE_SEPARATOR + volume.getName() + "-logs.tar.gz"; -- cgit