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 16:11:36 +0530
commit19ae0ace5419f0cbf7a953311d45cc29bc1bcfc1 (patch)
tree2b9c0571634c122e2ad3f2145aad257c97ff89fc /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.java10
2 files changed, 24 insertions, 8 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..99e256ff 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,8 +453,9 @@ 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);
+ throw 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";