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(-)
----------------------------------------------------------------------