Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master dfdc68703 -> 2066ea95f


Mysql template upload: ensure tmp file is deleted

Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/817b820b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/817b820b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/817b820b

Branch: refs/heads/master
Commit: 817b820b6fd6fd6f3bfda2afdb8f9e82c5dfa66b
Parents: 119d894
Author: Aled Sage <[email protected]>
Authored: Tue Mar 3 15:57:32 2015 +0000
Committer: Aled Sage <[email protected]>
Committed: Tue Mar 3 15:57:32 2015 +0000

----------------------------------------------------------------------
 .../entity/database/mysql/MySqlSshDriver.java   | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/817b820b/software/database/src/main/java/brooklyn/entity/database/mysql/MySqlSshDriver.java
----------------------------------------------------------------------
diff --git 
a/software/database/src/main/java/brooklyn/entity/database/mysql/MySqlSshDriver.java
 
b/software/database/src/main/java/brooklyn/entity/database/mysql/MySqlSshDriver.java
index a4e28d5..fb13175 100644
--- 
a/software/database/src/main/java/brooklyn/entity/database/mysql/MySqlSshDriver.java
+++ 
b/software/database/src/main/java/brooklyn/entity/database/mysql/MySqlSshDriver.java
@@ -25,10 +25,8 @@ import static java.lang.String.format;
 
 import java.io.BufferedWriter;
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.FileWriter;
 import java.io.IOException;
-import java.io.InputStream;
 import java.io.Reader;
 import java.io.StringReader;
 import java.util.LinkedList;
@@ -48,9 +46,11 @@ import brooklyn.location.basic.BasicOsDetails.OsVersions;
 import brooklyn.location.basic.SshMachineLocation;
 import brooklyn.util.collections.MutableMap;
 import brooklyn.util.exceptions.Exceptions;
+import brooklyn.util.io.FileUtil;
 import brooklyn.util.net.Urls;
 import brooklyn.util.os.Os;
 import brooklyn.util.ssh.BashCommands;
+import brooklyn.util.stream.Streams;
 import brooklyn.util.task.DynamicTasks;
 import brooklyn.util.task.system.ProcessTaskWrapper;
 import brooklyn.util.text.ComparableVersion;
@@ -195,17 +195,21 @@ public class MySqlSshDriver extends 
AbstractSoftwareProcessSshDriver implements
         String creationScriptContents = 
DatastoreMixins.getDatabaseCreationScriptAsString(entity);
         if (creationScriptContents==null) return false;
 
-        File templateFile;
+        File templateFile = null;
+        BufferedWriter writer = null;
         try {
             templateFile = File.createTempFile("mysql", null);
-            templateFile.deleteOnExit();
-            BufferedWriter writer = new BufferedWriter(new 
FileWriter(templateFile));
-            writer.write (creationScriptContents);
+            FileUtil.setFilePermissionsTo600(templateFile);
+            writer = new BufferedWriter(new FileWriter(templateFile));
+            writer.write(creationScriptContents);
+            writer.flush();
+            copyTemplate(templateFile.getAbsoluteFile(), getRunDir() + 
"/creation-script.sql");
         } catch (IOException e) {
             throw Exceptions.propagate(e);
+        } finally {
+            if (writer != null) Streams.closeQuietly(writer);
+            if (templateFile != null) templateFile.delete();
         }
-        copyTemplate(templateFile.getAbsoluteFile(), getRunDir() + 
"/creation-script.sql");
-        templateFile.delete();
         return true;
     }
 

Reply via email to