You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2015/03/03 16:50:59 UTC

[1/2] incubator-brooklyn git commit: Adds template processing to the MySQL database creation script

Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master b35c338a9 -> 119d8945f


Adds template processing to the MySQL database creation script


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

Branch: refs/heads/master
Commit: f6c843427195a2178591e2cc8926c642887dc067
Parents: eab2d39
Author: Martin Harris <gi...@nakomis.com>
Authored: Tue Mar 3 15:24:09 2015 +0000
Committer: Martin Harris <gi...@nakomis.com>
Committed: Tue Mar 3 15:24:09 2015 +0000

----------------------------------------------------------------------
 .../entity/database/DatastoreMixins.java        | 11 ++++++++++
 .../entity/database/mysql/MySqlSshDriver.java   | 23 +++++++++++++++++---
 2 files changed, 31 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f6c84342/software/database/src/main/java/brooklyn/entity/database/DatastoreMixins.java
----------------------------------------------------------------------
diff --git a/software/database/src/main/java/brooklyn/entity/database/DatastoreMixins.java b/software/database/src/main/java/brooklyn/entity/database/DatastoreMixins.java
index bb01c8f..f11f0a6 100644
--- a/software/database/src/main/java/brooklyn/entity/database/DatastoreMixins.java
+++ b/software/database/src/main/java/brooklyn/entity/database/DatastoreMixins.java
@@ -26,6 +26,7 @@ import brooklyn.config.ConfigKey;
 import brooklyn.entity.Effector;
 import brooklyn.entity.Entity;
 import brooklyn.entity.basic.ConfigKeys;
+import brooklyn.entity.basic.EntityLocal;
 import brooklyn.entity.effector.Effectors;
 import brooklyn.event.AttributeSensor;
 import brooklyn.event.basic.Sensors;
@@ -79,6 +80,16 @@ public class DatastoreMixins {
         return null;
     }
 
+    /** returns the creation script contents, if it exists, or null if none is defined (error if it cannot be loaded) */
+    @Nullable public static String getDatabaseCreationScriptAsString(Entity entity) {
+        String url = entity.getConfig(DatastoreMixins.CREATION_SCRIPT_URL);
+        if (!Strings.isBlank(url))
+            return new ResourceUtils(entity).getResourceAsString(url);
+        String contents = entity.getConfig(DatastoreMixins.CREATION_SCRIPT_CONTENTS);
+        if (!Strings.isBlank(contents))
+            return contents;
+        return null;
+    }
     
     /** An entity with the most common datastore config, sensors, and effectors */ 
     public interface DatastoreCommon extends Entity, DatastoreMixins.HasDatastoreUrl, DatastoreMixins.CanExecuteScript, DatastoreMixins.CanGiveCreationScript {

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f6c84342/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 28a1ff3..a4e28d5 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
@@ -23,6 +23,11 @@ import static brooklyn.util.ssh.BashCommands.commandsToDownloadUrlsAs;
 import static brooklyn.util.ssh.BashCommands.installPackage;
 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;
@@ -42,6 +47,7 @@ import brooklyn.location.OsDetails;
 import brooklyn.location.basic.BasicOsDetails.OsVersions;
 import brooklyn.location.basic.SshMachineLocation;
 import brooklyn.util.collections.MutableMap;
+import brooklyn.util.exceptions.Exceptions;
 import brooklyn.util.net.Urls;
 import brooklyn.util.os.Os;
 import brooklyn.util.ssh.BashCommands;
@@ -186,9 +192,20 @@ public class MySqlSshDriver extends AbstractSoftwareProcessSshDriver implements
     }
 
     protected boolean copyDatabaseCreationScript() {
-        InputStream creationScript = DatastoreMixins.getDatabaseCreationScript(entity);
-        if (creationScript==null) return false;
-        getMachine().copyTo(creationScript, getRunDir() + "/creation-script.sql");
+        String creationScriptContents = DatastoreMixins.getDatabaseCreationScriptAsString(entity);
+        if (creationScriptContents==null) return false;
+
+        File templateFile;
+        try {
+            templateFile = File.createTempFile("mysql", null);
+            templateFile.deleteOnExit();
+            BufferedWriter writer = new BufferedWriter(new FileWriter(templateFile));
+            writer.write (creationScriptContents);
+        } catch (IOException e) {
+            throw Exceptions.propagate(e);
+        }
+        copyTemplate(templateFile.getAbsoluteFile(), getRunDir() + "/creation-script.sql");
+        templateFile.delete();
         return true;
     }
 


[2/2] incubator-brooklyn git commit: This closes #530

Posted by al...@apache.org.
This closes #530


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

Branch: refs/heads/master
Commit: 119d8945f86de2a3ee150cfaff375f8cafd5ec04
Parents: b35c338 f6c8434
Author: Aled Sage <al...@gmail.com>
Authored: Tue Mar 3 15:50:48 2015 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Tue Mar 3 15:50:48 2015 +0000

----------------------------------------------------------------------
 .../entity/database/DatastoreMixins.java        | 11 ++++++++++
 .../entity/database/mysql/MySqlSshDriver.java   | 23 +++++++++++++++++---
 2 files changed, 31 insertions(+), 3 deletions(-)
----------------------------------------------------------------------