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; }
