summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorShireesh Anjal <shireesh@gluster.com>2011-06-10 16:11:36 +0530
committerShireesh Anjal <shireesh@gluster.com>2011-06-10 17:16:12 +0530
commitae1720c5ec14f5290d78eff56c63346234c1051a (patch)
tree192a37e62b6a7f651d8fd6cb21ca3b832a8304b1 /src
parent2b228a44719bbfa33ae87da2cf04c50b1c00f378 (diff)
Bug 2897 - Complete brick log file will not be downloaded
Diffstat (limited to 'src')
-rw-r--r--src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/utils/FileUtil.java22
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java8
2 files changed, 23 insertions, 7 deletions
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";