Adds prepare method and ARCHIVE_DIRECTORY_NAME_FORMAT and tidies up interfaces
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-library/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-library/commit/3352bfab Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-library/tree/3352bfab Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-library/diff/3352bfab Branch: refs/heads/master Commit: 3352bfab0787e4ec4f6fcb27a2f4f4cc124df768 Parents: cbb58b9 Author: Andrew Donald Kennedy <andrew.kenn...@cloudsoftcorp.com> Authored: Thu Mar 3 16:35:17 2016 +0000 Committer: Andrew Donald Kennedy <andrew.kenn...@cloudsoftcorp.com> Committed: Tue Mar 8 10:37:30 2016 -0500 ---------------------------------------------------------------------- .../entity/database/crate/CrateNode.java | 3 + .../database/crate/CrateNodeSshDriver.java | 16 +-- .../database/mariadb/MariaDbSshDriver.java | 2 +- .../entity/database/mysql/MySqlSshDriver.java | 11 +- .../entity/database/rubyrep/RubyRepNode.java | 3 + .../database/rubyrep/RubyRepSshDriver.java | 16 +-- .../messaging/activemq/ActiveMQBroker.java | 3 + .../messaging/activemq/ActiveMQSshDriver.java | 11 +- .../kafka/AbstractfKafkaSshDriver.java | 12 +-- .../brooklyn/entity/messaging/kafka/Kafka.java | 3 + .../entity/messaging/qpid/QpidBroker.java | 43 ++++---- .../entity/messaging/qpid/QpidSshDriver.java | 12 +-- .../entity/messaging/rabbit/RabbitBroker.java | 35 +++---- .../messaging/rabbit/RabbitSshDriver.java | 6 -- .../brooklyn/entity/messaging/storm/Storm.java | 21 ++-- .../entity/messaging/storm/StormSshDriver.java | 6 -- .../entity/zookeeper/ZooKeeperNode.java | 33 +++--- .../entity/zookeeper/ZooKeeperSshDriver.java | 8 +- .../entity/monitoring/monit/MonitNode.java | 26 ++--- .../entity/monitoring/monit/MonitSshDriver.java | 14 +-- .../entity/nosql/cassandra/CassandraNode.java | 43 ++++---- .../nosql/cassandra/CassandraNodeSshDriver.java | 10 -- .../nosql/couchbase/CouchbaseNodeSshDriver.java | 37 ++++--- .../nosql/elasticsearch/ElasticSearchNode.java | 14 ++- .../ElasticSearchNodeSshDriver.java | 13 +-- .../nosql/hazelcast/HazelcastNodeSshDriver.java | 5 - .../nosql/mongodb/AbstractMongoDBSshDriver.java | 25 ++--- .../brooklyn/entity/nosql/redis/RedisStore.java | 11 +- .../entity/nosql/redis/RedisStoreSshDriver.java | 6 -- .../brooklyn/entity/nosql/riak/RiakNode.java | 3 + .../entity/nosql/riak/RiakNodeSshDriver.java | 5 +- .../brooklyn/entity/nosql/solr/SolrServer.java | 17 ++-- .../entity/nosql/solr/SolrServerSshDriver.java | 6 -- .../entity/osgi/karaf/KarafContainer.java | 100 +++++++++---------- .../entity/osgi/karaf/KarafSshDriver.java | 6 -- .../entity/proxy/nginx/NginxController.java | 36 ++++--- .../entity/proxy/nginx/NginxSshDriver.java | 6 -- .../entity/webapp/jboss/JBoss6Server.java | 22 ++-- .../entity/webapp/jboss/JBoss6SshDriver.java | 7 -- .../entity/webapp/jboss/JBoss7Server.java | 33 +++--- .../entity/webapp/jboss/JBoss7SshDriver.java | 2 +- .../entity/webapp/jetty/Jetty6Server.java | 9 +- .../entity/webapp/jetty/Jetty6SshDriver.java | 7 -- .../webapp/nodejs/NodeJsWebAppService.java | 10 +- .../webapp/nodejs/NodeJsWebAppSshDriver.java | 22 ++-- .../entity/webapp/tomcat/Tomcat8Server.java | 9 +- .../entity/webapp/tomcat/TomcatServer.java | 13 ++- .../entity/webapp/tomcat/TomcatSshDriver.java | 11 +- 48 files changed, 337 insertions(+), 435 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/database/src/main/java/org/apache/brooklyn/entity/database/crate/CrateNode.java ---------------------------------------------------------------------- diff --git a/software/database/src/main/java/org/apache/brooklyn/entity/database/crate/CrateNode.java b/software/database/src/main/java/org/apache/brooklyn/entity/database/crate/CrateNode.java index f22381a..5c38035 100644 --- a/software/database/src/main/java/org/apache/brooklyn/entity/database/crate/CrateNode.java +++ b/software/database/src/main/java/org/apache/brooklyn/entity/database/crate/CrateNode.java @@ -42,6 +42,9 @@ public interface CrateNode extends SoftwareProcess, UsesJava,UsesJmx, UsesJavaMX ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "0.45.7"); + @SetFromFlag("archiveNameFormat") + ConfigKey<String> ARCHIVE_DIRECTORY_NAME_FORMAT = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.ARCHIVE_DIRECTORY_NAME_FORMAT, "crate-%s"); + @SetFromFlag("downloadUrl") AttributeSensorAndConfigKey<String, String> DOWNLOAD_URL = new BasicAttributeSensorAndConfigKey.StringAttributeSensorAndConfigKey( Attributes.DOWNLOAD_URL, http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/database/src/main/java/org/apache/brooklyn/entity/database/crate/CrateNodeSshDriver.java ---------------------------------------------------------------------- diff --git a/software/database/src/main/java/org/apache/brooklyn/entity/database/crate/CrateNodeSshDriver.java b/software/database/src/main/java/org/apache/brooklyn/entity/database/crate/CrateNodeSshDriver.java index f972570..768ebd3 100644 --- a/software/database/src/main/java/org/apache/brooklyn/entity/database/crate/CrateNodeSshDriver.java +++ b/software/database/src/main/java/org/apache/brooklyn/entity/database/crate/CrateNodeSshDriver.java @@ -18,20 +18,15 @@ */ package org.apache.brooklyn.entity.database.crate; -import static java.lang.String.format; - import java.util.List; -import org.apache.brooklyn.api.entity.EntityLocal; -import org.apache.brooklyn.core.entity.Entities; -import org.apache.brooklyn.entity.java.JavaSoftwareProcessSshDriver; - import com.google.common.collect.ImmutableList; +import org.apache.brooklyn.api.entity.EntityLocal; +import org.apache.brooklyn.entity.java.JavaSoftwareProcessSshDriver; import org.apache.brooklyn.location.ssh.SshMachineLocation; import org.apache.brooklyn.util.collections.MutableMap; import org.apache.brooklyn.util.net.Urls; -import org.apache.brooklyn.util.os.Os; import org.apache.brooklyn.util.ssh.BashCommands; public class CrateNodeSshDriver extends JavaSoftwareProcessSshDriver { @@ -41,13 +36,6 @@ public class CrateNodeSshDriver extends JavaSoftwareProcessSshDriver { } @Override - public void preInstall() { - resolver = Entities.newDownloader(this); - setExpandedInstallDir(Os.mergePaths(getInstallDir(), - resolver.getUnpackedDirectoryName(format("crate-%s", getVersion())))); - } - - @Override public void install() { List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/database/src/main/java/org/apache/brooklyn/entity/database/mariadb/MariaDbSshDriver.java ---------------------------------------------------------------------- diff --git a/software/database/src/main/java/org/apache/brooklyn/entity/database/mariadb/MariaDbSshDriver.java b/software/database/src/main/java/org/apache/brooklyn/entity/database/mariadb/MariaDbSshDriver.java index dedba55..9ef298c 100644 --- a/software/database/src/main/java/org/apache/brooklyn/entity/database/mariadb/MariaDbSshDriver.java +++ b/software/database/src/main/java/org/apache/brooklyn/entity/database/mariadb/MariaDbSshDriver.java @@ -110,7 +110,7 @@ public class MariaDbSshDriver extends AbstractSoftwareProcessSshDriver implement } @Override - public void preInstall() { + public void prepare() { resolver = Entities.newDownloader(this, ImmutableMap.of("filename", getInstallFilename())); setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("mariadb-%s-%s", getVersion(), getOsTag())))); } http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/MySqlSshDriver.java ---------------------------------------------------------------------- diff --git a/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/MySqlSshDriver.java b/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/MySqlSshDriver.java index 868d158..0697d2a 100644 --- a/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/MySqlSshDriver.java +++ b/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/MySqlSshDriver.java @@ -33,6 +33,11 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.collect.ImmutableMap; + import org.apache.brooklyn.api.location.OsDetails; import org.apache.brooklyn.api.mgmt.Task; import org.apache.brooklyn.core.effector.EffectorTasks; @@ -59,10 +64,6 @@ import org.apache.brooklyn.util.text.Identifiers; import org.apache.brooklyn.util.text.Strings; import org.apache.brooklyn.util.time.CountdownTimer; import org.apache.brooklyn.util.time.Duration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.common.collect.ImmutableMap; /** * The SSH implementation of the {@link MySqlDriver}. @@ -121,7 +122,7 @@ public class MySqlSshDriver extends AbstractSoftwareProcessSshDriver implements } @Override - public void preInstall() { + public void prepare() { resolver = Entities.newDownloader(this); String unpackedDirectoryName = resolver.getUnpackedDirectoryName(getDefaultUnpackedDirectoryName()); setExpandedInstallDir(Os.mergePaths(getInstallDir(), unpackedDirectoryName)); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/database/src/main/java/org/apache/brooklyn/entity/database/rubyrep/RubyRepNode.java ---------------------------------------------------------------------- diff --git a/software/database/src/main/java/org/apache/brooklyn/entity/database/rubyrep/RubyRepNode.java b/software/database/src/main/java/org/apache/brooklyn/entity/database/rubyrep/RubyRepNode.java index e6580bb..cb05ff6 100644 --- a/software/database/src/main/java/org/apache/brooklyn/entity/database/rubyrep/RubyRepNode.java +++ b/software/database/src/main/java/org/apache/brooklyn/entity/database/rubyrep/RubyRepNode.java @@ -39,6 +39,9 @@ public interface RubyRepNode extends SoftwareProcess { @SetFromFlag("version") ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "1.2.0"); + @SetFromFlag("archiveNameFormat") + ConfigKey<String> ARCHIVE_DIRECTORY_NAME_FORMAT = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.ARCHIVE_DIRECTORY_NAME_FORMAT, "rubyrep-%s"); + @SetFromFlag("downloadUrl") public static final BasicAttributeSensorAndConfigKey<String> DOWNLOAD_URL = new StringAttributeSensorAndConfigKey( Attributes.DOWNLOAD_URL, "http://files.rubyforge.vm.bytemark.co.uk/rubyrep/rubyrep-${version}.zip"); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/database/src/main/java/org/apache/brooklyn/entity/database/rubyrep/RubyRepSshDriver.java ---------------------------------------------------------------------- diff --git a/software/database/src/main/java/org/apache/brooklyn/entity/database/rubyrep/RubyRepSshDriver.java b/software/database/src/main/java/org/apache/brooklyn/entity/database/rubyrep/RubyRepSshDriver.java index 4d0a9ef..2a88b43 100644 --- a/software/database/src/main/java/org/apache/brooklyn/entity/database/rubyrep/RubyRepSshDriver.java +++ b/software/database/src/main/java/org/apache/brooklyn/entity/database/rubyrep/RubyRepSshDriver.java @@ -25,20 +25,20 @@ import java.net.URISyntaxException; import java.util.List; import java.util.concurrent.ExecutionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.collect.ImmutableList; + import org.apache.brooklyn.api.entity.EntityLocal; import org.apache.brooklyn.core.entity.Attributes; -import org.apache.brooklyn.core.entity.Entities; import org.apache.brooklyn.entity.software.base.AbstractSoftwareProcessSshDriver; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.apache.brooklyn.location.ssh.SshMachineLocation; import org.apache.brooklyn.util.collections.MutableMap; import org.apache.brooklyn.util.os.Os; import org.apache.brooklyn.util.ssh.BashCommands; import org.apache.brooklyn.util.stream.Streams; -import com.google.common.collect.ImmutableList; - public class RubyRepSshDriver extends AbstractSoftwareProcessSshDriver implements RubyRepDriver { public static final Logger log = LoggerFactory.getLogger(RubyRepSshDriver.class); @@ -54,12 +54,6 @@ public class RubyRepSshDriver extends AbstractSoftwareProcessSshDriver implement } @Override - public void preInstall() { - resolver = Entities.newDownloader(this); - setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("rubyrep-%s", getVersion())))); - } - - @Override public void install() { List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/activemq/ActiveMQBroker.java ---------------------------------------------------------------------- diff --git a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/activemq/ActiveMQBroker.java b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/activemq/ActiveMQBroker.java index aa79613..d9110f7 100644 --- a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/activemq/ActiveMQBroker.java +++ b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/activemq/ActiveMQBroker.java @@ -47,6 +47,9 @@ public interface ActiveMQBroker extends SoftwareProcess, MessageBroker, UsesJmx, @SetFromFlag("version") public static final ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "5.10.2"); + @SetFromFlag("archiveNameFormat") + ConfigKey<String> ARCHIVE_DIRECTORY_NAME_FORMAT = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.ARCHIVE_DIRECTORY_NAME_FORMAT, "apache-activemq-%s"); + @SetFromFlag("downloadUrl") public static final AttributeSensorAndConfigKey<String,String> DOWNLOAD_URL = new StringAttributeSensorAndConfigKey( Attributes.DOWNLOAD_URL, "${driver.mirrorUrl}/${version}/apache-activemq-${version}-bin.tar.gz"); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/activemq/ActiveMQSshDriver.java ---------------------------------------------------------------------- diff --git a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/activemq/ActiveMQSshDriver.java b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/activemq/ActiveMQSshDriver.java index 65b67b6..4b9a35a 100644 --- a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/activemq/ActiveMQSshDriver.java +++ b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/activemq/ActiveMQSshDriver.java @@ -24,7 +24,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import org.apache.brooklyn.core.entity.Entities; +import com.google.common.collect.ImmutableMap; + import org.apache.brooklyn.entity.java.JavaSoftwareProcessSshDriver; import org.apache.brooklyn.location.ssh.SshMachineLocation; import org.apache.brooklyn.util.collections.MutableMap; @@ -32,8 +33,6 @@ import org.apache.brooklyn.util.net.Networking; import org.apache.brooklyn.util.os.Os; import org.apache.brooklyn.util.ssh.BashCommands; -import com.google.common.collect.ImmutableMap; - public class ActiveMQSshDriver extends JavaSoftwareProcessSshDriver implements ActiveMQDriver { public ActiveMQSshDriver(ActiveMQBrokerImpl entity, SshMachineLocation machine) { @@ -68,12 +67,6 @@ 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() { List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/kafka/AbstractfKafkaSshDriver.java ---------------------------------------------------------------------- diff --git a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/kafka/AbstractfKafkaSshDriver.java b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/kafka/AbstractfKafkaSshDriver.java index 2e6ec43..a2e5ce4 100644 --- a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/kafka/AbstractfKafkaSshDriver.java +++ b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/kafka/AbstractfKafkaSshDriver.java @@ -24,12 +24,12 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import org.apache.brooklyn.api.entity.EntityLocal; import org.apache.brooklyn.config.ConfigKey; -import org.apache.brooklyn.core.entity.Entities; import org.apache.brooklyn.entity.java.JavaSoftwareProcessSshDriver; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.apache.brooklyn.location.ssh.SshMachineLocation; import org.apache.brooklyn.util.collections.MutableMap; import org.apache.brooklyn.util.net.Networking; @@ -61,12 +61,6 @@ public abstract class AbstractfKafkaSshDriver extends JavaSoftwareProcessSshDriv 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", getVersion())))); - } - - @Override public void install() { List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/kafka/Kafka.java ---------------------------------------------------------------------- diff --git a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/kafka/Kafka.java b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/kafka/Kafka.java index 6a2322c..575ccae 100644 --- a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/kafka/Kafka.java +++ b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/kafka/Kafka.java @@ -41,4 +41,7 @@ public interface Kafka { // BasicAttributeSensorAndConfigKey<String> DOWNLOAD_URL = new BasicAttributeSensorAndConfigKey<String>( // Attributes.DOWNLOAD_URL, "http://mirror.catn.com/pub/apache/kafka/${version}/kafka-${version}-src.tgz"); + @SetFromFlag("archiveNameFormat") + ConfigKey<String> ARCHIVE_DIRECTORY_NAME_FORMAT = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.ARCHIVE_DIRECTORY_NAME_FORMAT, "kafka_%s"); + } http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/qpid/QpidBroker.java ---------------------------------------------------------------------- diff --git a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/qpid/QpidBroker.java b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/qpid/QpidBroker.java index 89189f7..7a3c9ae 100644 --- a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/qpid/QpidBroker.java +++ b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/qpid/QpidBroker.java @@ -18,15 +18,11 @@ */ package org.apache.brooklyn.entity.messaging.qpid; -import java.util.Map; - import org.apache.brooklyn.api.catalog.Catalog; import org.apache.brooklyn.api.entity.ImplementedBy; import org.apache.brooklyn.config.ConfigKey; -import org.apache.brooklyn.core.config.BasicConfigKey; import org.apache.brooklyn.core.config.ConfigKeys; -import org.apache.brooklyn.core.entity.Attributes; -import org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey; +import org.apache.brooklyn.core.sensor.AttributeSensorAndConfigKey; import org.apache.brooklyn.core.sensor.PortAttributeSensorAndConfigKey; import org.apache.brooklyn.entity.java.UsesJmx; import org.apache.brooklyn.entity.messaging.MessageBroker; @@ -44,35 +40,30 @@ public interface QpidBroker extends SoftwareProcess, MessageBroker, UsesJmx, Amq /* Qpid runtime file locations for convenience. */ - public static final String CONFIG_XML = "etc/config.xml"; - public static final String VIRTUALHOSTS_XML = "etc/virtualhosts.xml"; - public static final String PASSWD = "etc/passwd"; + String CONFIG_XML = "etc/config.xml"; + String VIRTUALHOSTS_XML = "etc/virtualhosts.xml"; + String PASSWD = "etc/passwd"; @SetFromFlag("version") - public static final ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "0.20"); - - @SetFromFlag("downloadUrl") - public static final BasicAttributeSensorAndConfigKey<String> DOWNLOAD_URL = new BasicAttributeSensorAndConfigKey<String>( - Attributes.DOWNLOAD_URL, "http://download.nextag.com/apache/qpid/${version}/qpid-java-broker-${version}.tar.gz"); + ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "0.20"); - @SetFromFlag("amqpPort") - public static final PortAttributeSensorAndConfigKey AMQP_PORT = AmqpServer.AMQP_PORT; + @SetFromFlag("archiveNameFormat") + ConfigKey<String> ARCHIVE_DIRECTORY_NAME_FORMAT = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.ARCHIVE_DIRECTORY_NAME_FORMAT, "qpid-broker-%s"); - @SetFromFlag("virtualHost") - public static final BasicAttributeSensorAndConfigKey<String> VIRTUAL_HOST_NAME = AmqpServer.VIRTUAL_HOST_NAME; + @SetFromFlag("downloadUrl") + AttributeSensorAndConfigKey<String, String> DOWNLOAD_URL = ConfigKeys.newSensorAndConfigKeyWithDefault(SoftwareProcess.DOWNLOAD_URL, + "http://download.nextag.com/apache/qpid/${version}/qpid-java-broker-${version}.tar.gz"); @SetFromFlag("amqpVersion") - public static final BasicAttributeSensorAndConfigKey<String> AMQP_VERSION = new BasicAttributeSensorAndConfigKey<String>( - AmqpServer.AMQP_VERSION, AmqpServer.AMQP_0_10); - + AttributeSensorAndConfigKey<String, String> AMQP_VERSION = ConfigKeys.newSensorAndConfigKeyWithDefault(AmqpServer.AMQP_VERSION, AmqpServer.AMQP_0_10); + @SetFromFlag("httpManagementPort") - public static final PortAttributeSensorAndConfigKey HTTP_MANAGEMENT_PORT = new PortAttributeSensorAndConfigKey("qpid.http-management.port", "Qpid HTTP management plugin port"); + PortAttributeSensorAndConfigKey HTTP_MANAGEMENT_PORT = ConfigKeys.newPortSensorAndConfigKey( + "qpid.http-management.port", "Qpid HTTP management plugin port"); @SetFromFlag("jmxUser") - public static final BasicAttributeSensorAndConfigKey<String> JMX_USER = new BasicAttributeSensorAndConfigKey<String>( - UsesJmx.JMX_USER, "admin"); - + AttributeSensorAndConfigKey<String, String> JMX_USER = ConfigKeys.newSensorAndConfigKeyWithDefault(UsesJmx.JMX_USER, "admin"); + @SetFromFlag("jmxPassword") - public static final BasicAttributeSensorAndConfigKey<String> JMX_PASSWORD = new BasicAttributeSensorAndConfigKey<String>( - UsesJmx.JMX_PASSWORD, "admin"); + AttributeSensorAndConfigKey<String, String> JMX_PASSWORD = ConfigKeys.newSensorAndConfigKeyWithDefault(UsesJmx.JMX_PASSWORD, "admin"); } http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/qpid/QpidSshDriver.java ---------------------------------------------------------------------- diff --git a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/qpid/QpidSshDriver.java b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/qpid/QpidSshDriver.java index 3d1bc8f..b24e650 100644 --- a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/qpid/QpidSshDriver.java +++ b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/qpid/QpidSshDriver.java @@ -26,7 +26,9 @@ import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.brooklyn.core.entity.Entities; + +import com.google.common.collect.ImmutableMap; + import org.apache.brooklyn.entity.java.JavaSoftwareProcessSshDriver; import org.apache.brooklyn.location.ssh.SshMachineLocation; import org.apache.brooklyn.util.collections.MutableMap; @@ -34,8 +36,6 @@ import org.apache.brooklyn.util.net.Networking; import org.apache.brooklyn.util.os.Os; import org.apache.brooklyn.util.ssh.BashCommands; -import com.google.common.collect.ImmutableMap; - public class QpidSshDriver extends JavaSoftwareProcessSshDriver implements QpidDriver{ private static final Logger log = LoggerFactory.getLogger(QpidSshDriver.class); @@ -56,12 +56,6 @@ 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() { List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/rabbit/RabbitBroker.java ---------------------------------------------------------------------- diff --git a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/rabbit/RabbitBroker.java b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/rabbit/RabbitBroker.java index 874bed8..a1a977b 100644 --- a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/rabbit/RabbitBroker.java +++ b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/rabbit/RabbitBroker.java @@ -26,9 +26,8 @@ import org.apache.brooklyn.api.catalog.Catalog; import org.apache.brooklyn.api.entity.ImplementedBy; import org.apache.brooklyn.api.sensor.AttributeSensor; import org.apache.brooklyn.config.ConfigKey; -import org.apache.brooklyn.core.config.BasicConfigKey; import org.apache.brooklyn.core.config.ConfigKeys; -import org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey; +import org.apache.brooklyn.core.sensor.AttributeSensorAndConfigKey; import org.apache.brooklyn.core.sensor.PortAttributeSensorAndConfigKey; import org.apache.brooklyn.core.sensor.Sensors; import org.apache.brooklyn.entity.messaging.MessageBroker; @@ -44,17 +43,20 @@ import org.apache.brooklyn.util.core.flags.SetFromFlag; public interface RabbitBroker extends SoftwareProcess, MessageBroker, AmqpServer { @SetFromFlag("version") - public static final ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "3.6.0"); + ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "3.6.0"); + + @SetFromFlag("archiveNameFormat") + ConfigKey<String> ARCHIVE_DIRECTORY_NAME_FORMAT = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.ARCHIVE_DIRECTORY_NAME_FORMAT, "rabbitmq_server-%s"); @SetFromFlag("downloadUrl") - public static final BasicAttributeSensorAndConfigKey<String> DOWNLOAD_URL = new BasicAttributeSensorAndConfigKey<String>( - SoftwareProcess.DOWNLOAD_URL, "http://www.rabbitmq.com/releases/rabbitmq-server/v${version}/rabbitmq-server-generic-unix-${version}.tar.xz"); - + AttributeSensorAndConfigKey<String, String> DOWNLOAD_URL = ConfigKeys.newSensorAndConfigKeyWithDefault(SoftwareProcess.DOWNLOAD_URL, + "http://www.rabbitmq.com/releases/rabbitmq-server/v${version}/rabbitmq-server-generic-unix-${version}.tar.xz"); + @SetFromFlag("erlangVersion") - public static final BasicConfigKey<String> ERLANG_VERSION = new BasicConfigKey<String>(String.class, "erlang.version", "Erlang runtime version", "18.2"); + ConfigKey<String> ERLANG_VERSION = ConfigKeys.newStringConfigKey("erlang.version", "Erlang runtime version", "18.2"); @SetFromFlag("erlangDebRepoUrl") - public static final BasicConfigKey<String> ERLANG_DEB_REPO_URL = new BasicConfigKey<String>(String.class, "erlang.deb.repo.url", + ConfigKey<String> ERLANG_DEB_REPO_URL = ConfigKeys.newStringConfigKey("erlang.deb.repo.url", "Deb file used to configure an external Erlang repository which provides up to date packages for Ubuntu/Debian", "http://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb"); @@ -63,25 +65,18 @@ public interface RabbitBroker extends SoftwareProcess, MessageBroker, AmqpServer "rabbitmq.templateUrl", "Template file (in freemarker format) for the rabbitmq.config config file", "classpath://org/apache/brooklyn/entity/messaging/rabbit/rabbitmq.config"); - @SetFromFlag("amqpPort") - public static final PortAttributeSensorAndConfigKey AMQP_PORT = AmqpServer.AMQP_PORT; - - @SetFromFlag("virtualHost") - public static final BasicAttributeSensorAndConfigKey<String> VIRTUAL_HOST_NAME = AmqpServer.VIRTUAL_HOST_NAME; - @SetFromFlag("amqpVersion") - public static final BasicAttributeSensorAndConfigKey<String> AMQP_VERSION = new BasicAttributeSensorAndConfigKey<String>( - AmqpServer.AMQP_VERSION, AmqpServer.AMQP_0_9_1); + AttributeSensorAndConfigKey<String, String> AMQP_VERSION = ConfigKeys.newSensorAndConfigKeyWithDefault(AmqpServer.AMQP_VERSION, AmqpServer.AMQP_0_9_1); @SetFromFlag("managmentPort") - public static final PortAttributeSensorAndConfigKey MANAGEMENT_PORT = new PortAttributeSensorAndConfigKey( + PortAttributeSensorAndConfigKey MANAGEMENT_PORT = ConfigKeys.newPortSensorAndConfigKey( "rabbitmq.management.port", "Port on which management interface will be available", "15672+"); - public static AttributeSensor<String> MANAGEMENT_URL = Sensors.newStringSensor( + AttributeSensor<String> MANAGEMENT_URL = Sensors.newStringSensor( "rabbitmq.management.url", "Management URL is only available if management plugin flag is true"); @SetFromFlag("enableManagementPlugin") - public static final ConfigKey<Boolean> ENABLE_MANAGEMENT_PLUGIN = ConfigKeys.newBooleanConfigKey( + ConfigKey<Boolean> ENABLE_MANAGEMENT_PLUGIN = ConfigKeys.newBooleanConfigKey( "rabbitmq.management.plugin", "Management plugin will be enabled", false); RabbitQueue createQueue(Map properties); @@ -89,7 +84,7 @@ public interface RabbitBroker extends SoftwareProcess, MessageBroker, AmqpServer // TODO required by RabbitDestination due to close-coupling between that and RabbitBroker; how best to improve? @Beta Map<String, String> getShellEnvironment(); - + @Beta String getRunDir(); } http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/rabbit/RabbitSshDriver.java ---------------------------------------------------------------------- diff --git a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/rabbit/RabbitSshDriver.java b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/rabbit/RabbitSshDriver.java index ad04d55..5e76991 100644 --- a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/rabbit/RabbitSshDriver.java +++ b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/rabbit/RabbitSshDriver.java @@ -72,12 +72,6 @@ public class RabbitSshDriver extends AbstractSoftwareProcessSshDriver implements } @Override - public void preInstall() { - resolver = Entities.newDownloader(this); - setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("rabbitmq_server-%s", getVersion())))); - } - - @Override public void install() { List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/storm/Storm.java ---------------------------------------------------------------------- diff --git a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/storm/Storm.java b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/storm/Storm.java index 9b927cd..14c1419 100644 --- a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/storm/Storm.java +++ b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/storm/Storm.java @@ -25,7 +25,7 @@ import org.apache.brooklyn.api.sensor.AttributeSensor; import org.apache.brooklyn.config.ConfigKey; import org.apache.brooklyn.core.config.ConfigKeys; import org.apache.brooklyn.core.config.render.RendererHints; -import org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey; +import org.apache.brooklyn.core.sensor.AttributeSensorAndConfigKey; import org.apache.brooklyn.core.sensor.PortAttributeSensorAndConfigKey; import org.apache.brooklyn.core.sensor.Sensors; import org.apache.brooklyn.entity.java.UsesJmx; @@ -45,15 +45,18 @@ public interface Storm extends SoftwareProcess, UsesJmx { @SetFromFlag("version") ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "0.8.2"); + @SetFromFlag("archiveNameFormat") + ConfigKey<String> ARCHIVE_DIRECTORY_NAME_FORMAT = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.ARCHIVE_DIRECTORY_NAME_FORMAT, "storm-%s"); + @SetFromFlag("nimbusHostname") ConfigKey<String> NIMBUS_HOSTNAME = ConfigKeys.newStringConfigKey("storm.nimbus.hostname"); - + @SetFromFlag("nimbusEntity") ConfigKey<Entity> NIMBUS_ENTITY = ConfigKeys.newConfigKey(Entity.class, "storm.nimbus.entity"); @SetFromFlag("downloadUrl") - BasicAttributeSensorAndConfigKey<String> DOWNLOAD_URL = new BasicAttributeSensorAndConfigKey<String>( - SoftwareProcess.DOWNLOAD_URL, "https://dl.dropboxusercontent.com/s/fl4kr7w0oc8ihdw/storm-${version}.zip"); + AttributeSensorAndConfigKey<String, String> DOWNLOAD_URL = ConfigKeys.newSensorAndConfigKeyWithDefault(SoftwareProcess.DOWNLOAD_URL, + "https://dl.dropboxusercontent.com/s/fl4kr7w0oc8ihdw/storm-${version}.zip"); ConfigKey<Object> START_MUTEX = ConfigKeys.newConfigKey(Object.class, "storm.start.mutex"); @@ -62,12 +65,12 @@ public interface Storm extends SoftwareProcess, UsesJmx { @SetFromFlag("localDir") ConfigKey<String> LOCAL_DIR = ConfigKeys.newStringConfigKey("storm.local.dir", "Setting for Storm local dir"); - + @SetFromFlag("uiPort") - PortAttributeSensorAndConfigKey UI_PORT = new PortAttributeSensorAndConfigKey("storm.ui.port", "Storm UI port", "8080+"); + PortAttributeSensorAndConfigKey UI_PORT = ConfigKeys.newPortSensorAndConfigKey("storm.ui.port", "Storm UI port", "8080+"); @SetFromFlag("thriftPort") - PortAttributeSensorAndConfigKey THRIFT_PORT = new PortAttributeSensorAndConfigKey("storm.thrift.port", "Storm Thrift port", "6627"); + PortAttributeSensorAndConfigKey THRIFT_PORT = ConfigKeys.newPortSensorAndConfigKey("storm.thrift.port", "Storm Thrift port", "6627"); @SetFromFlag("zookeeperEnsemble") ConfigKey<ZooKeeperEnsemble> ZOOKEEPER_ENSEMBLE = ConfigKeys.newConfigKey(ZooKeeperEnsemble.class, @@ -88,11 +91,11 @@ public interface Storm extends SoftwareProcess, UsesJmx { String getHostname(); Role getRole(); - + enum Role { NIMBUS, SUPERVISOR, UI } AttributeSensor<String> STORM_UI_URL = StormUiUrl.STORM_UI_URL; - + class StormUiUrl { public static final AttributeSensor<String> STORM_UI_URL = Sensors.newStringSensor("storm.ui.url", "URL"); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/storm/StormSshDriver.java ---------------------------------------------------------------------- diff --git a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/storm/StormSshDriver.java b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/storm/StormSshDriver.java index 66578e6..f06c0bc 100644 --- a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/storm/StormSshDriver.java +++ b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/storm/StormSshDriver.java @@ -118,12 +118,6 @@ 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() { List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperNode.java ---------------------------------------------------------------------- diff --git a/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperNode.java b/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperNode.java index 18cb6c6..0dce3b7 100644 --- a/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperNode.java +++ b/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperNode.java @@ -23,9 +23,9 @@ import org.apache.brooklyn.api.entity.ImplementedBy; import org.apache.brooklyn.api.sensor.AttributeSensor; import org.apache.brooklyn.config.ConfigKey; import org.apache.brooklyn.core.config.ConfigKeys; -import org.apache.brooklyn.core.sensor.BasicAttributeSensor; -import org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey; +import org.apache.brooklyn.core.sensor.AttributeSensorAndConfigKey; import org.apache.brooklyn.core.sensor.PortAttributeSensorAndConfigKey; +import org.apache.brooklyn.core.sensor.Sensors; import org.apache.brooklyn.entity.software.base.SoftwareProcess; import org.apache.brooklyn.util.core.flags.SetFromFlag; @@ -39,15 +39,23 @@ public interface ZooKeeperNode extends SoftwareProcess { @SetFromFlag("version") ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "3.4.5"); + + @SetFromFlag("archiveNameFormat") + ConfigKey<String> ARCHIVE_DIRECTORY_NAME_FORMAT = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.ARCHIVE_DIRECTORY_NAME_FORMAT, "zookeeper-%s"); + + @SetFromFlag("downloadUrl") + AttributeSensorAndConfigKey<String, String> DOWNLOAD_URL = ConfigKeys.newSensorAndConfigKeyWithDefault(SoftwareProcess.DOWNLOAD_URL, + "http://apache.fastbull.org/zookeeper/zookeeper-${version}/zookeeper-${version}.tar.gz"); + @SetFromFlag("zookeeperPort") - PortAttributeSensorAndConfigKey ZOOKEEPER_PORT = new PortAttributeSensorAndConfigKey("zookeeper.port", "Zookeeper port", "2181+"); + PortAttributeSensorAndConfigKey ZOOKEEPER_PORT = ConfigKeys.newPortSensorAndConfigKey("zookeeper.port", "Zookeeper port", "2181+"); + @SetFromFlag("zookeeperLeaderPort") - PortAttributeSensorAndConfigKey ZOOKEEPER_LEADER_PORT = new PortAttributeSensorAndConfigKey("zookeeper.leader.port", "Zookeeper leader ports", "2888+"); + PortAttributeSensorAndConfigKey ZOOKEEPER_LEADER_PORT = ConfigKeys.newPortSensorAndConfigKey("zookeeper.leader.port", "Zookeeper leader ports", "2888+"); + @SetFromFlag("zookeeperElectionPort") - PortAttributeSensorAndConfigKey ZOOKEEPER_ELECTION_PORT = new PortAttributeSensorAndConfigKey("zookeeper.election.port", "Zookeeper election ports", "3888+"); - @SetFromFlag("downloadUrl") - BasicAttributeSensorAndConfigKey<String> DOWNLOAD_URL = new BasicAttributeSensorAndConfigKey<String>( - SoftwareProcess.DOWNLOAD_URL, "http://apache.fastbull.org/zookeeper/zookeeper-${version}/zookeeper-${version}.tar.gz"); + PortAttributeSensorAndConfigKey ZOOKEEPER_ELECTION_PORT = ConfigKeys.newPortSensorAndConfigKey("zookeeper.election.port", "Zookeeper election ports", "3888+"); + /** * Location of the ZK configuration file template to be copied to the server. */ @@ -55,10 +63,11 @@ public interface ZooKeeperNode extends SoftwareProcess { ConfigKey<String> ZOOKEEPER_CONFIG_TEMPLATE = ConfigKeys.newStringConfigKey( "zookeeper.configTemplate", "Zookeeper configuration template (in freemarker format)", "classpath://org/apache/brooklyn/entity/messaging/zookeeper/zoo.cfg"); - AttributeSensor<Long> OUTSTANDING_REQUESTS = new BasicAttributeSensor<Long>(Long.class, "zookeeper.outstandingRequests", "Outstanding request count"); - AttributeSensor<Long> PACKETS_RECEIVED = new BasicAttributeSensor<Long>(Long.class, "zookeeper.packets.received", "Total packets received"); - AttributeSensor<Long> PACKETS_SENT = new BasicAttributeSensor<Long>(Long.class, "zookeeper.packets.sent", "Total packets sent"); - AttributeSensor<Integer> MY_ID = new BasicAttributeSensor<Integer>(Integer.class, "zookeeper.myid", "ZooKeeper node's myId"); + + AttributeSensor<Long> OUTSTANDING_REQUESTS = Sensors.newLongSensor("zookeeper.outstandingRequests", "Outstanding request count"); + AttributeSensor<Long> PACKETS_RECEIVED = Sensors.newLongSensor("zookeeper.packets.received", "Total packets received"); + AttributeSensor<Long> PACKETS_SENT = Sensors.newLongSensor("zookeeper.packets.sent", "Total packets sent"); + AttributeSensor<Integer> MY_ID = Sensors.newIntegerSensor("zookeeper.myid", "ZooKeeper node's myId"); Integer getZookeeperPort(); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperSshDriver.java ---------------------------------------------------------------------- diff --git a/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperSshDriver.java b/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperSshDriver.java index fd1ba0b..87bf3ff 100644 --- a/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperSshDriver.java +++ b/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperSshDriver.java @@ -91,13 +91,7 @@ public class ZooKeeperSshDriver extends JavaSoftwareProcessSshDriver implements newScript(ImmutableMap.of(USE_PID_FILE, getPidFile()), STOPPING).execute(); } - @Override - public void preInstall() { - resolver = Entities.newDownloader(this); - setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("zookeeper-%s", getVersion())))); - } - - @Override + @Override public void install() { List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/monitoring/src/main/java/org/apache/brooklyn/entity/monitoring/monit/MonitNode.java ---------------------------------------------------------------------- diff --git a/software/monitoring/src/main/java/org/apache/brooklyn/entity/monitoring/monit/MonitNode.java b/software/monitoring/src/main/java/org/apache/brooklyn/entity/monitoring/monit/MonitNode.java index 2e3798c..b74c338 100644 --- a/software/monitoring/src/main/java/org/apache/brooklyn/entity/monitoring/monit/MonitNode.java +++ b/software/monitoring/src/main/java/org/apache/brooklyn/entity/monitoring/monit/MonitNode.java @@ -20,33 +20,35 @@ package org.apache.brooklyn.entity.monitoring.monit; import java.util.Map; +import com.google.common.collect.ImmutableMap; +import com.google.common.reflect.TypeToken; + import org.apache.brooklyn.api.catalog.Catalog; import org.apache.brooklyn.api.entity.ImplementedBy; import org.apache.brooklyn.api.objs.HasShortName; import org.apache.brooklyn.api.sensor.AttributeSensor; import org.apache.brooklyn.config.ConfigKey; import org.apache.brooklyn.core.config.ConfigKeys; -import org.apache.brooklyn.core.entity.Attributes; -import org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey; +import org.apache.brooklyn.core.sensor.AttributeSensorAndConfigKey; import org.apache.brooklyn.core.sensor.Sensors; -import org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey.StringAttributeSensorAndConfigKey; import org.apache.brooklyn.entity.software.base.SoftwareProcess; import org.apache.brooklyn.util.core.flags.SetFromFlag; -import com.google.common.collect.ImmutableMap; -import com.google.common.reflect.TypeToken; - @Catalog(name="Monit Node", description="Monit is a free open source utility for managing and monitoring, processes, programs, files, directories and filesystems on a UNIX system") @ImplementedBy(MonitNodeImpl.class) public interface MonitNode extends SoftwareProcess, HasShortName { - // e.g. https://mmonit.com/monit/dist/binary/5.6/monit-5.6-linux-x64.tar.gz - @SetFromFlag("downloadUrl") - public static final BasicAttributeSensorAndConfigKey<String> DOWNLOAD_URL = new StringAttributeSensorAndConfigKey( - Attributes.DOWNLOAD_URL, "https://mmonit.com/monit/dist/binary/${version}/monit-${version}-${driver.osTag}.tar.gz"); - + @SetFromFlag("version") public static final ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "5.9"); - + + @SetFromFlag("archiveNameFormat") + ConfigKey<String> ARCHIVE_DIRECTORY_NAME_FORMAT = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.ARCHIVE_DIRECTORY_NAME_FORMAT, "monit-%s"); + + @SetFromFlag("downloadUrl") + AttributeSensorAndConfigKey<String, String> DOWNLOAD_URL = ConfigKeys.newSensorAndConfigKeyWithDefault(SoftwareProcess.DOWNLOAD_URL, + "https://mmonit.com/monit/dist/binary/${version}/monit-${version}-${driver.osTag}.tar.gz"); + // e.g. https://mmonit.com/monit/dist/binary/5.6/monit-5.6-linux-x64.tar.gz + @SetFromFlag("controlFileUrl") public static final ConfigKey<String> CONTROL_FILE_URL = ConfigKeys.newStringConfigKey("monit.control.url", "URL where monit control (.monitrc) file can be found", ""); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/monitoring/src/main/java/org/apache/brooklyn/entity/monitoring/monit/MonitSshDriver.java ---------------------------------------------------------------------- diff --git a/software/monitoring/src/main/java/org/apache/brooklyn/entity/monitoring/monit/MonitSshDriver.java b/software/monitoring/src/main/java/org/apache/brooklyn/entity/monitoring/monit/MonitSshDriver.java index e89ce90..4803ba0 100644 --- a/software/monitoring/src/main/java/org/apache/brooklyn/entity/monitoring/monit/MonitSshDriver.java +++ b/software/monitoring/src/main/java/org/apache/brooklyn/entity/monitoring/monit/MonitSshDriver.java @@ -23,18 +23,16 @@ import static java.lang.String.format; import java.util.List; import java.util.Map; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; + import org.apache.brooklyn.api.location.OsDetails; -import org.apache.brooklyn.core.entity.Entities; import org.apache.brooklyn.entity.software.base.AbstractSoftwareProcessSshDriver; import org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper; import org.apache.brooklyn.location.ssh.SshMachineLocation; import org.apache.brooklyn.util.collections.MutableMap; -import org.apache.brooklyn.util.os.Os; import org.apache.brooklyn.util.ssh.BashCommands; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; - public class MonitSshDriver extends AbstractSoftwareProcessSshDriver implements MonitDriver { private String remoteControlFilePath; @@ -44,12 +42,6 @@ public class MonitSshDriver extends AbstractSoftwareProcessSshDriver implements } @Override - public void preInstall() { - resolver = Entities.newDownloader(this); - setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("monit-%s", getVersion())))); - } - - @Override public void install() { List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNode.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNode.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNode.java index fb937ae..daa14d5 100644 --- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNode.java +++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNode.java @@ -21,16 +21,18 @@ package org.apache.brooklyn.entity.nosql.cassandra; import java.math.BigInteger; import java.util.Set; +import com.google.common.reflect.TypeToken; + import org.apache.brooklyn.api.catalog.Catalog; import org.apache.brooklyn.api.effector.Effector; import org.apache.brooklyn.api.entity.Entity; import org.apache.brooklyn.api.entity.ImplementedBy; import org.apache.brooklyn.api.sensor.AttributeSensor; import org.apache.brooklyn.config.ConfigKey; -import org.apache.brooklyn.core.config.BasicConfigKey; import org.apache.brooklyn.core.config.ConfigKeys; import org.apache.brooklyn.core.entity.BrooklynConfigKeys; import org.apache.brooklyn.core.location.PortRanges; +import org.apache.brooklyn.core.sensor.AttributeSensorAndConfigKey; import org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey; import org.apache.brooklyn.core.sensor.PortAttributeSensorAndConfigKey; import org.apache.brooklyn.core.sensor.Sensors; @@ -41,8 +43,6 @@ import org.apache.brooklyn.entity.software.base.SoftwareProcess; import org.apache.brooklyn.util.core.flags.SetFromFlag; import org.apache.brooklyn.util.time.Duration; -import com.google.common.reflect.TypeToken; - /** * An {@link org.apache.brooklyn.api.entity.Entity} that represents a Cassandra node in a {@link CassandraDatacenter}. */ @@ -57,20 +57,23 @@ public interface CassandraNode extends DatastoreMixins.DatastoreCommon, Software // when this changes remember to put a copy under releng2:/var/www/developer/brooklyn/repository/ ! // TODO experiment with supporting 2.0.x + @SetFromFlag("archiveNameFormat") + ConfigKey<String> ARCHIVE_DIRECTORY_NAME_FORMAT = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.ARCHIVE_DIRECTORY_NAME_FORMAT, "apache-cassandra-%s"); + @SetFromFlag("downloadUrl") - BasicAttributeSensorAndConfigKey<String> DOWNLOAD_URL = new BasicAttributeSensorAndConfigKey<String>( - SoftwareProcess.DOWNLOAD_URL, "${driver.mirrorUrl}/${version}/apache-cassandra-${version}-bin.tar.gz"); + AttributeSensorAndConfigKey<String, String> DOWNLOAD_URL = ConfigKeys.newSensorAndConfigKeyWithDefault(SoftwareProcess.DOWNLOAD_URL, + "${driver.mirrorUrl}/${version}/apache-cassandra-${version}-bin.tar.gz"); /** download mirror, if desired */ @SetFromFlag("mirrorUrl") - ConfigKey<String> MIRROR_URL = new BasicConfigKey<String>(String.class, "cassandra.install.mirror.url", "URL of mirror", + ConfigKey<String> MIRROR_URL = ConfigKeys.newStringConfigKey("cassandra.install.mirror.url", "URL of mirror", "http://www.mirrorservice.org/sites/ftp.apache.org/cassandra" // for older versions, but slower: // "http://archive.apache.org/dist/cassandra/" ); @SetFromFlag("tgzUrl") - ConfigKey<String> TGZ_URL = new BasicConfigKey<String>(String.class, "cassandra.install.tgzUrl", "URL of TGZ download file"); + ConfigKey<String> TGZ_URL = ConfigKeys.newStringConfigKey("cassandra.install.tgzUrl", "URL of TGZ download file"); @SetFromFlag("clusterName") BasicAttributeSensorAndConfigKey<String> CLUSTER_NAME = CassandraDatacenter.CLUSTER_NAME; @@ -79,20 +82,20 @@ public interface CassandraNode extends DatastoreMixins.DatastoreCommon, Software ConfigKey<String> ENDPOINT_SNITCH_NAME = CassandraDatacenter.ENDPOINT_SNITCH_NAME; @SetFromFlag("gossipPort") - PortAttributeSensorAndConfigKey GOSSIP_PORT = new PortAttributeSensorAndConfigKey("cassandra.gossip.port", "Cassandra Gossip communications port", PortRanges.fromString("7000+")); + PortAttributeSensorAndConfigKey GOSSIP_PORT = ConfigKeys.newPortSensorAndConfigKey("cassandra.gossip.port", "Cassandra Gossip communications port", PortRanges.fromString("7000+")); @SetFromFlag("sslGgossipPort") - PortAttributeSensorAndConfigKey SSL_GOSSIP_PORT = new PortAttributeSensorAndConfigKey("cassandra.ssl-gossip.port", "Cassandra Gossip SSL communications port", PortRanges.fromString("7001+")); + PortAttributeSensorAndConfigKey SSL_GOSSIP_PORT = ConfigKeys.newPortSensorAndConfigKey("cassandra.ssl-gossip.port", "Cassandra Gossip SSL communications port", PortRanges.fromString("7001+")); @SetFromFlag("thriftPort") - PortAttributeSensorAndConfigKey THRIFT_PORT = new PortAttributeSensorAndConfigKey("cassandra.thrift.port", "Cassandra Thrift RPC port", PortRanges.fromString("9160+")); + PortAttributeSensorAndConfigKey THRIFT_PORT = ConfigKeys.newPortSensorAndConfigKey("cassandra.thrift.port", "Cassandra Thrift RPC port", PortRanges.fromString("9160+")); @SetFromFlag("nativePort") - PortAttributeSensorAndConfigKey NATIVE_TRANSPORT_PORT = new PortAttributeSensorAndConfigKey("cassandra.native.port", "Cassandra Native Transport port", PortRanges.fromString("9042+")); + PortAttributeSensorAndConfigKey NATIVE_TRANSPORT_PORT = ConfigKeys.newPortSensorAndConfigKey("cassandra.native.port", "Cassandra Native Transport port", PortRanges.fromString("9042+")); @SetFromFlag("rmiRegistryPort") // cassandra nodetool and others want 7199 - not required, but useful - PortAttributeSensorAndConfigKey RMI_REGISTRY_PORT = new PortAttributeSensorAndConfigKey(UsesJmx.RMI_REGISTRY_PORT, + PortAttributeSensorAndConfigKey RMI_REGISTRY_PORT = ConfigKeys.newPortSensorAndConfigKeyWithDefault(UsesJmx.RMI_REGISTRY_PORT, PortRanges.fromInteger(7199)); // some of the cassandra tooing (eg nodetool) use RMI, but we want JMXMP, so do both! @@ -123,14 +126,12 @@ public interface CassandraNode extends DatastoreMixins.DatastoreCommon, Software "cassandra.config.rackdc.fileName", "Name for the copied rackdc config file (used for configuring replication, when a suitable snitch is used)", "cassandra-rackdc.properties"); @SetFromFlag("datacenterName") - BasicAttributeSensorAndConfigKey<String> DATACENTER_NAME = new BasicAttributeSensorAndConfigKey<String>( - String.class, "cassandra.replication.datacenterName", "Datacenter name (used for configuring replication, when a suitable snitch is used)", - null); + AttributeSensorAndConfigKey<String, String> DATACENTER_NAME = ConfigKeys.newStringSensorAndConfigKey( + "cassandra.replication.datacenterName", "Datacenter name (used for configuring replication, when a suitable snitch is used)"); @SetFromFlag("rackName") - BasicAttributeSensorAndConfigKey<String> RACK_NAME = new BasicAttributeSensorAndConfigKey<String>( - String.class, "cassandra.replication.rackName", "Rack name (used for configuring replication, when a suitable snitch is used)", - null); + AttributeSensorAndConfigKey<String, String> RACK_NAME = ConfigKeys.newStringSensorAndConfigKey( + "cassandra.replication.rackName", "Rack name (used for configuring replication, when a suitable snitch is used)"); ConfigKey<Integer> NUM_TOKENS_PER_NODE = ConfigKeys.newIntegerConfigKey("cassandra.numTokensPerNode", "Number of tokens per node; if using vnodes, should set this to a value like 256", @@ -138,15 +139,15 @@ public interface CassandraNode extends DatastoreMixins.DatastoreCommon, Software @SetFromFlag("tokens") @SuppressWarnings("serial") - BasicAttributeSensorAndConfigKey<Set<BigInteger>> TOKENS = new BasicAttributeSensorAndConfigKey<Set<BigInteger>>( + AttributeSensorAndConfigKey<Set<BigInteger>, Set<BigInteger>> TOKENS = ConfigKeys.newSensorAndConfigKey( new TypeToken<Set<BigInteger>>() {}, "cassandra.tokens", "Cassandra Tokens"); @SetFromFlag("useThriftMonitoring") ConfigKey<Boolean> USE_THRIFT_MONITORING = ConfigKeys.newConfigKey("thriftMonitoring.enabled", "Thrift-port monitoring enabled", Boolean.TRUE); - AttributeSensor<Integer> PEERS = Sensors.newIntegerSensor( "cassandra.peers", "Number of peers in cluster"); + AttributeSensor<Integer> PEERS = Sensors.newIntegerSensor("cassandra.peers", "Number of peers in cluster"); - AttributeSensor<Integer> LIVE_NODE_COUNT = Sensors.newIntegerSensor( "cassandra.liveNodeCount", "Number of live nodes in cluster"); + AttributeSensor<Integer> LIVE_NODE_COUNT = Sensors.newIntegerSensor("cassandra.liveNodeCount", "Number of live nodes in cluster"); /* Metrics for read/write performance. */ http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeSshDriver.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeSshDriver.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeSshDriver.java index d3230f9..1c72ab4 100644 --- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeSshDriver.java +++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeSshDriver.java @@ -113,10 +113,6 @@ public class CassandraNodeSshDriver extends JavaSoftwareProcessSshDriver impleme public String getMirrorUrl() { return entity.getConfig(CassandraNode.MIRROR_URL); } - protected String getDefaultUnpackedDirectoryName() { - return "apache-cassandra-"+getVersion(); - } - protected boolean isV2() { String version = getVersion(); return version.startsWith("2."); @@ -132,12 +128,6 @@ public class CassandraNodeSshDriver extends JavaSoftwareProcessSshDriver impleme } @Override - public void preInstall() { - resolver = Entities.newDownloader(this); - setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(getDefaultUnpackedDirectoryName()))); - } - - @Override public void install() { List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/couchbase/CouchbaseNodeSshDriver.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/couchbase/CouchbaseNodeSshDriver.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/couchbase/CouchbaseNodeSshDriver.java index 915f06a..4e89c3e 100644 --- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/couchbase/CouchbaseNodeSshDriver.java +++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/couchbase/CouchbaseNodeSshDriver.java @@ -19,7 +19,12 @@ package org.apache.brooklyn.entity.nosql.couchbase; import static java.lang.String.format; -import static org.apache.brooklyn.util.ssh.BashCommands.*; +import static org.apache.brooklyn.util.ssh.BashCommands.INSTALL_CURL; +import static org.apache.brooklyn.util.ssh.BashCommands.alternatives; +import static org.apache.brooklyn.util.ssh.BashCommands.chainGroup; +import static org.apache.brooklyn.util.ssh.BashCommands.installPackage; +import static org.apache.brooklyn.util.ssh.BashCommands.ok; +import static org.apache.brooklyn.util.ssh.BashCommands.sudo; import java.net.URI; import java.util.Arrays; @@ -29,13 +34,21 @@ import java.util.concurrent.Callable; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.apache.http.auth.UsernamePasswordCredentials; + +import com.google.common.base.Function; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; +import com.google.common.net.HostAndPort; + import org.apache.brooklyn.api.entity.Entity; import org.apache.brooklyn.api.entity.Group; import org.apache.brooklyn.api.location.OsDetails; import org.apache.brooklyn.api.mgmt.Task; import org.apache.brooklyn.core.effector.ssh.SshEffectorTasks; import org.apache.brooklyn.core.entity.Attributes; -import org.apache.brooklyn.core.entity.Entities; import org.apache.brooklyn.core.entity.drivers.downloads.BasicDownloadRequirement; import org.apache.brooklyn.core.entity.drivers.downloads.DownloadProducerFromUrlAttribute; import org.apache.brooklyn.core.entity.lifecycle.ServiceStateLogic; @@ -43,29 +56,21 @@ import org.apache.brooklyn.core.location.access.BrooklynAccessUtils; import org.apache.brooklyn.core.sensor.DependentConfiguration; import org.apache.brooklyn.entity.software.base.AbstractSoftwareProcessSshDriver; import org.apache.brooklyn.feed.http.HttpValueFunctions; -import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.brooklyn.location.ssh.SshMachineLocation; import org.apache.brooklyn.util.collections.MutableMap; -import org.apache.brooklyn.util.http.HttpTool; -import org.apache.brooklyn.util.http.HttpToolResponse; import org.apache.brooklyn.util.core.task.DynamicTasks; import org.apache.brooklyn.util.core.task.TaskBuilder; import org.apache.brooklyn.util.core.task.TaskTags; import org.apache.brooklyn.util.core.task.Tasks; +import org.apache.brooklyn.util.http.HttpTool; +import org.apache.brooklyn.util.http.HttpToolResponse; import org.apache.brooklyn.util.repeat.Repeater; import org.apache.brooklyn.util.ssh.BashCommands; import org.apache.brooklyn.util.text.NaturalOrderComparator; -import org.apache.brooklyn.util.text.Strings; import org.apache.brooklyn.util.text.StringEscapes.BashStringEscapes; +import org.apache.brooklyn.util.text.Strings; import org.apache.brooklyn.util.time.Duration; -import com.google.common.base.Function; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; -import com.google.common.net.HostAndPort; - public class CouchbaseNodeSshDriver extends AbstractSoftwareProcessSshDriver implements CouchbaseNodeDriver { public CouchbaseNodeSshDriver(final CouchbaseNodeImpl entity, final SshMachineLocation machine) { @@ -77,12 +82,6 @@ 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) http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/elasticsearch/ElasticSearchNode.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/elasticsearch/ElasticSearchNode.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/elasticsearch/ElasticSearchNode.java index 1687bf1..9e5f8ba 100644 --- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/elasticsearch/ElasticSearchNode.java +++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/elasticsearch/ElasticSearchNode.java @@ -24,13 +24,13 @@ import org.apache.brooklyn.api.sensor.AttributeSensor; import org.apache.brooklyn.config.ConfigKey; import org.apache.brooklyn.core.config.ConfigKeys; import org.apache.brooklyn.core.location.PortRanges; -import org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey; +import org.apache.brooklyn.core.sensor.AttributeSensorAndConfigKey; +import org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey.StringAttributeSensorAndConfigKey; import org.apache.brooklyn.core.sensor.PortAttributeSensorAndConfigKey; import org.apache.brooklyn.core.sensor.Sensors; -import org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey.StringAttributeSensorAndConfigKey; +import org.apache.brooklyn.entity.database.DatastoreMixins; import org.apache.brooklyn.entity.software.base.SoftwareProcess; import org.apache.brooklyn.entity.webapp.WebAppServiceConstants; -import org.apache.brooklyn.entity.database.DatastoreMixins; import org.apache.brooklyn.util.core.ResourcePredicates; import org.apache.brooklyn.util.core.flags.SetFromFlag; @@ -42,12 +42,16 @@ import org.apache.brooklyn.util.core.flags.SetFromFlag; + "schema-free JSON documents.") @ImplementedBy(ElasticSearchNodeImpl.class) public interface ElasticSearchNode extends SoftwareProcess, DatastoreMixins.HasDatastoreUrl { + @SetFromFlag("version") ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "1.2.1"); + @SetFromFlag("archiveNameFormat") + ConfigKey<String> ARCHIVE_DIRECTORY_NAME_FORMAT = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.ARCHIVE_DIRECTORY_NAME_FORMAT, "elasticsearch-%s"); + @SetFromFlag("downloadUrl") - BasicAttributeSensorAndConfigKey<String> DOWNLOAD_URL = new BasicAttributeSensorAndConfigKey<String>( - SoftwareProcess.DOWNLOAD_URL, "https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-${version}.tar.gz"); + AttributeSensorAndConfigKey<String, String> DOWNLOAD_URL = ConfigKeys.newSensorAndConfigKeyWithDefault(SoftwareProcess.DOWNLOAD_URL, + "https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-${version}.tar.gz"); @SetFromFlag("dataDir") ConfigKey<String> DATA_DIR = ConfigKeys.newStringConfigKey("elasticsearch.node.data.dir", "Directory for writing data files", null); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/elasticsearch/ElasticSearchNodeSshDriver.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/elasticsearch/ElasticSearchNodeSshDriver.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/elasticsearch/ElasticSearchNodeSshDriver.java index 6e35e8b..4380d04 100644 --- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/elasticsearch/ElasticSearchNodeSshDriver.java +++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/elasticsearch/ElasticSearchNodeSshDriver.java @@ -18,15 +18,14 @@ */ package org.apache.brooklyn.entity.nosql.elasticsearch; -import static java.lang.String.format; - import java.io.Reader; import java.io.StringReader; import java.util.List; +import com.google.common.collect.ImmutableList; + import org.apache.brooklyn.api.entity.EntityLocal; import org.apache.brooklyn.config.ConfigKey; -import org.apache.brooklyn.core.entity.Entities; import org.apache.brooklyn.entity.software.base.AbstractSoftwareProcessSshDriver; import org.apache.brooklyn.location.ssh.SshMachineLocation; import org.apache.brooklyn.util.collections.MutableMap; @@ -34,8 +33,6 @@ import org.apache.brooklyn.util.net.Urls; import org.apache.brooklyn.util.os.Os; import org.apache.brooklyn.util.ssh.BashCommands; -import com.google.common.collect.ImmutableList; - public class ElasticSearchNodeSshDriver extends AbstractSoftwareProcessSshDriver implements ElasticSearchNodeDriver { public ElasticSearchNodeSshDriver(EntityLocal entity, SshMachineLocation machine) { @@ -43,12 +40,6 @@ 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() { List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/hazelcast/HazelcastNodeSshDriver.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/hazelcast/HazelcastNodeSshDriver.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/hazelcast/HazelcastNodeSshDriver.java index 2a9b9c5..0e48328 100644 --- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/hazelcast/HazelcastNodeSshDriver.java +++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/hazelcast/HazelcastNodeSshDriver.java @@ -48,11 +48,6 @@ public class HazelcastNodeSshDriver extends JavaSoftwareProcessSshDriver impleme } @Override - public void preInstall() { - resolver = Entities.newDownloader(this); - } - - @Override public void install() { List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/mongodb/AbstractMongoDBSshDriver.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/mongodb/AbstractMongoDBSshDriver.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/mongodb/AbstractMongoDBSshDriver.java index ccbe470..acfe9dc 100644 --- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/mongodb/AbstractMongoDBSshDriver.java +++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/mongodb/AbstractMongoDBSshDriver.java @@ -22,9 +22,16 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.base.Joiner; +import com.google.common.base.Strings; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; + import org.apache.brooklyn.api.entity.EntityLocal; import org.apache.brooklyn.api.location.OsDetails; -import org.apache.brooklyn.core.entity.Entities; import org.apache.brooklyn.entity.software.base.AbstractSoftwareProcessSshDriver; import org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper; import org.apache.brooklyn.location.ssh.SshMachineLocation; @@ -35,13 +42,6 @@ import org.apache.brooklyn.util.net.Networking; import org.apache.brooklyn.util.os.Os; import org.apache.brooklyn.util.ssh.BashCommands; import org.apache.brooklyn.util.time.Duration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.common.base.Joiner; -import com.google.common.base.Strings; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; public abstract class AbstractMongoDBSshDriver extends AbstractSoftwareProcessSshDriver { @@ -52,9 +52,8 @@ public abstract class AbstractMongoDBSshDriver extends AbstractSoftwareProcessSs } @Override - public void preInstall() { - resolver = Entities.newDownloader(this); - setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(getBaseName()))); + public String getArchiveNameFormat() { + return getOsTag() + "-%s"; } @Override @@ -150,10 +149,6 @@ public abstract class AbstractMongoDBSshDriver extends AbstractSoftwareProcessSs .execute(); } - protected String getBaseName() { - return getOsTag() + "-" + entity.getConfig(AbstractMongoDBServer.SUGGESTED_VERSION); - } - // IDE note: This is used by MongoDBServer.DOWNLOAD_URL public String getOsDir() { return (getLocation().getOsDetails().isMac()) ? "osx" : "linux"; http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/redis/RedisStore.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/redis/RedisStore.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/redis/RedisStore.java index 64c0344..01a7a92 100644 --- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/redis/RedisStore.java +++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/redis/RedisStore.java @@ -23,7 +23,7 @@ import org.apache.brooklyn.api.entity.ImplementedBy; import org.apache.brooklyn.api.sensor.AttributeSensor; import org.apache.brooklyn.config.ConfigKey; import org.apache.brooklyn.core.config.ConfigKeys; -import org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey; +import org.apache.brooklyn.core.sensor.AttributeSensorAndConfigKey; import org.apache.brooklyn.core.sensor.PortAttributeSensorAndConfigKey; import org.apache.brooklyn.core.sensor.Sensors; import org.apache.brooklyn.entity.software.base.SoftwareProcess; @@ -41,12 +41,15 @@ public interface RedisStore extends SoftwareProcess { ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "2.8.4"); + @SetFromFlag("archiveNameFormat") + ConfigKey<String> ARCHIVE_DIRECTORY_NAME_FORMAT = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.ARCHIVE_DIRECTORY_NAME_FORMAT, "redis-%s"); + @SetFromFlag("downloadUrl") - BasicAttributeSensorAndConfigKey<String> DOWNLOAD_URL = new BasicAttributeSensorAndConfigKey<String>( - SoftwareProcess.DOWNLOAD_URL, "http://download.redis.io/releases/redis-${version}.tar.gz"); + AttributeSensorAndConfigKey<String, String> DOWNLOAD_URL = ConfigKeys.newSensorAndConfigKeyWithDefault(SoftwareProcess.DOWNLOAD_URL, + "http://download.redis.io/releases/redis-${version}.tar.gz"); @SetFromFlag("redisPort") - PortAttributeSensorAndConfigKey REDIS_PORT = new PortAttributeSensorAndConfigKey("redis.port", "Redis port number", "6379+"); + PortAttributeSensorAndConfigKey REDIS_PORT = ConfigKeys.newPortSensorAndConfigKey("redis.port", "Redis port number", "6379+"); @SetFromFlag("redisConfigTemplateUrl") ConfigKey<String> REDIS_CONFIG_TEMPLATE_URL = ConfigKeys.builder(String.class) http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/redis/RedisStoreSshDriver.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/redis/RedisStoreSshDriver.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/redis/RedisStoreSshDriver.java index 81ebfe3..a46b1b0 100644 --- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/redis/RedisStoreSshDriver.java +++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/redis/RedisStoreSshDriver.java @@ -48,12 +48,6 @@ 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() { List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/riak/RiakNode.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/riak/RiakNode.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/riak/RiakNode.java index e21260a..13de43d 100644 --- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/riak/RiakNode.java +++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/riak/RiakNode.java @@ -49,6 +49,9 @@ public interface RiakNode extends SoftwareProcess, UsesJava { ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "Version to install (Default 2.0.5)", "2.0.5"); + @SetFromFlag("archiveNameFormat") + ConfigKey<String> ARCHIVE_DIRECTORY_NAME_FORMAT = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.ARCHIVE_DIRECTORY_NAME_FORMAT, "riak-%s"); + @SetFromFlag("optimizeNetworking") ConfigKey<Boolean> OPTIMIZE_HOST_NETWORKING = ConfigKeys.newBooleanConfigKey("riak.networking.optimize", "Optimize host networking when running in a VM", Boolean.TRUE); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java index 65879a7..7888831 100644 --- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java +++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java @@ -93,9 +93,8 @@ public class RiakNodeSshDriver extends JavaSoftwareProcessSshDriver implements R } @Override - public void preInstall() { - resolver = Entities.newDownloader(this); - setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("riak-%s", getVersion())))); + public void prepare() { + super.prepare(); // Set package install attribute OsDetails osDetails = getMachine().getMachineDetails().getOsDetails(); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/solr/SolrServer.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/solr/SolrServer.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/solr/SolrServer.java index 702d595..e703b56 100644 --- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/solr/SolrServer.java +++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/solr/SolrServer.java @@ -20,13 +20,16 @@ package org.apache.brooklyn.entity.nosql.solr; import java.util.Map; +import com.google.common.collect.Maps; +import com.google.common.reflect.TypeToken; + import org.apache.brooklyn.api.catalog.Catalog; import org.apache.brooklyn.api.entity.ImplementedBy; import org.apache.brooklyn.config.ConfigKey; import org.apache.brooklyn.core.config.ConfigKeys; import org.apache.brooklyn.core.entity.BrooklynConfigKeys; import org.apache.brooklyn.core.location.PortRanges; -import org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey; +import org.apache.brooklyn.core.sensor.AttributeSensorAndConfigKey; import org.apache.brooklyn.core.sensor.PortAttributeSensorAndConfigKey; import org.apache.brooklyn.entity.java.UsesJava; import org.apache.brooklyn.entity.java.UsesJavaMXBeans; @@ -35,9 +38,6 @@ import org.apache.brooklyn.entity.software.base.SoftwareProcess; import org.apache.brooklyn.util.core.flags.SetFromFlag; import org.apache.brooklyn.util.time.Duration; -import com.google.common.collect.Maps; -import com.google.common.reflect.TypeToken; - /** * An {@link org.apache.brooklyn.api.entity.Entity} that represents a Solr node. */ @@ -49,9 +49,12 @@ public interface SolrServer extends SoftwareProcess, UsesJava, UsesJmx, UsesJava @SetFromFlag("version") ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "4.7.2"); + @SetFromFlag("archiveNameFormat") + ConfigKey<String> ARCHIVE_DIRECTORY_NAME_FORMAT = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.ARCHIVE_DIRECTORY_NAME_FORMAT, "solr-%s"); + @SetFromFlag("downloadUrl") - BasicAttributeSensorAndConfigKey<String> DOWNLOAD_URL = new BasicAttributeSensorAndConfigKey<String>( - SoftwareProcess.DOWNLOAD_URL, "${driver.mirrorUrl}/${version}/solr-${version}.tgz"); + AttributeSensorAndConfigKey<String, String> DOWNLOAD_URL = ConfigKeys.newSensorAndConfigKeyWithDefault(SoftwareProcess.DOWNLOAD_URL, + "${driver.mirrorUrl}/${version}/solr-${version}.tgz"); /** download mirror, if desired */ @SetFromFlag("mirrorUrl") @@ -59,7 +62,7 @@ public interface SolrServer extends SoftwareProcess, UsesJava, UsesJmx, UsesJava "http://mirrors.ukfast.co.uk/sites/ftp.apache.org/lucene/solr/"); @SetFromFlag("solrPort") - PortAttributeSensorAndConfigKey SOLR_PORT = new PortAttributeSensorAndConfigKey("solr.http.port", "Solr HTTP communications port", + PortAttributeSensorAndConfigKey SOLR_PORT = ConfigKeys.newPortSensorAndConfigKey("solr.http.port", "Solr HTTP communications port", PortRanges.fromString("8983+")); @SetFromFlag("solrConfigTemplateUrl") http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/solr/SolrServerSshDriver.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/solr/SolrServerSshDriver.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/solr/SolrServerSshDriver.java index 773083e..0b14bf6 100644 --- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/solr/SolrServerSshDriver.java +++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/solr/SolrServerSshDriver.java @@ -65,12 +65,6 @@ public class SolrServerSshDriver extends JavaSoftwareProcessSshDriver implements 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() { List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename();