Move download resolver and expanded install dir setup to preInstall method
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/32e99110 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/32e99110 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/32e99110 Branch: refs/heads/master Commit: 32e991104c7e4c37060aed05f19fa85a02f3933b Parents: a5012ce Author: Andrew Kennedy <[email protected]> Authored: Thu Aug 28 22:02:36 2014 +0100 Committer: Andrew Kennedy <[email protected]> Committed: Sat Aug 30 17:25:36 2014 +0100 ---------------------------------------------------------------------- .../nosql/infinispan/Infinispan5SshDriver.java | 5 ----- .../basic/AbstractSoftwareProcessDriver.java | 9 ++++++++ .../basic/AbstractSoftwareProcessSshDriver.java | 3 +++ .../brooklynnode/BrooklynNodeSshDriver.java | 16 ++++++++------ .../database/mariadb/MariaDbSshDriver.java | 14 +++++++----- .../entity/database/mysql/MySqlSshDriver.java | 11 ++++++---- .../database/rubyrep/RubyRepSshDriver.java | 13 ++++++----- .../messaging/activemq/ActiveMQSshDriver.java | 9 +++++--- .../kafka/AbstractfKafkaSshDriver.java | 11 ++++++---- .../entity/messaging/qpid/QpidSshDriver.java | 11 ++++++---- .../messaging/rabbit/RabbitSshDriver.java | 10 ++++++--- .../entity/messaging/storm/StormSshDriver.java | 10 +++++---- .../entity/zookeeper/ZooKeeperSshDriver.java | 9 +++++--- .../entity/monitoring/monit/MonitSshDriver.java | 14 ++++++++---- .../nosql/cassandra/CassandraNodeSshDriver.java | 12 +++++----- .../nosql/couchbase/CouchbaseNodeSshDriver.java | 13 ++++++----- .../ElasticSearchNodeSshDriver.java | 10 +++++---- .../nosql/mongodb/AbstractMongoDBSshDriver.java | 10 ++++++--- .../entity/nosql/redis/RedisStoreSshDriver.java | 10 ++++++--- .../entity/nosql/riak/RiakNodeSshDriver.java | 23 +++++++++++--------- .../entity/nosql/solr/SolrServerSshDriver.java | 13 ++++++----- .../entity/osgi/karaf/KarafSshDriver.java | 11 ++++++---- .../entity/proxy/nginx/NginxSshDriver.java | 14 ++++++++---- .../entity/webapp/jboss/JBoss6SshDriver.java | 9 +++++--- .../entity/webapp/jboss/JBoss7SshDriver.java | 9 +++++--- .../entity/webapp/jetty/Jetty6SshDriver.java | 9 +++++--- .../webapp/nodejs/NodeJsWebAppSshDriver.java | 4 ++++ .../entity/webapp/tomcat/Tomcat7SshDriver.java | 8 +++++-- 28 files changed, 193 insertions(+), 107 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/sandbox/nosql/src/main/java/brooklyn/entity/nosql/infinispan/Infinispan5SshDriver.java ---------------------------------------------------------------------- diff --git a/sandbox/nosql/src/main/java/brooklyn/entity/nosql/infinispan/Infinispan5SshDriver.java b/sandbox/nosql/src/main/java/brooklyn/entity/nosql/infinispan/Infinispan5SshDriver.java index ba595a9..361a6ab 100644 --- a/sandbox/nosql/src/main/java/brooklyn/entity/nosql/infinispan/Infinispan5SshDriver.java +++ b/sandbox/nosql/src/main/java/brooklyn/entity/nosql/infinispan/Infinispan5SshDriver.java @@ -24,8 +24,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import brooklyn.entity.basic.Entities; -import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.entity.java.JavaSoftwareProcessSshDriver; import brooklyn.location.Location; import brooklyn.location.basic.SshMachineLocation; @@ -59,11 +57,8 @@ public class Infinispan5SshDriver extends JavaSoftwareProcessSshDriver implement @Override public void install() { - DownloadResolver resolver = Entities.newDownloader(this); List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); - // FIXME will saveAs be "infinispan-${version}-all.zip"? - setExpandedInstallDir(getInstallDir()); // unpacks to current directory, rather than sub-directory List<String> commands = ImmutableList.<String>builder() .addAll(BashCommands.commandsToDownloadUrlsAs(urls, saveAs)) http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessDriver.java ---------------------------------------------------------------------- diff --git a/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessDriver.java b/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessDriver.java index 18c5e06..609c624 100644 --- a/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessDriver.java +++ b/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessDriver.java @@ -79,6 +79,10 @@ public abstract class AbstractSoftwareProcessDriver implements SoftwareProcessDr */ @Override public void start() { + DynamicTasks.queue("post-launch", new Runnable() { public void run() { + preInstall(); + }}); + if (Strings.isNonBlank(entity.getConfig(BrooklynConfigKeys.PRE_INSTALL_COMMAND))) { DynamicTasks.queue("pre-install command", new Runnable() { public void run() { runPreInstallCommand(entity.getConfig(BrooklynConfigKeys.PRE_INSTALL_COMMAND)); @@ -139,6 +143,11 @@ public abstract class AbstractSoftwareProcessDriver implements SoftwareProcessDr @Override public abstract void stop(); + /** + * Implement this method in child classes to add some post-launch behavior + */ + public void preInstall() {} + public abstract void runPreInstallCommand(String command); public abstract void setup(); public abstract void install(); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessSshDriver.java ---------------------------------------------------------------------- diff --git a/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessSshDriver.java b/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessSshDriver.java index eb51e7d..213fb32 100644 --- a/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessSshDriver.java +++ b/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessSshDriver.java @@ -37,6 +37,7 @@ import org.slf4j.LoggerFactory; import brooklyn.config.BrooklynLogging; import brooklyn.entity.basic.lifecycle.NaiveScriptRunner; import brooklyn.entity.basic.lifecycle.ScriptHelper; +import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.entity.drivers.downloads.DownloadResolverManager; import brooklyn.entity.software.SshEffectorTasks; import brooklyn.event.feed.ConfigToAttributes; @@ -80,6 +81,8 @@ public abstract class AbstractSoftwareProcessSshDriver extends AbstractSoftwareP private volatile String installDir; private volatile String runDir; private volatile String expandedInstallDir; + + protected volatile DownloadResolver resolver; /** include this flag in newScript creation to prevent entity-level flags from being included; * any SSH-specific flags passed to newScript override flags from the entity, http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNodeSshDriver.java ---------------------------------------------------------------------- diff --git a/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNodeSshDriver.java b/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNodeSshDriver.java index cfdbc85..14f628c 100644 --- a/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNodeSshDriver.java +++ b/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNodeSshDriver.java @@ -30,7 +30,6 @@ import java.util.Map; import brooklyn.entity.basic.Entities; import brooklyn.entity.brooklynnode.BrooklynNode.ExistingFileBehaviour; -import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.entity.java.JavaSoftwareProcessSshDriver; import brooklyn.entity.software.SshEffectorTasks; import brooklyn.location.basic.SshMachineLocation; @@ -78,7 +77,15 @@ public class BrooklynNodeSshDriver extends JavaSoftwareProcessSshDriver implemen protected String getInstallLabelExtraSalt() { return Identifiers.makeIdFromHash(Objects.hashCode(entity.getConfig(BrooklynNode.DOWNLOAD_URL), entity.getConfig(BrooklynNode.DISTRO_UPLOAD_URL))); } - + + @Override + public void preInstall() { + resolver = Entities.newDownloader(this); + String subpath = entity.getConfig(BrooklynNode.SUBPATH_IN_ARCHIVE); + if (Strings.isBlank(subpath)) subpath = format("brooklyn-%s", getVersion()); + setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(subpath))); + } + @Override public void install() { String uploadUrl = entity.getConfig(BrooklynNode.DISTRO_UPLOAD_URL); @@ -87,14 +94,9 @@ public class BrooklynNodeSshDriver extends JavaSoftwareProcessSshDriver implemen // This filename is used to generate the first URL to try: // file://$HOME/.brooklyn/repository/BrooklynNode/0.6.0-SNAPSHOT/brooklyn-0.6.0-SNAPSHOT-dist.tar.gz // (DOWNLOAD_URL overrides this and has a default which comes from maven) - DownloadResolver resolver = Entities.newDownloader(this); List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); - String subpath = entity.getConfig(BrooklynNode.SUBPATH_IN_ARCHIVE); - if (Strings.isBlank(subpath)) subpath = format("brooklyn-%s", getVersion()); - setExpandedInstallDir(getInstallDir()+"/"+resolver.getUnpackedDirectoryName(subpath)); - newScript("createInstallDir") .body.append("mkdir -p "+getInstallDir()) .failOnNonZeroResultCode() http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/database/src/main/java/brooklyn/entity/database/mariadb/MariaDbSshDriver.java ---------------------------------------------------------------------- diff --git a/software/database/src/main/java/brooklyn/entity/database/mariadb/MariaDbSshDriver.java b/software/database/src/main/java/brooklyn/entity/database/mariadb/MariaDbSshDriver.java index e25d2f2..ca80a70 100644 --- a/software/database/src/main/java/brooklyn/entity/database/mariadb/MariaDbSshDriver.java +++ b/software/database/src/main/java/brooklyn/entity/database/mariadb/MariaDbSshDriver.java @@ -19,9 +19,7 @@ package brooklyn.entity.database.mariadb; import static brooklyn.util.JavaGroovyEquivalents.groovyTruth; -import static brooklyn.util.ssh.BashCommands.commandsToDownloadUrlsAs; -import static brooklyn.util.ssh.BashCommands.installPackage; -import static brooklyn.util.ssh.BashCommands.ok; +import static brooklyn.util.ssh.BashCommands.*; import static java.lang.String.format; import java.io.InputStream; @@ -38,12 +36,12 @@ import brooklyn.entity.basic.AbstractSoftwareProcessSshDriver; import brooklyn.entity.basic.Attributes; import brooklyn.entity.basic.Entities; import brooklyn.entity.database.DatastoreMixins; -import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.entity.software.SshEffectorTasks; import brooklyn.location.OsDetails; import brooklyn.location.basic.SshMachineLocation; import brooklyn.util.collections.MutableMap; import brooklyn.util.net.Urls; +import brooklyn.util.os.Os; import brooklyn.util.ssh.BashCommands; import brooklyn.util.task.DynamicTasks; import brooklyn.util.task.system.ProcessTaskWrapper; @@ -111,11 +109,15 @@ public class MariaDbSshDriver extends AbstractSoftwareProcessSshDriver implement } @Override + public void preInstall() { + resolver = Entities.newDownloader(this, ImmutableMap.of("filename", getInstallFilename())); + setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("mariadb-%s-%s", getVersion(), getOsTag())))); + } + + @Override public void install() { - DownloadResolver resolver = Entities.newDownloader(this, ImmutableMap.of("filename", getInstallFilename())); List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); - setExpandedInstallDir(getInstallDir() + "/" + resolver.getUnpackedDirectoryName(format("mariadb-%s-%s", getVersion(), getOsTag()))); List<String> commands = new LinkedList<String>(); commands.add(BashCommands.INSTALL_TAR); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/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 49dc209..da4f3b6 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 @@ -21,7 +21,6 @@ package brooklyn.entity.database.mysql; import static brooklyn.util.JavaGroovyEquivalents.groovyTruth; import static brooklyn.util.ssh.BashCommands.commandsToDownloadUrlsAs; import static brooklyn.util.ssh.BashCommands.installPackage; -import static brooklyn.util.ssh.BashCommands.ok; import static java.lang.String.format; import java.io.InputStream; @@ -38,13 +37,13 @@ import brooklyn.entity.basic.AbstractSoftwareProcessSshDriver; import brooklyn.entity.basic.Attributes; import brooklyn.entity.basic.Entities; import brooklyn.entity.database.DatastoreMixins; -import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.entity.software.SshEffectorTasks; import brooklyn.location.OsDetails; import brooklyn.location.basic.BasicOsDetails.OsVersions; import brooklyn.location.basic.SshMachineLocation; import brooklyn.util.collections.MutableMap; import brooklyn.util.net.Urls; +import brooklyn.util.os.Os; import brooklyn.util.ssh.BashCommands; import brooklyn.util.task.DynamicTasks; import brooklyn.util.task.system.ProcessTaskWrapper; @@ -111,11 +110,15 @@ public class MySqlSshDriver extends AbstractSoftwareProcessSshDriver implements } @Override + public void preInstall() { + resolver = Entities.newDownloader(this, ImmutableMap.of("filename", getInstallFilename())); + setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("mysql-%s-%s", getVersion(), getOsTag())))); + } + + @Override public void install() { - DownloadResolver resolver = Entities.newDownloader(this, ImmutableMap.of("filename", getInstallFilename())); List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); - setExpandedInstallDir(getInstallDir() + "/" + resolver.getUnpackedDirectoryName(format("mysql-%s-%s", getVersion(), getOsTag()))); List<String> commands = new LinkedList<String>(); commands.add(BashCommands.INSTALL_TAR); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/database/src/main/java/brooklyn/entity/database/rubyrep/RubyRepSshDriver.java ---------------------------------------------------------------------- diff --git a/software/database/src/main/java/brooklyn/entity/database/rubyrep/RubyRepSshDriver.java b/software/database/src/main/java/brooklyn/entity/database/rubyrep/RubyRepSshDriver.java index 56bec94..d1c4087 100644 --- a/software/database/src/main/java/brooklyn/entity/database/rubyrep/RubyRepSshDriver.java +++ b/software/database/src/main/java/brooklyn/entity/database/rubyrep/RubyRepSshDriver.java @@ -32,9 +32,9 @@ import brooklyn.entity.basic.AbstractSoftwareProcessSshDriver; import brooklyn.entity.basic.Attributes; import brooklyn.entity.basic.Entities; import brooklyn.entity.basic.EntityLocal; -import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.location.basic.SshMachineLocation; import brooklyn.util.collections.MutableMap; +import brooklyn.util.os.Os; import brooklyn.util.ssh.BashCommands; import brooklyn.util.stream.Streams; @@ -51,12 +51,17 @@ public class RubyRepSshDriver extends AbstractSoftwareProcessSshDriver implement } protected String getLogFileLocation() { - return getRunDir() + "/log/rubyrep.log"; + return Os.mergePaths(getRunDir(), "log", "rubyrep.log"); + } + + @Override + public void preInstall() { + resolver = Entities.newDownloader(this); + setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("rubyrep-%s", getVersion())))); } @Override public void install() { - DownloadResolver resolver = Entities.newDownloader(this); List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); @@ -70,8 +75,6 @@ public class RubyRepSshDriver extends AbstractSoftwareProcessSshDriver implement .body.append(commands) .failOnNonZeroResultCode() .execute(); - - setExpandedInstallDir(getInstallDir()+"/"+resolver.getUnpackedDirectoryName(format("rubyrep-%s", getVersion()))); } @Override http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQSshDriver.java ---------------------------------------------------------------------- diff --git a/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQSshDriver.java b/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQSshDriver.java index 51c1418..f8c223d 100644 --- a/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQSshDriver.java +++ b/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQSshDriver.java @@ -25,7 +25,6 @@ import java.util.List; import java.util.Map; import brooklyn.entity.basic.Entities; -import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.entity.java.JavaSoftwareProcessSshDriver; import brooklyn.location.basic.SshMachineLocation; import brooklyn.util.collections.MutableMap; @@ -64,11 +63,15 @@ public class ActiveMQSshDriver extends JavaSoftwareProcessSshDriver implements A } @Override + public void preInstall() { + resolver = Entities.newDownloader(this); + setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("apache-activemq-%s", getVersion())))); + } + + @Override public void install() { - DownloadResolver resolver = Entities.newDownloader(this); List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); - setExpandedInstallDir(getInstallDir()+"/"+resolver.getUnpackedDirectoryName(format("apache-activemq-%s", getVersion()))); List<String> commands = new LinkedList<String>(); commands.addAll(BashCommands.commandsToDownloadUrlsAs(urls, saveAs)); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/messaging/src/main/java/brooklyn/entity/messaging/kafka/AbstractfKafkaSshDriver.java ---------------------------------------------------------------------- diff --git a/software/messaging/src/main/java/brooklyn/entity/messaging/kafka/AbstractfKafkaSshDriver.java b/software/messaging/src/main/java/brooklyn/entity/messaging/kafka/AbstractfKafkaSshDriver.java index 9b50092..010c6da 100644 --- a/software/messaging/src/main/java/brooklyn/entity/messaging/kafka/AbstractfKafkaSshDriver.java +++ b/software/messaging/src/main/java/brooklyn/entity/messaging/kafka/AbstractfKafkaSshDriver.java @@ -30,7 +30,6 @@ import org.slf4j.LoggerFactory; import brooklyn.config.ConfigKey; import brooklyn.entity.basic.Entities; import brooklyn.entity.basic.EntityLocal; -import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.entity.java.JavaSoftwareProcessSshDriver; import brooklyn.location.basic.SshMachineLocation; import brooklyn.util.collections.MutableMap; @@ -58,14 +57,18 @@ public abstract class AbstractfKafkaSshDriver extends JavaSoftwareProcessSshDriv protected abstract String getProcessIdentifier(); @Override - protected String getLogFileLocation() { return Os.mergePathsUnix(getRunDir(), "console.out"); } + protected String getLogFileLocation() { return Os.mergePaths(getRunDir(), "console.out"); } + + @Override + public void preInstall() { + resolver = Entities.newDownloader(this); + setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("kafka-%s-src", getVersion())))); + } @Override public void install() { - DownloadResolver resolver = Entities.newDownloader(this); List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); - setExpandedInstallDir(getInstallDir()+"/"+resolver.getUnpackedDirectoryName(format("kafka-%s-src", getVersion()))); List<String> commands = new LinkedList<String>(); commands.addAll(BashCommands.commandsToDownloadUrlsAs(urls, saveAs)); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/messaging/src/main/java/brooklyn/entity/messaging/qpid/QpidSshDriver.java ---------------------------------------------------------------------- diff --git a/software/messaging/src/main/java/brooklyn/entity/messaging/qpid/QpidSshDriver.java b/software/messaging/src/main/java/brooklyn/entity/messaging/qpid/QpidSshDriver.java index b336feb..2ad68be 100644 --- a/software/messaging/src/main/java/brooklyn/entity/messaging/qpid/QpidSshDriver.java +++ b/software/messaging/src/main/java/brooklyn/entity/messaging/qpid/QpidSshDriver.java @@ -28,7 +28,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import brooklyn.entity.basic.Entities; -import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.entity.java.JavaSoftwareProcessSshDriver; import brooklyn.location.basic.SshMachineLocation; import brooklyn.util.collections.MutableMap; @@ -47,7 +46,7 @@ public class QpidSshDriver extends JavaSoftwareProcessSshDriver implements QpidD } @Override - protected String getLogFileLocation() { return Os.mergePathsUnix(getRunDir(), "log/qpid.log"); } + protected String getLogFileLocation() { return Os.mergePaths(getRunDir(), "log", "qpid.log"); } @Override public Integer getAmqpPort() { return entity.getAttribute(QpidBroker.AMQP_PORT); } @@ -58,11 +57,15 @@ public class QpidSshDriver extends JavaSoftwareProcessSshDriver implements QpidD public Integer getHttpManagementPort() { return entity.getAttribute(QpidBroker.HTTP_MANAGEMENT_PORT); } @Override + public void preInstall() { + resolver = Entities.newDownloader(this); + setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("qpid-broker-%s", getVersion())))); + } + + @Override public void install() { - DownloadResolver resolver = Entities.newDownloader(this); List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); - setExpandedInstallDir(getInstallDir()+"/"+resolver.getUnpackedDirectoryName(format("qpid-broker-%s", getVersion()))); List<String> commands = new LinkedList<String>(); commands.addAll( BashCommands.commandsToDownloadUrlsAs(urls, saveAs)); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/messaging/src/main/java/brooklyn/entity/messaging/rabbit/RabbitSshDriver.java ---------------------------------------------------------------------- diff --git a/software/messaging/src/main/java/brooklyn/entity/messaging/rabbit/RabbitSshDriver.java b/software/messaging/src/main/java/brooklyn/entity/messaging/rabbit/RabbitSshDriver.java index 07beffc..bb8d4e2 100644 --- a/software/messaging/src/main/java/brooklyn/entity/messaging/rabbit/RabbitSshDriver.java +++ b/software/messaging/src/main/java/brooklyn/entity/messaging/rabbit/RabbitSshDriver.java @@ -29,11 +29,11 @@ import org.slf4j.LoggerFactory; import brooklyn.entity.basic.AbstractSoftwareProcessSshDriver; import brooklyn.entity.basic.Entities; -import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.entity.messaging.amqp.AmqpServer; import brooklyn.location.basic.SshMachineLocation; import brooklyn.util.collections.MutableMap; import brooklyn.util.net.Networking; +import brooklyn.util.os.Os; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -61,13 +61,17 @@ public class RabbitSshDriver extends AbstractSoftwareProcessSshDriver implements public RabbitBrokerImpl getEntity() { return (RabbitBrokerImpl) super.getEntity(); } + + @Override + public void preInstall() { + resolver = Entities.newDownloader(this); + setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("rabbitmq_server-%s", getVersion())))); + } @Override public void install() { - DownloadResolver resolver = Entities.newDownloader(this); List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); - setExpandedInstallDir(getInstallDir()+"/"+resolver.getUnpackedDirectoryName(format("rabbitmq_server-%s", getVersion()))); List<String> commands = ImmutableList.<String>builder() .add(ifExecutableElse0("zypper", chainGroup( http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/messaging/src/main/java/brooklyn/entity/messaging/storm/StormSshDriver.java ---------------------------------------------------------------------- diff --git a/software/messaging/src/main/java/brooklyn/entity/messaging/storm/StormSshDriver.java b/software/messaging/src/main/java/brooklyn/entity/messaging/storm/StormSshDriver.java index 0283929..12f73a1 100644 --- a/software/messaging/src/main/java/brooklyn/entity/messaging/storm/StormSshDriver.java +++ b/software/messaging/src/main/java/brooklyn/entity/messaging/storm/StormSshDriver.java @@ -31,7 +31,6 @@ import brooklyn.entity.basic.Attributes; import brooklyn.entity.basic.Entities; import brooklyn.entity.basic.EntityLocal; import brooklyn.entity.basic.SoftwareProcess; -import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.entity.java.JavaSoftwareProcessSshDriver; import brooklyn.entity.zookeeper.ZooKeeperEnsemble; import brooklyn.event.basic.DependentConfiguration; @@ -120,12 +119,15 @@ public class StormSshDriver extends JavaSoftwareProcessSshDriver implements Stor } @Override + public void preInstall() { + resolver = Entities.newDownloader(this); + setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("storm-%s", getVersion())))); + } + + @Override public void install() { - log.debug("Installing {}", entity); - DownloadResolver resolver = Entities.newDownloader(this); List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); - setExpandedInstallDir(getInstallDir() + "/" + resolver.getUnpackedDirectoryName(format("storm-%s", getVersion()))); ImmutableList.Builder<String> commands= ImmutableList.<String> builder(); if (!getLocation().getOsDetails().isMac()) { http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/messaging/src/main/java/brooklyn/entity/zookeeper/ZooKeeperSshDriver.java ---------------------------------------------------------------------- diff --git a/software/messaging/src/main/java/brooklyn/entity/zookeeper/ZooKeeperSshDriver.java b/software/messaging/src/main/java/brooklyn/entity/zookeeper/ZooKeeperSshDriver.java index 7ee67e9..5fa0275 100644 --- a/software/messaging/src/main/java/brooklyn/entity/zookeeper/ZooKeeperSshDriver.java +++ b/software/messaging/src/main/java/brooklyn/entity/zookeeper/ZooKeeperSshDriver.java @@ -26,7 +26,6 @@ import java.util.concurrent.ExecutionException; import brooklyn.entity.Entity; import brooklyn.entity.basic.Entities; -import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.entity.java.JavaSoftwareProcessSshDriver; import brooklyn.location.basic.SshMachineLocation; import brooklyn.util.collections.MutableMap; @@ -93,11 +92,15 @@ public class ZooKeeperSshDriver extends JavaSoftwareProcessSshDriver implements } @Override + public void preInstall() { + resolver = Entities.newDownloader(this); + setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("zookeeper-%s", getVersion())))); + } + + @Override public void install() { - DownloadResolver resolver = Entities.newDownloader(this); List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); - setExpandedInstallDir(getInstallDir()+"/"+resolver.getUnpackedDirectoryName(format("zookeeper-%s", getVersion()))); List<String> commands = ImmutableList.<String> builder() .addAll(BashCommands.commandsToDownloadUrlsAs(urls, saveAs)) http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/monitoring/src/main/java/brooklyn/entity/monitoring/monit/MonitSshDriver.java ---------------------------------------------------------------------- diff --git a/software/monitoring/src/main/java/brooklyn/entity/monitoring/monit/MonitSshDriver.java b/software/monitoring/src/main/java/brooklyn/entity/monitoring/monit/MonitSshDriver.java index fbb57c3..5fd5749 100644 --- a/software/monitoring/src/main/java/brooklyn/entity/monitoring/monit/MonitSshDriver.java +++ b/software/monitoring/src/main/java/brooklyn/entity/monitoring/monit/MonitSshDriver.java @@ -24,12 +24,12 @@ import java.util.List; import java.util.Map; import brooklyn.entity.basic.AbstractSoftwareProcessSshDriver; -import brooklyn.entity.basic.EntityInternal; +import brooklyn.entity.basic.Entities; import brooklyn.entity.basic.lifecycle.ScriptHelper; -import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.location.OsDetails; import brooklyn.location.basic.SshMachineLocation; import brooklyn.util.collections.MutableMap; +import brooklyn.util.os.Os; import brooklyn.util.ssh.BashCommands; import com.google.common.collect.ImmutableList; @@ -43,12 +43,18 @@ public class MonitSshDriver extends AbstractSoftwareProcessSshDriver implements public MonitSshDriver(MonitNodeImpl entity, SshMachineLocation machine) { super(entity, machine); } + + @Override + public void preInstall() { + resolver = Entities.newDownloader(this); + setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("monit-%s", getVersion())))); + } + @Override public void install() { - DownloadResolver resolver = ((EntityInternal)entity).getManagementContext().getEntityDownloadsManager().newDownloader(this); List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); - expandedInstallDir = getInstallDir() + "/" + resolver.getUnpackedDirectoryName(format("monit-%s", getVersion())); + List<String> commands = ImmutableList.<String>builder() .add(BashCommands.INSTALL_TAR) .add(BashCommands.INSTALL_CURL) http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/nosql/src/main/java/brooklyn/entity/nosql/cassandra/CassandraNodeSshDriver.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/cassandra/CassandraNodeSshDriver.java b/software/nosql/src/main/java/brooklyn/entity/nosql/cassandra/CassandraNodeSshDriver.java index fc97186..65ed4a6 100644 --- a/software/nosql/src/main/java/brooklyn/entity/nosql/cassandra/CassandraNodeSshDriver.java +++ b/software/nosql/src/main/java/brooklyn/entity/nosql/cassandra/CassandraNodeSshDriver.java @@ -35,7 +35,6 @@ import brooklyn.entity.basic.Attributes; import brooklyn.entity.basic.Entities; import brooklyn.entity.basic.EntityLocal; import brooklyn.entity.database.DatastoreMixins; -import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.entity.java.JavaSoftwareProcessSshDriver; import brooklyn.entity.java.UsesJmx; import brooklyn.entity.software.SshEffectorTasks; @@ -127,14 +126,17 @@ public class CassandraNodeSshDriver extends JavaSoftwareProcessSshDriver impleme return super.installJava(); } } - + + @Override + public void preInstall() { + resolver = Entities.newDownloader(this); + setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(getDefaultUnpackedDirectoryName()))); + } + @Override public void install() { - log.debug("Installing {}", entity); - DownloadResolver resolver = Entities.newDownloader(this); List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); - setExpandedInstallDir(getInstallDir()+"/"+resolver.getUnpackedDirectoryName(getDefaultUnpackedDirectoryName())); List<String> commands = ImmutableList.<String>builder() .addAll(BashCommands.commandsToDownloadUrlsAs(urls, saveAs)) http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/nosql/src/main/java/brooklyn/entity/nosql/couchbase/CouchbaseNodeSshDriver.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/couchbase/CouchbaseNodeSshDriver.java b/software/nosql/src/main/java/brooklyn/entity/nosql/couchbase/CouchbaseNodeSshDriver.java index d55f7df..ff56859 100644 --- a/software/nosql/src/main/java/brooklyn/entity/nosql/couchbase/CouchbaseNodeSshDriver.java +++ b/software/nosql/src/main/java/brooklyn/entity/nosql/couchbase/CouchbaseNodeSshDriver.java @@ -18,17 +18,13 @@ */ package brooklyn.entity.nosql.couchbase; -import static brooklyn.util.ssh.BashCommands.INSTALL_CURL; -import static brooklyn.util.ssh.BashCommands.alternatives; -import static brooklyn.util.ssh.BashCommands.chainGroup; -import static brooklyn.util.ssh.BashCommands.sudo; +import static brooklyn.util.ssh.BashCommands.*; import static java.lang.String.format; import java.util.List; import brooklyn.entity.basic.AbstractSoftwareProcessSshDriver; import brooklyn.entity.basic.Entities; -import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.location.OsDetails; import brooklyn.location.basic.SshMachineLocation; import brooklyn.util.ssh.BashCommands; @@ -49,11 +45,16 @@ public class CouchbaseNodeSshDriver extends AbstractSoftwareProcessSshDriver imp } @Override + public void preInstall() { + resolver = Entities.newDownloader(this); + setExpandedInstallDir(getInstallDir()); + } + + @Override public void install() { //for reference https://github.com/urbandecoder/couchbase/blob/master/recipes/server.rb //installation instructions (http://docs.couchbase.com/couchbase-manual-2.5/cb-install/#preparing-to-install) - DownloadResolver resolver = Entities.newDownloader(this); List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchNodeSshDriver.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchNodeSshDriver.java b/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchNodeSshDriver.java index d8cbb03..c2a31de 100644 --- a/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchNodeSshDriver.java +++ b/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchNodeSshDriver.java @@ -28,7 +28,6 @@ import brooklyn.config.ConfigKey; import brooklyn.entity.basic.AbstractSoftwareProcessSshDriver; import brooklyn.entity.basic.Entities; import brooklyn.entity.basic.EntityLocal; -import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.location.basic.SshMachineLocation; import brooklyn.util.collections.MutableMap; import brooklyn.util.net.Urls; @@ -44,8 +43,13 @@ public class ElasticSearchNodeSshDriver extends AbstractSoftwareProcessSshDriver } @Override + public void preInstall() { + resolver = Entities.newDownloader(this); + setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("elasticsearch-%s", getVersion())))); + } + + @Override public void install() { - DownloadResolver resolver = Entities.newDownloader(this); List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); @@ -56,8 +60,6 @@ public class ElasticSearchNodeSshDriver extends AbstractSoftwareProcessSshDriver .build(); newScript(INSTALLING).body.append(commands).execute(); - - setExpandedInstallDir(getInstallDir() + "/" + resolver.getUnpackedDirectoryName(format("elasticsearch-%s", getVersion()))); } @Override http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/nosql/src/main/java/brooklyn/entity/nosql/mongodb/AbstractMongoDBSshDriver.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/mongodb/AbstractMongoDBSshDriver.java b/software/nosql/src/main/java/brooklyn/entity/nosql/mongodb/AbstractMongoDBSshDriver.java index b872fde..7544f86 100644 --- a/software/nosql/src/main/java/brooklyn/entity/nosql/mongodb/AbstractMongoDBSshDriver.java +++ b/software/nosql/src/main/java/brooklyn/entity/nosql/mongodb/AbstractMongoDBSshDriver.java @@ -29,11 +29,11 @@ import brooklyn.entity.basic.AbstractSoftwareProcessSshDriver; import brooklyn.entity.basic.Entities; import brooklyn.entity.basic.EntityLocal; import brooklyn.entity.basic.lifecycle.ScriptHelper; -import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.location.OsDetails; import brooklyn.location.basic.SshMachineLocation; import brooklyn.util.exceptions.Exceptions; import brooklyn.util.net.Networking; +import brooklyn.util.os.Os; import brooklyn.util.ssh.BashCommands; import com.google.common.base.Joiner; @@ -50,11 +50,15 @@ public abstract class AbstractMongoDBSshDriver extends AbstractSoftwareProcessSs } @Override + public void preInstall() { + resolver = Entities.newDownloader(this); + setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(getBaseName()))); + } + + @Override public void install() { - DownloadResolver resolver = Entities.newDownloader(this); List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); - setExpandedInstallDir(getInstallDir()+"/"+resolver.getUnpackedDirectoryName(getBaseName())); List<String> commands = new LinkedList<String>(); commands.addAll(BashCommands.commandsToDownloadUrlsAs(urls, saveAs)); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/nosql/src/main/java/brooklyn/entity/nosql/redis/RedisStoreSshDriver.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/redis/RedisStoreSshDriver.java b/software/nosql/src/main/java/brooklyn/entity/nosql/redis/RedisStoreSshDriver.java index d3ea238..0d20290 100644 --- a/software/nosql/src/main/java/brooklyn/entity/nosql/redis/RedisStoreSshDriver.java +++ b/software/nosql/src/main/java/brooklyn/entity/nosql/redis/RedisStoreSshDriver.java @@ -27,10 +27,10 @@ import org.slf4j.LoggerFactory; import brooklyn.entity.basic.AbstractSoftwareProcessSshDriver; import brooklyn.entity.basic.Entities; -import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.location.Location; import brooklyn.location.basic.SshMachineLocation; import brooklyn.util.collections.MutableMap; +import brooklyn.util.os.Os; import brooklyn.util.ssh.BashCommands; import com.google.common.collect.ImmutableList; @@ -47,11 +47,15 @@ public class RedisStoreSshDriver extends AbstractSoftwareProcessSshDriver implem } @Override + public void preInstall() { + resolver = Entities.newDownloader(this); + setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("redis-%s", getVersion())))); + } + + @Override public void install() { - DownloadResolver resolver = Entities.newDownloader(this); List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); - setExpandedInstallDir(getInstallDir()+"/"+resolver.getUnpackedDirectoryName(format("redis-%s", getVersion()))); MutableMap<String, String> installGccPackageFlags = MutableMap.of( "onlyifmissing", "gcc", http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java index 8b7ab1a..372b0bd 100644 --- a/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java +++ b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java @@ -27,23 +27,23 @@ import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Lists; - import brooklyn.entity.basic.AbstractSoftwareProcessSshDriver; import brooklyn.entity.basic.Attributes; import brooklyn.entity.basic.Entities; import brooklyn.entity.basic.lifecycle.ScriptHelper; -import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.entity.software.SshEffectorTasks; import brooklyn.location.OsDetails; import brooklyn.location.basic.SshMachineLocation; import brooklyn.util.collections.MutableMap; import brooklyn.util.net.Urls; +import brooklyn.util.os.Os; import brooklyn.util.task.DynamicTasks; +import com.google.common.base.Optional; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Lists; + // TODO: Alter -env ERL_CRASH_DUMP path in vm.args public class RiakNodeSshDriver extends AbstractSoftwareProcessSshDriver implements RiakNodeDriver { @@ -71,16 +71,19 @@ public class RiakNodeSshDriver extends AbstractSoftwareProcessSshDriver implemen } @Override + public void preInstall() { + resolver = Entities.newDownloader(this); + setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("riak-%s", getVersion())))); + } + + @Override public void install() { - DownloadResolver resolver = Entities.newDownloader(this); String saveAs = resolver.getFilename(); - String expandedInstallDir = getInstallDir() + "/" + resolver.getUnpackedDirectoryName(format("riak-%s", getVersion())); - setExpandedInstallDir(expandedInstallDir); OsDetails osDetails = getMachine().getMachineDetails().getOsDetails(); List<String> commands = Lists.newLinkedList(); if (osDetails.isLinux()) { - commands.addAll(installLinux(expandedInstallDir)); + commands.addAll(installLinux(getExpandedInstallDir())); } else if (osDetails.isMac()) { commands.addAll(installMac(saveAs)); } else if (osDetails.isWindows()) { http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/nosql/src/main/java/brooklyn/entity/nosql/solr/SolrServerSshDriver.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/solr/SolrServerSshDriver.java b/software/nosql/src/main/java/brooklyn/entity/nosql/solr/SolrServerSshDriver.java index 4a2c62e..164cc07 100644 --- a/software/nosql/src/main/java/brooklyn/entity/nosql/solr/SolrServerSshDriver.java +++ b/software/nosql/src/main/java/brooklyn/entity/nosql/solr/SolrServerSshDriver.java @@ -29,13 +29,13 @@ import org.slf4j.LoggerFactory; import brooklyn.entity.basic.AbstractSoftwareProcessSshDriver; import brooklyn.entity.basic.Entities; -import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.location.Location; import brooklyn.location.basic.SshMachineLocation; import brooklyn.util.collections.MutableMap; import brooklyn.util.file.ArchiveUtils; import brooklyn.util.net.Networking; import brooklyn.util.net.Urls; +import brooklyn.util.os.Os; import brooklyn.util.ssh.BashCommands; import brooklyn.util.stream.Streams; @@ -62,15 +62,18 @@ public class SolrServerSshDriver extends AbstractSoftwareProcessSshDriver implem public String getMirrorUrl() { return entity.getConfig(SolrServer.MIRROR_URL); } - public String getPidFile() { return String.format("%s/solr.pid", getRunDir()); } + public String getPidFile() { return Os.mergePaths(getRunDir(), "solr.pid"); } + + @Override + public void preInstall() { + resolver = Entities.newDownloader(this); + setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("solr-%s", getVersion())))); + } @Override public void install() { - log.debug("Installing {}", entity); - DownloadResolver resolver = Entities.newDownloader(this); List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); - setExpandedInstallDir(getInstallDir()+"/"+resolver.getUnpackedDirectoryName(format("solr-%s", getVersion()))); List<String> commands = ImmutableList.<String>builder() .addAll(BashCommands.commandsToDownloadUrlsAs(urls, saveAs)) http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/osgi/src/main/java/brooklyn/entity/osgi/karaf/KarafSshDriver.java ---------------------------------------------------------------------- diff --git a/software/osgi/src/main/java/brooklyn/entity/osgi/karaf/KarafSshDriver.java b/software/osgi/src/main/java/brooklyn/entity/osgi/karaf/KarafSshDriver.java index 59f09d8..0e529d9 100644 --- a/software/osgi/src/main/java/brooklyn/entity/osgi/karaf/KarafSshDriver.java +++ b/software/osgi/src/main/java/brooklyn/entity/osgi/karaf/KarafSshDriver.java @@ -25,7 +25,6 @@ import java.util.List; import java.util.Map; import brooklyn.entity.basic.Entities; -import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.entity.java.JavaSoftwareProcessSshDriver; import brooklyn.location.basic.SshMachineLocation; import brooklyn.util.collections.MutableList; @@ -53,15 +52,19 @@ public class KarafSshDriver extends JavaSoftwareProcessSshDriver implements Kara @Override protected String getLogFileLocation() { - return Os.mergePathsUnix(getRunDir(), "data/karaf.out"); + return Os.mergePaths(getRunDir(), "data", "karaf.out"); + } + + @Override + public void preInstall() { + resolver = Entities.newDownloader(this); + setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("apache-karaf-%s", getVersion())))); } @Override public void install() { - DownloadResolver resolver = Entities.newDownloader(this); List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); - setExpandedInstallDir(getInstallDir()+"/"+resolver.getUnpackedDirectoryName(format("apache-karaf-%s", getVersion()))); List<String> commands = ImmutableList.<String>builder() .addAll(BashCommands.commandsToDownloadUrlsAs(urls, saveAs)) http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/webapp/src/main/java/brooklyn/entity/proxy/nginx/NginxSshDriver.java ---------------------------------------------------------------------- diff --git a/software/webapp/src/main/java/brooklyn/entity/proxy/nginx/NginxSshDriver.java b/software/webapp/src/main/java/brooklyn/entity/proxy/nginx/NginxSshDriver.java index 8a3f2c6..dabdae2 100644 --- a/software/webapp/src/main/java/brooklyn/entity/proxy/nginx/NginxSshDriver.java +++ b/software/webapp/src/main/java/brooklyn/entity/proxy/nginx/NginxSshDriver.java @@ -28,6 +28,7 @@ import org.slf4j.LoggerFactory; import brooklyn.entity.basic.AbstractSoftwareProcessSshDriver; import brooklyn.entity.basic.Attributes; +import brooklyn.entity.basic.Entities; import brooklyn.entity.basic.EntityInternal; import brooklyn.entity.basic.Lifecycle; import brooklyn.entity.basic.lifecycle.ScriptHelper; @@ -38,6 +39,7 @@ import brooklyn.management.ManagementContext; import brooklyn.util.collections.MutableMap; import brooklyn.util.exceptions.Exceptions; import brooklyn.util.net.Networking; +import brooklyn.util.os.Os; import brooklyn.util.ssh.BashCommands; import brooklyn.util.stream.Streams; import brooklyn.util.task.DynamicTasks; @@ -114,14 +116,18 @@ public class NginxSshDriver extends AbstractSoftwareProcessSshDriver implements } @Override + public void preInstall() { + resolver = Entities.newDownloader(this); + setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("nginx-%s", getVersion())))); + } + + @Override public void install() { // inessential here, installation will fail later if it needs to sudo (eg if using port 80) DynamicTasks.queueIfPossible(SshTasks.dontRequireTtyForSudo(getMachine(), OnFailingTask.WARN_OR_IF_DYNAMIC_FAIL_MARKING_INESSENTIAL)).orSubmitAndBlock(); - DownloadResolver nginxResolver = mgmt().getEntityDownloadsManager().newDownloader(this); - List<String> nginxUrls = nginxResolver.getTargets(); - String nginxSaveAs = nginxResolver.getFilename(); - setExpandedInstallDir(getInstallDir()+"/" + nginxResolver.getUnpackedDirectoryName(format("nginx-%s", getVersion()))); + List<String> nginxUrls = resolver.getTargets(); + String nginxSaveAs = resolver.getFilename(); boolean sticky = ((NginxController) entity).isSticky(); boolean isMac = getMachine().getOsDetails().isMac(); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/webapp/src/main/java/brooklyn/entity/webapp/jboss/JBoss6SshDriver.java ---------------------------------------------------------------------- diff --git a/software/webapp/src/main/java/brooklyn/entity/webapp/jboss/JBoss6SshDriver.java b/software/webapp/src/main/java/brooklyn/entity/webapp/jboss/JBoss6SshDriver.java index 5104a52..63e646d 100644 --- a/software/webapp/src/main/java/brooklyn/entity/webapp/jboss/JBoss6SshDriver.java +++ b/software/webapp/src/main/java/brooklyn/entity/webapp/jboss/JBoss6SshDriver.java @@ -29,7 +29,6 @@ import java.util.Map; import brooklyn.entity.basic.Attributes; import brooklyn.entity.basic.Entities; -import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.entity.java.UsesJmx; import brooklyn.entity.java.UsesJmx.JmxAgentModes; import brooklyn.entity.webapp.JavaWebAppSshDriver; @@ -90,11 +89,15 @@ public class JBoss6SshDriver extends JavaWebAppSshDriver implements JBoss6Driver } @Override + public void preInstall() { + resolver = Entities.newDownloader(this); + setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("jboss-%s", getVersion())))); + } + + @Override public void install() { - DownloadResolver resolver = Entities.newDownloader(this); List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); - setExpandedInstallDir(getInstallDir()+"/" + resolver.getUnpackedDirectoryName("jboss-"+getVersion())); // Note the -o option to unzip, to overwrite existing files without warning. // The JBoss zip file contains lgpl.txt (at least) twice and the prompt to http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/webapp/src/main/java/brooklyn/entity/webapp/jboss/JBoss7SshDriver.java ---------------------------------------------------------------------- diff --git a/software/webapp/src/main/java/brooklyn/entity/webapp/jboss/JBoss7SshDriver.java b/software/webapp/src/main/java/brooklyn/entity/webapp/jboss/JBoss7SshDriver.java index 9bac1a7..5b8a036 100644 --- a/software/webapp/src/main/java/brooklyn/entity/webapp/jboss/JBoss7SshDriver.java +++ b/software/webapp/src/main/java/brooklyn/entity/webapp/jboss/JBoss7SshDriver.java @@ -31,7 +31,6 @@ import org.slf4j.LoggerFactory; import brooklyn.entity.basic.Entities; import brooklyn.entity.basic.SoftwareProcess; -import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.entity.webapp.JavaWebAppSshDriver; import brooklyn.location.basic.SshMachineLocation; import brooklyn.util.collections.MutableList; @@ -106,11 +105,15 @@ public class JBoss7SshDriver extends JavaWebAppSshDriver implements JBoss7Driver } @Override + public void preInstall() { + resolver = Entities.newDownloader(this); + setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("jboss-as-%s", getVersion())))); + } + + @Override public void install() { - DownloadResolver resolver = Entities.newDownloader(this); List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); - setExpandedInstallDir(getInstallDir()+"/"+resolver.getUnpackedDirectoryName(format("jboss-as-%s", getVersion()))); List<String> commands = new LinkedList<String>(); commands.addAll(BashCommands.commandsToDownloadUrlsAs(urls, saveAs)); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/webapp/src/main/java/brooklyn/entity/webapp/jetty/Jetty6SshDriver.java ---------------------------------------------------------------------- diff --git a/software/webapp/src/main/java/brooklyn/entity/webapp/jetty/Jetty6SshDriver.java b/software/webapp/src/main/java/brooklyn/entity/webapp/jetty/Jetty6SshDriver.java index 0e2d69d..33ff65d 100644 --- a/software/webapp/src/main/java/brooklyn/entity/webapp/jetty/Jetty6SshDriver.java +++ b/software/webapp/src/main/java/brooklyn/entity/webapp/jetty/Jetty6SshDriver.java @@ -25,7 +25,6 @@ import java.util.List; import java.util.Map; import brooklyn.entity.basic.Entities; -import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.entity.webapp.JavaWebAppSshDriver; import brooklyn.location.basic.SshMachineLocation; import brooklyn.util.collections.MutableList; @@ -53,11 +52,15 @@ public class Jetty6SshDriver extends JavaWebAppSshDriver implements Jetty6Driver } @Override + public void preInstall() { + resolver = Entities.newDownloader(this); + setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("jetty-%s", getVersion())))); + } + + @Override public void install() { - DownloadResolver resolver = Entities.newDownloader(this); List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); - setExpandedInstallDir(getInstallDir()+"/"+resolver.getUnpackedDirectoryName("jetty-"+getVersion())); List<String> commands = new LinkedList<String>(); commands.addAll(BashCommands.commandsToDownloadUrlsAs(urls, saveAs)); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/webapp/src/main/java/brooklyn/entity/webapp/nodejs/NodeJsWebAppSshDriver.java ---------------------------------------------------------------------- diff --git a/software/webapp/src/main/java/brooklyn/entity/webapp/nodejs/NodeJsWebAppSshDriver.java b/software/webapp/src/main/java/brooklyn/entity/webapp/nodejs/NodeJsWebAppSshDriver.java index 8db6e8a..3e582fb 100644 --- a/software/webapp/src/main/java/brooklyn/entity/webapp/nodejs/NodeJsWebAppSshDriver.java +++ b/software/webapp/src/main/java/brooklyn/entity/webapp/nodejs/NodeJsWebAppSshDriver.java @@ -18,6 +18,8 @@ */ package brooklyn.entity.webapp.nodejs; +import static java.lang.String.format; + import java.util.List; import java.util.Map; import java.util.Set; @@ -27,7 +29,9 @@ import org.slf4j.LoggerFactory; import brooklyn.entity.basic.AbstractSoftwareProcessSshDriver; import brooklyn.entity.basic.Attributes; +import brooklyn.entity.basic.Entities; import brooklyn.entity.basic.SoftwareProcess; +import brooklyn.entity.drivers.downloads.DownloadResolver; import brooklyn.entity.webapp.WebAppService; import brooklyn.location.basic.SshMachineLocation; import brooklyn.util.collections.MutableList; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/32e99110/software/webapp/src/main/java/brooklyn/entity/webapp/tomcat/Tomcat7SshDriver.java ---------------------------------------------------------------------- diff --git a/software/webapp/src/main/java/brooklyn/entity/webapp/tomcat/Tomcat7SshDriver.java b/software/webapp/src/main/java/brooklyn/entity/webapp/tomcat/Tomcat7SshDriver.java index 82068e0..8d1b9d3 100644 --- a/software/webapp/src/main/java/brooklyn/entity/webapp/tomcat/Tomcat7SshDriver.java +++ b/software/webapp/src/main/java/brooklyn/entity/webapp/tomcat/Tomcat7SshDriver.java @@ -52,13 +52,17 @@ public class Tomcat7SshDriver extends JavaWebAppSshDriver implements Tomcat7Driv protected Integer getShutdownPort() { return entity.getAttribute(TomcatServerImpl.SHUTDOWN_PORT); } + + @Override + public void preInstall() { + resolver = Entities.newDownloader(this); + setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName("apache-tomcat-"+getVersion()))); + } @Override public void install() { - DownloadResolver resolver = Entities.newDownloader(this); List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); - setExpandedInstallDir(getInstallDir()+"/"+resolver.getUnpackedDirectoryName("apache-tomcat-"+getVersion())); List<String> commands = new LinkedList<String>(); commands.addAll(BashCommands.commandsToDownloadUrlsAs(urls, saveAs));
