You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2016/03/07 10:32:31 UTC

[01/13] brooklyn-library git commit: riak minor log fix

Repository: brooklyn-library
Updated Branches:
  refs/heads/master 6efb209a4 -> a0e352de1


riak minor log fix


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

Branch: refs/heads/master
Commit: 6fe1f8807015625ff9bb2aab22f0b3130f87e451
Parents: 0576a6c
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Feb 24 14:05:30 2016 -0800
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Feb 24 14:05:30 2016 -0800

----------------------------------------------------------------------
 .../brooklyn/entity/nosql/riak/RiakNodeSshDriver.java  | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/6fe1f880/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..33f77f5 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
@@ -22,13 +22,13 @@ import static java.lang.String.format;
 import static org.apache.brooklyn.util.ssh.BashCommands.INSTALL_CURL;
 import static org.apache.brooklyn.util.ssh.BashCommands.INSTALL_TAR;
 import static org.apache.brooklyn.util.ssh.BashCommands.addSbinPathCommand;
-import static org.apache.brooklyn.util.ssh.BashCommands.sbinPath;
 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.commandToDownloadUrlAs;
 import static org.apache.brooklyn.util.ssh.BashCommands.ifExecutableElse;
 import static org.apache.brooklyn.util.ssh.BashCommands.ifNotExecutable;
 import static org.apache.brooklyn.util.ssh.BashCommands.ok;
+import static org.apache.brooklyn.util.ssh.BashCommands.sbinPath;
 import static org.apache.brooklyn.util.ssh.BashCommands.sudo;
 import static org.apache.brooklyn.util.text.StringEscapes.BashStringEscapes.escapeLiteralForDoubleQuotedBash;
 
@@ -37,8 +37,6 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.apache.brooklyn.api.location.OsDetails;
 import org.apache.brooklyn.core.effector.ssh.SshEffectorTasks;
 import org.apache.brooklyn.core.entity.Attributes;
@@ -53,6 +51,8 @@ import org.apache.brooklyn.util.net.Urls;
 import org.apache.brooklyn.util.os.Os;
 import org.apache.brooklyn.util.ssh.BashCommands;
 import org.apache.brooklyn.util.text.Strings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Joiner;
 import com.google.common.base.Optional;
@@ -108,9 +108,10 @@ public class RiakNodeSshDriver extends JavaSoftwareProcessSshDriver implements R
 
     @Override
     public void install() {
-        if (entity.getConfig(Attributes.DOWNLOAD_URL) != null) {
-            LOG.warn("Ignoring download.url {}, use download.url.rhelcentos or download.url.mac", entity.getConfig(Attributes.DOWNLOAD_URL));
-        }
+        // TODO download URL can be inferred
+//        if (entity.getConfig(Attributes.DOWNLOAD_URL) != null) {
+//            LOG.warn("Ignoring download.url {}, use download.url.rhelcentos or download.url.mac", entity.getConfig(Attributes.DOWNLOAD_URL));
+//        }
 
         OsDetails osDetails = getMachine().getMachineDetails().getOsDetails();
         List<String> commands = Lists.newLinkedList();


[13/13] brooklyn-library git commit: tidy review comments for riak node driver

Posted by he...@apache.org.
tidy review comments for riak node driver


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

Branch: refs/heads/master
Commit: a0e352de176756dfede7f6ae7e69c4c78a88b36e
Parents: 632ff60
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon Mar 7 09:26:37 2016 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Mon Mar 7 09:26:37 2016 +0000

----------------------------------------------------------------------
 .../apache/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java   | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/a0e352de/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 00b675e..a62b400 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
@@ -108,11 +108,6 @@ public class RiakNodeSshDriver extends JavaSoftwareProcessSshDriver implements R
 
     @Override
     public void install() {
-        // TODO download URL can be inferred
-//        if (entity.getConfig(Attributes.DOWNLOAD_URL) != null) {
-//            LOG.warn("Ignoring download.url {}, use download.url.rhelcentos or download.url.mac", entity.getConfig(Attributes.DOWNLOAD_URL));
-//        }
-
         OsDetails osDetails = getMachine().getMachineDetails().getOsDetails();
         List<String> commands = Lists.newLinkedList();
         if (osDetails.isLinux()) {
@@ -130,6 +125,7 @@ public class RiakNodeSshDriver extends JavaSoftwareProcessSshDriver implements R
                     getMachine() + ". Details: " + getMachine().getMachineDetails().getOsDetails());
         }
 
+        LOG.debug("Installing to "+this+" using commands:\n"+Strings.join(commands, "\n"));
         int result = newScript(INSTALLING)
                 .body.append(commands)
                 .failIfBodyEmpty()


[04/13] brooklyn-library git commit: CouchDB polling sensors fix - update with stats which are more likely to be available

Posted by he...@apache.org.
CouchDB polling sensors fix
- update with stats which are more likely to be available


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

Branch: refs/heads/master
Commit: 57d89cb5fd7e7d8bf462d2284c50ff2a0e33c2e9
Parents: cbb58b9
Author: Valentin Aitken <bo...@gmail.com>
Authored: Tue Mar 1 18:32:49 2016 +0200
Committer: Valentin Aitken <bo...@gmail.com>
Committed: Tue Mar 1 18:32:49 2016 +0200

----------------------------------------------------------------------
 .../brooklyn/entity/nosql/couchdb/CouchDBNodeImpl.java       | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/57d89cb5/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/couchdb/CouchDBNodeImpl.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/couchdb/CouchDBNodeImpl.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/couchdb/CouchDBNodeImpl.java
index 933e818..78a85f9 100644
--- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/couchdb/CouchDBNodeImpl.java
+++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/couchdb/CouchDBNodeImpl.java
@@ -65,21 +65,21 @@ public class CouchDBNodeImpl extends SoftwareProcessImpl implements CouchDBNode
         connectServiceUpIsRunning();
 
         boolean retrieveUsageMetrics = getConfig(RETRIEVE_USAGE_METRICS);
-        
+
         httpFeed = HttpFeed.builder()
                 .entity(this)
                 .period(500, TimeUnit.MILLISECONDS)
                 .baseUri(String.format("http://%s:%d/_stats", getAttribute(HOSTNAME), getHttpPort()))
                 .poll(new HttpPollConfig<Integer>(REQUEST_COUNT)
-                        .onSuccess(HttpValueFunctions.jsonContents(new String[] { "httpd", "requests", "count" }, Integer.class))
+                        .onSuccess(HttpValueFunctions.jsonContents(new String[] { "httpd", "requests", "sum" }, Integer.class))
                         .onFailureOrException(EntityFunctions.attribute(this, REQUEST_COUNT))
                         .enabled(retrieveUsageMetrics))
                 .poll(new HttpPollConfig<Integer>(ERROR_COUNT)
-                        .onSuccess(HttpValueFunctions.jsonContents(new String[] { "httpd_status_codes", "404", "count" }, Integer.class))
+                        .onSuccess(HttpValueFunctions.jsonContents(new String[] { "httpd_status_codes", "404", "sum" }, Integer.class))
                         .onFailureOrException(Functions.constant(-1))
                         .enabled(retrieveUsageMetrics))
                 .poll(new HttpPollConfig<Integer>(TOTAL_PROCESSING_TIME)
-                        .onSuccess(HttpValueFunctions.jsonContents(new String[] { "couchdb", "request_time", "count" }, Integer.class))
+                        .onSuccess(HttpValueFunctions.jsonContents(new String[] { "couchdb", "request_time", "sum" }, Integer.class))
                         .onFailureOrException(Functions.constant(-1))
                         .enabled(retrieveUsageMetrics))
                 .poll(new HttpPollConfig<Integer>(MAX_PROCESSING_TIME)


[07/13] brooklyn-library git commit: Use curl instead of wget in entities

Posted by he...@apache.org.
Use curl instead of wget in entities


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

Branch: refs/heads/master
Commit: 39ed6e4c6ebb4ef035737311b26abb9bb7eaf85b
Parents: cbb58b9
Author: Andrew Donald Kennedy <an...@cloudsoftcorp.com>
Authored: Sat Mar 5 17:35:48 2016 +0000
Committer: Andrew Donald Kennedy <an...@cloudsoftcorp.com>
Committed: Sun Mar 6 20:31:52 2016 +0000

----------------------------------------------------------------------
 .../database/postgresql/PostgreSqlSshDriver.java  | 14 +++++++-------
 .../entity/messaging/rabbit/RabbitSshDriver.java  | 18 +++++++++++++-----
 .../network/bind/BindDnsServerSshDriver.java      |  4 ++--
 .../entity/nosql/riak/RiakNodeSshDriver.java      |  4 ++--
 .../entity/nosql/couchbase/pillowfight.yaml       |  8 +++++---
 5 files changed, 29 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/39ed6e4c/software/database/src/main/java/org/apache/brooklyn/entity/database/postgresql/PostgreSqlSshDriver.java
----------------------------------------------------------------------
diff --git a/software/database/src/main/java/org/apache/brooklyn/entity/database/postgresql/PostgreSqlSshDriver.java b/software/database/src/main/java/org/apache/brooklyn/entity/database/postgresql/PostgreSqlSshDriver.java
index 059c348..8abe795 100644
--- a/software/database/src/main/java/org/apache/brooklyn/entity/database/postgresql/PostgreSqlSshDriver.java
+++ b/software/database/src/main/java/org/apache/brooklyn/entity/database/postgresql/PostgreSqlSshDriver.java
@@ -19,7 +19,7 @@
 package org.apache.brooklyn.entity.database.postgresql;
 
 import static java.lang.String.format;
-import static org.apache.brooklyn.util.ssh.BashCommands.INSTALL_WGET;
+import static org.apache.brooklyn.util.ssh.BashCommands.INSTALL_CURL;
 import static org.apache.brooklyn.util.ssh.BashCommands.alternativesGroup;
 import static org.apache.brooklyn.util.ssh.BashCommands.chainGroup;
 import static org.apache.brooklyn.util.ssh.BashCommands.dontRequireTtyForSudo;
@@ -216,17 +216,17 @@ public class PostgreSqlSshDriver extends AbstractSoftwareProcessSshDriver implem
         }
 
         return chainGroup(
-                INSTALL_WGET,
-                sudo(format("wget http://yum.postgresql.org/%s/redhat/rhel-%s-%s/pgdg-%s%s-%s.noarch.rpm", majorMinorVersion, osMajorVersion, arch, osName, shortVersion, version)),
-                sudo(format("rpm -Uvh pgdg-%s%s-%s.noarch.rpm", osName, shortVersion, version))
+                INSTALL_CURL,
+                sudo(format("curl http://yum.postgresql.org/%s/redhat/rhel-%s-%s/pgdg-%s%s-%s.noarch.rpm -o pgdg.rpm", majorMinorVersion, osMajorVersion, arch, osName, shortVersion, version)),
+                sudo("rpm -Uvh pgdg.rpm")
             );
     }
 
     private String getAptRepository() {
         return chainGroup(
-                INSTALL_WGET,
-                "wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo tee -a apt-key add -",
-                "echo \"deb http://apt.postgresql.org/pub/repos/apt/   $(sudo lsb_release --codename --short)-pgdg main\" | sudo tee -a /etc/apt/sources.list.d/postgresql.list"
+                INSTALL_CURL,
+                "curl http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo tee -a apt-key add",
+                "echo \"deb http://apt.postgresql.org/pub/repos/apt/ $(sudo lsb_release --codename --short)-pgdg main\" | sudo tee -a /etc/apt/sources.list.d/postgresql.list"
             );
     }
 

http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/39ed6e4c/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..632bb05 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
@@ -19,7 +19,14 @@
 package org.apache.brooklyn.entity.messaging.rabbit;
 
 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.chainGroup;
+import static org.apache.brooklyn.util.ssh.BashCommands.commandsToDownloadUrlsAs;
+import static org.apache.brooklyn.util.ssh.BashCommands.ifExecutableElse0;
+import static org.apache.brooklyn.util.ssh.BashCommands.installExecutable;
+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.util.List;
 import java.util.Map;
@@ -37,6 +44,7 @@ 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.net.Networking;
+import org.apache.brooklyn.util.net.Urls;
 import org.apache.brooklyn.util.os.Os;
 import org.apache.brooklyn.util.text.Strings;
 
@@ -45,7 +53,7 @@ import org.apache.brooklyn.util.text.Strings;
  */
 public class RabbitSshDriver extends AbstractSoftwareProcessSshDriver implements RabbitDriver {
 
-    private static final Logger log = LoggerFactory.getLogger(RabbitSshDriver.class);
+    private static final Logger LOG = LoggerFactory.getLogger(RabbitSshDriver.class);
 
     // See http://fedoraproject.org/wiki/EPEL/FAQ#howtouse
     private static final Map<String, String> CENTOS_VERSION_TO_EPEL_VERSION = ImmutableMap.of(
@@ -58,7 +66,7 @@ public class RabbitSshDriver extends AbstractSoftwareProcessSshDriver implements
         super(entity, machine);
     }
 
-    protected String getLogFileLocation() { return getRunDir()+"/"+entity.getId()+".log"; }
+    protected String getLogFileLocation() { return Urls.mergePaths(getRunDir(), entity.getId() + ".log"); }
 
     public Integer getAmqpPort() { return entity.getAttribute(AmqpServer.AMQP_PORT); }
 
@@ -246,8 +254,8 @@ public class RabbitSshDriver extends AbstractSoftwareProcessSshDriver implements
         String debFileName = "erlang-repo.deb";
 
         return chainGroup(
-                INSTALL_WGET,
-                format("wget --quiet -O %s %s", debFileName, entity.getConfig(RabbitBroker.ERLANG_DEB_REPO_URL)),
+                INSTALL_CURL,
+                format("curl %s -o %s", entity.config().get(RabbitBroker.ERLANG_DEB_REPO_URL), debFileName),
                 sudo(format("dpkg -i %s", debFileName))
             );
     }

http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/39ed6e4c/software/network/src/main/java/org/apache/brooklyn/entity/network/bind/BindDnsServerSshDriver.java
----------------------------------------------------------------------
diff --git a/software/network/src/main/java/org/apache/brooklyn/entity/network/bind/BindDnsServerSshDriver.java b/software/network/src/main/java/org/apache/brooklyn/entity/network/bind/BindDnsServerSshDriver.java
index b9991c8..ad0aaff 100644
--- a/software/network/src/main/java/org/apache/brooklyn/entity/network/bind/BindDnsServerSshDriver.java
+++ b/software/network/src/main/java/org/apache/brooklyn/entity/network/bind/BindDnsServerSshDriver.java
@@ -84,8 +84,8 @@ public class BindDnsServerSshDriver extends AbstractSoftwareProcessSshDriver imp
                 BashCommands.sudo("service iptables save"),
                 BashCommands.sudo("service iptables restart"));
         if (getEntity().getConfig(BindDnsServer.UPDATE_ROOT_ZONES_FILE)) {
-            commands.add("wget --user=ftp --password=ftp ftp://ftp.rs.internic.net/domain/db.cache " +
-                    "-O " + getOsSupport().getRootZonesFile());
+            commands.add("curl --user=ftp:ftp ftp://ftp.rs.internic.net/domain/db.cache " +
+                    "-o " + getOsSupport().getRootZonesFile());
         }
         newScript(CUSTOMIZING)
                 .body.append(commands)

http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/39ed6e4c/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..04c7f75 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
@@ -175,12 +175,12 @@ public class RiakNodeSshDriver extends JavaSoftwareProcessSshDriver implements R
                 ok(sudo("apt-get -y --allow-unauthenticated install logrotate libpam0g-dev libssl0.9.8")),
                 "export OS_NAME=" + Strings.toLowerCase(osDetails.getName()),
                 "export OS_RELEASE=" + osReleaseCmd,
-                String.format("wget -O %s %s", saveAsApt, downloadUrl),
+                String.format("curl %s -o %s", downloadUrl, saveAsApt),
                 sudo(String.format("dpkg -i %s", saveAsApt)));
         String yum = chainGroup(
                 "which yum",
                 ok(sudo("yum -y install openssl")),
-                String.format("wget -O %s %s", saveAsYum, entity.getAttribute(RiakNode.DOWNLOAD_URL_RHEL_CENTOS)),
+                String.format("curl %s -o %s", entity.sensors().get(RiakNode.DOWNLOAD_URL_RHEL_CENTOS), saveAsYum),
                 sudo(String.format("yum localinstall -y %s", saveAsYum)));
         return ImmutableList.<String>builder()
                 .add("mkdir -p " + installBin)

http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/39ed6e4c/software/nosql/src/main/resources/org/apache/brooklyn/entity/nosql/couchbase/pillowfight.yaml
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/resources/org/apache/brooklyn/entity/nosql/couchbase/pillowfight.yaml b/software/nosql/src/main/resources/org/apache/brooklyn/entity/nosql/couchbase/pillowfight.yaml
index d91fcc9..e3127f8 100644
--- a/software/nosql/src/main/resources/org/apache/brooklyn/entity/nosql/couchbase/pillowfight.yaml
+++ b/software/nosql/src/main/resources/org/apache/brooklyn/entity/nosql/couchbase/pillowfight.yaml
@@ -20,8 +20,9 @@ services:
 - type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess
   name: CBC Pillowfight
   launch.command: |
-    sudo wget -O/etc/apt/sources.list.d/couchbase.list http://packages.couchbase.com/ubuntu/couchbase-ubuntu1204.list
-    sudo wget -O- http://packages.couchbase.com/ubuntu/couchbase.key | sudo apt-key add -
+    curl http://packages.couchbase.com/ubuntu/couchbase-ubuntu1204.list |
+      sudo tee /etc/apt/sources.list.d/couchbase.list
+    curl http://packages.couchbase.com/ubuntu/couchbase.key | sudo apt-key add -
     sudo apt-get update
     sudo apt-get install -y libcouchbase2-libevent libcouchbase-dev libcouchbase2-bin
   provisioning.properties:
@@ -72,6 +73,7 @@ services:
 
 # For CentOS, use the following launch command:
 #  launch.command: |
-#    sudo wget -O/etc/yum.repos.d/couchbase.repo http://packages.couchbase.com/rpm/couchbase-centos55-x86_64.repo
+#    curl http://packages.couchbase.com/rpm/couchbase-centos55-x86_64.repo |
+#      sudo tee /etc/yum.repos.d/couchbase.repo
 #    sudo yum check-update
 #    sudo yum install -y libcouchbase2-libevent libcouchbase-devel libcouchbase2-bin


[12/13] brooklyn-library git commit: This closes #11

Posted by he...@apache.org.
This closes #11


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

Branch: refs/heads/master
Commit: 632ff60508225ae95ae96d91db115d71bf4127ab
Parents: b3b5551 b04591b
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon Mar 7 09:22:39 2016 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Mon Mar 7 09:22:39 2016 +0000

----------------------------------------------------------------------
 .../entity/nosql/riak/RiakNodeSshDriver.java    | 13 ++++----
 .../cassandra/CassandraDatacenterTest.java      | 14 ++++-----
 .../entity/proxy/AbstractControllerImpl.java    | 33 +++++++++++---------
 .../AbstractNonProvisionedControllerImpl.java   | 10 +++---
 .../entity/proxy/AbstractControllerTest.java    | 31 +++++++++++++-----
 .../proxy/TrackingAbstractControllerImpl.java   |  3 +-
 .../ControlledDynamicWebAppClusterTest.java     | 22 +++++++------
 7 files changed, 75 insertions(+), 51 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/632ff605/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java
----------------------------------------------------------------------


[02/13] brooklyn-library git commit: notes and logging for intermittent failure BROOKLYN-206

Posted by he...@apache.org.
notes and logging for intermittent failure BROOKLYN-206


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

Branch: refs/heads/master
Commit: dddc28e6ee8c55f2d201bc2be005399d743db46a
Parents: 6fe1f88
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Feb 24 14:13:07 2016 -0800
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Feb 24 14:13:07 2016 -0800

----------------------------------------------------------------------
 .../entity/proxy/AbstractControllerImpl.java    | 33 +++++++++++---------
 .../AbstractNonProvisionedControllerImpl.java   | 10 +++---
 .../entity/proxy/AbstractControllerTest.java    | 31 +++++++++++++-----
 .../proxy/TrackingAbstractControllerImpl.java   |  3 +-
 4 files changed, 49 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/dddc28e6/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/AbstractControllerImpl.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/AbstractControllerImpl.java b/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/AbstractControllerImpl.java
index 204ec54..5c4c443 100644
--- a/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/AbstractControllerImpl.java
+++ b/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/AbstractControllerImpl.java
@@ -44,13 +44,13 @@ import org.apache.brooklyn.core.location.access.BrooklynAccessUtils;
 import org.apache.brooklyn.entity.group.AbstractMembershipTrackingPolicy;
 import org.apache.brooklyn.entity.group.Cluster;
 import org.apache.brooklyn.entity.software.base.SoftwareProcessImpl;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.apache.brooklyn.util.collections.MutableMap;
 import org.apache.brooklyn.util.core.task.Tasks;
 import org.apache.brooklyn.util.exceptions.Exceptions;
 import org.apache.brooklyn.util.guava.Maybe;
 import org.apache.brooklyn.util.text.Strings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Objects;
 import com.google.common.base.Predicates;
@@ -142,20 +142,25 @@ public abstract class AbstractControllerImpl extends SoftwareProcessImpl impleme
 
         LOG.info("Added policy {} to {}", serverPoolMemberTrackerPolicy, this);
         
-        // Initialize ourselves immediately with the latest set of members; don't wait for
-        // listener notifications because then will be out-of-date for short period (causing 
-        // problems for rebind)
-        Map<Entity,String> serverPoolTargets = Maps.newLinkedHashMap();
-        for (Entity member : getServerPool().getMembers()) {
-            if (belongsInServerPool(member)) {
-                if (LOG.isTraceEnabled()) LOG.trace("Done {} checkEntity {}", this, member);
-                String address = getAddressOfEntity(member);
-                serverPoolTargets.put(member, address);
+        synchronized (serverPoolAddresses) {
+            // Initialize ourselves immediately with the latest set of members; don't wait for
+            // listener notifications because then will be out-of-date for short period (causing 
+            // problems for rebind)
+            // if invoked on start, we'll have isActive=false at this point so other policies wont' run anyway,
+            // but synch in case invoked at other times; and note if !isActive during start means we miss some after this,
+            // we will update again on postStart after setting isActive=true
+            Map<Entity,String> serverPoolTargets = Maps.newLinkedHashMap();
+            for (Entity member : getServerPool().getMembers()) {
+                if (belongsInServerPool(member)) {
+                    if (LOG.isTraceEnabled()) LOG.trace("Done {} checkEntity {}", this, member);
+                    String address = getAddressOfEntity(member);
+                    serverPoolTargets.put(member, address);
+                }
             }
-        }
 
-        LOG.info("Resetting {}, server pool targets {}", new Object[] {this, serverPoolTargets});
-        sensors().set(SERVER_POOL_TARGETS, serverPoolTargets);
+            LOG.info("Resetting {}, server pool targets {}", new Object[] {this, serverPoolTargets});
+            sensors().set(SERVER_POOL_TARGETS, serverPoolTargets);
+        }
     }
     
     protected void removeServerPoolMemberTrackingPolicy() {

http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/dddc28e6/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/AbstractNonProvisionedControllerImpl.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/AbstractNonProvisionedControllerImpl.java b/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/AbstractNonProvisionedControllerImpl.java
index 7ad111a..137be36 100644
--- a/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/AbstractNonProvisionedControllerImpl.java
+++ b/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/AbstractNonProvisionedControllerImpl.java
@@ -57,19 +57,19 @@ public abstract class AbstractNonProvisionedControllerImpl extends AbstractEntit
     public AbstractNonProvisionedControllerImpl() {
         this(MutableMap.of(), null, null);
     }
-    public AbstractNonProvisionedControllerImpl(Map properties) {
+    public AbstractNonProvisionedControllerImpl(Map<?,?> properties) {
         this(properties, null, null);
     }
     public AbstractNonProvisionedControllerImpl(Entity parent) {
         this(MutableMap.of(), parent, null);
     }
-    public AbstractNonProvisionedControllerImpl(Map properties, Entity parent) {
+    public AbstractNonProvisionedControllerImpl(Map<?,?> properties, Entity parent) {
         this(properties, parent, null);
     }
     public AbstractNonProvisionedControllerImpl(Entity parent, Cluster cluster) {
         this(MutableMap.of(), parent, cluster);
     }
-    public AbstractNonProvisionedControllerImpl(Map properties, Entity parent, Cluster cluster) {
+    public AbstractNonProvisionedControllerImpl(Map<?,?> properties, Entity parent, Cluster cluster) {
     }
 
     public static class MemberTrackingPolicy extends AbstractMembershipTrackingPolicy {
@@ -106,8 +106,8 @@ public abstract class AbstractNonProvisionedControllerImpl extends AbstractEntit
     
     protected void preStart() {
         AttributeSensor<?> hostAndPortSensor = getConfig(HOST_AND_PORT_SENSOR);
-        Maybe<Object> hostnameSensor = getConfigRaw(HOSTNAME_SENSOR, true);
-        Maybe<Object> portSensor = getConfigRaw(PORT_NUMBER_SENSOR, true);
+        Maybe<Object> hostnameSensor = config().getRaw(HOSTNAME_SENSOR);
+        Maybe<Object> portSensor = config().getRaw(PORT_NUMBER_SENSOR);
         if (hostAndPortSensor != null) {
             checkState(!hostnameSensor.isPresent() && !portSensor.isPresent(), 
                     "Must not set %s and either of %s or %s", HOST_AND_PORT_SENSOR, HOSTNAME_SENSOR, PORT_NUMBER_SENSOR);

http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/dddc28e6/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/AbstractControllerTest.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/AbstractControllerTest.java b/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/AbstractControllerTest.java
index 7e98d41..6daae33 100644
--- a/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/AbstractControllerTest.java
+++ b/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/AbstractControllerTest.java
@@ -39,7 +39,6 @@ import org.apache.brooklyn.api.location.MachineProvisioningLocation;
 import org.apache.brooklyn.api.location.NoMachinesAvailableException;
 import org.apache.brooklyn.api.sensor.AttributeSensor;
 import org.apache.brooklyn.core.entity.Attributes;
-import org.apache.brooklyn.core.entity.Entities;
 import org.apache.brooklyn.core.entity.factory.EntityFactory;
 import org.apache.brooklyn.core.entity.trait.Startable;
 import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport;
@@ -47,6 +46,8 @@ import org.apache.brooklyn.core.test.entity.TestEntity;
 import org.apache.brooklyn.core.test.entity.TestEntityImpl;
 import org.apache.brooklyn.entity.group.Cluster;
 import org.apache.brooklyn.entity.group.DynamicCluster;
+import org.apache.brooklyn.location.byon.FixedListMachineProvisioningLocation;
+import org.apache.brooklyn.location.ssh.SshMachineLocation;
 import org.apache.brooklyn.test.Asserts;
 import org.apache.brooklyn.util.collections.MutableMap;
 import org.apache.brooklyn.util.collections.MutableSet;
@@ -56,8 +57,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
-import org.apache.brooklyn.location.byon.FixedListMachineProvisioningLocation;
-import org.apache.brooklyn.location.ssh.SshMachineLocation;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
@@ -103,29 +102,47 @@ public class AbstractControllerTest extends BrooklynAppUnitTestSupport {
     // values change.
     @Test
     public void testUpdateCalledWhenChildHostnameAndPortChanges() throws Exception {
+        log.info("adding child (no effect until up)");
         TestEntity child = cluster.addChild(EntitySpec.create(TestEntity.class));
         cluster.addMember(child);
 
         List<Collection<String>> u = Lists.newArrayList(controller.getUpdates());
         assertTrue(u.isEmpty(), "expected no updates, but got "+u);
         
+        log.info("setting child service_up");
         child.sensors().set(Startable.SERVICE_UP, true);
+        // above may trigger error logged about no hostname, but should update again with the settings below
         
-        // TODO Ugly sleep to allow AbstractController to detect node having been added
-        Thread.sleep(100);
-        
+        log.info("setting mymachine:1234");
         child.sensors().set(ClusteredEntity.HOSTNAME, "mymachine");
         child.sensors().set(Attributes.SUBNET_HOSTNAME, "mymachine");
         child.sensors().set(ClusteredEntity.HTTP_PORT, 1234);
         assertEventuallyExplicitAddressesMatch(ImmutableList.of("mymachine:1234"));
         
+        /* a race failure has been observed, https://issues.apache.org/jira/browse/BROOKLYN-206
+         * but now (two months later) i (alex) can't see how it could happen. 
+         * probably optimistic but maybe it is fixed. if not we'll need the debug logs to see what is happening.
+         * i've confirmed:
+         * * the policy is attached and active during setup, before start completes
+         * * the child is added as a member synchronously
+         * * the policy which is "subscribed to members" is in fact subscribed to everything
+         *   then filtered for members, not ideal, but there shouldn't be a race in the policy getting notices
+         * * the handling of those events are both processed in order and look up the current values
+         *   rather than relying on the published values; either should be sufficient to cause the addresses to change
+         * there was a sleep(100) marked "Ugly sleep to allow AbstractController to detect node having been added"
+         * from the test's addition by aled in early 2014, but can't see why that would be necessary
+         */
+        
+        log.info("setting mymachine2:1234");
         child.sensors().set(ClusteredEntity.HOSTNAME, "mymachine2");
         child.sensors().set(Attributes.SUBNET_HOSTNAME, "mymachine2");
         assertEventuallyExplicitAddressesMatch(ImmutableList.of("mymachine2:1234"));
         
+        log.info("setting mymachine2:1235");
         child.sensors().set(ClusteredEntity.HTTP_PORT, 1235);
         assertEventuallyExplicitAddressesMatch(ImmutableList.of("mymachine2:1235"));
         
+        log.info("clearing");
         child.sensors().set(ClusteredEntity.HOSTNAME, null);
         child.sensors().set(Attributes.SUBNET_HOSTNAME, null);
         assertEventuallyExplicitAddressesMatch(ImmutableList.<String>of());
@@ -305,7 +322,7 @@ public class AbstractControllerTest extends BrooklynAppUnitTestSupport {
         List<Collection<String>> u = Lists.newArrayList(controller.getUpdates());
         Collection<String> last = Iterables.getLast(u, null);
         log.debug("test "+u.size()+" updates, expecting "+expectedAddresses+"; actual "+last);
-        assertTrue(u.size() > 0);
+        assertTrue(!u.isEmpty(), "no updates; expecting "+expectedAddresses);
         assertEquals(ImmutableSet.copyOf(last), ImmutableSet.copyOf(expectedAddresses), "actual="+last+" expected="+expectedAddresses);
         assertEquals(last.size(), expectedAddresses.size(), "actual="+last+" expected="+expectedAddresses);
     }

http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/dddc28e6/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/TrackingAbstractControllerImpl.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/TrackingAbstractControllerImpl.java b/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/TrackingAbstractControllerImpl.java
index f0b165d..9dfd66d 100644
--- a/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/TrackingAbstractControllerImpl.java
+++ b/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/TrackingAbstractControllerImpl.java
@@ -22,7 +22,6 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.brooklyn.entity.proxy.AbstractControllerImpl;
 import org.apache.brooklyn.entity.software.base.test.driver.MockSshDriver;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -56,7 +55,7 @@ public class TrackingAbstractControllerImpl extends AbstractControllerImpl imple
     }
 
     @Override
-    public Class getDriverInterface() {
+    public Class<?> getDriverInterface() {
         return MockSshDriver.class;
     }
     


[11/13] brooklyn-library git commit: This closes #12

Posted by he...@apache.org.
This closes #12


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

Branch: refs/heads/master
Commit: b3b5551e6cc3afc29274a7c37051cff4011cd089
Parents: 7475784 57d89cb
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon Mar 7 09:20:45 2016 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Mon Mar 7 09:20:45 2016 +0000

----------------------------------------------------------------------
 .../brooklyn/entity/nosql/couchdb/CouchDBNodeImpl.java       | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------



[09/13] brooklyn-library git commit: This closes #15

Posted by he...@apache.org.
This closes #15


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

Branch: refs/heads/master
Commit: b11bed4e8b293e839c2920e296b23c1dc0e8624c
Parents: c0ea6d5 9077100
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon Mar 7 09:19:35 2016 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Mon Mar 7 09:19:35 2016 +0000

----------------------------------------------------------------------
 .../java/org/apache/brooklyn/entity/nosql/solr/SolrServer.java  | 5 +++++
 .../org/apache/brooklyn/entity/nosql/solr/SolrServerImpl.java   | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------



[06/13] brooklyn-library git commit: Define MAIN_URI inside SolrServer

Posted by he...@apache.org.
Define MAIN_URI inside SolrServer


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

Branch: refs/heads/master
Commit: 90771002bca95a1cef1fb05ca9951abefbae2900
Parents: cbb58b9
Author: Valentin Aitken <bo...@gmail.com>
Authored: Fri Mar 4 17:46:28 2016 +0200
Committer: Valentin Aitken <bo...@gmail.com>
Committed: Fri Mar 4 17:46:28 2016 +0200

----------------------------------------------------------------------
 .../java/org/apache/brooklyn/entity/nosql/solr/SolrServer.java  | 5 +++++
 .../org/apache/brooklyn/entity/nosql/solr/SolrServerImpl.java   | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/90771002/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..884f082 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
@@ -18,12 +18,15 @@
  */
 package org.apache.brooklyn.entity.nosql.solr;
 
+import java.net.URI;
 import java.util.Map;
 
 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.ConfigKeys;
+import org.apache.brooklyn.core.entity.Attributes;
 import org.apache.brooklyn.core.entity.BrooklynConfigKeys;
 import org.apache.brooklyn.core.location.PortRanges;
 import org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey;
@@ -74,6 +77,8 @@ public interface SolrServer extends SoftwareProcess, UsesJava, UsesJmx, UsesJava
 
     ConfigKey<Duration> START_TIMEOUT = ConfigKeys.newConfigKeyWithDefault(BrooklynConfigKeys.START_TIMEOUT, Duration.FIVE_MINUTES);
 
+    AttributeSensor<URI> MAIN_URI = Attributes.MAIN_URI;
+
     /* Accessors used from template */
 
     Integer getSolrPort();

http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/90771002/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/solr/SolrServerImpl.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/solr/SolrServerImpl.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/solr/SolrServerImpl.java
index 98fa91e..be0c7e8 100644
--- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/solr/SolrServerImpl.java
+++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/solr/SolrServerImpl.java
@@ -55,7 +55,7 @@ public class SolrServerImpl extends SoftwareProcessImpl implements SolrServer {
         HostAndPort hp = BrooklynAccessUtils.getBrooklynAccessibleAddress(this, getSolrPort());
 
         String solrUri = String.format("http://%s:%d/solr", hp.getHostText(), hp.getPort());
-        sensors().set(Attributes.MAIN_URI, URI.create(solrUri));
+        sensors().set(MAIN_URI, URI.create(solrUri));
 
         httpFeed = HttpFeed.builder()
                 .entity(this)


[03/13] brooklyn-library git commit: fix failing test by not destroying app on stop

Posted by he...@apache.org.
fix failing test by not destroying app on stop

also update deprecated test utils usage


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

Branch: refs/heads/master
Commit: b04591b0c4efd07ed939c0a5d318c6e81e96c92f
Parents: dddc28e
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Feb 24 21:41:45 2016 -0800
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Feb 24 21:41:45 2016 -0800

----------------------------------------------------------------------
 .../cassandra/CassandraDatacenterTest.java      | 14 ++++++-------
 .../ControlledDynamicWebAppClusterTest.java     | 22 +++++++++++---------
 2 files changed, 19 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/b04591b0/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterTest.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterTest.java b/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterTest.java
index 2c978b2..7e32569 100644
--- a/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterTest.java
+++ b/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterTest.java
@@ -28,11 +28,11 @@ import org.apache.brooklyn.api.entity.Entity;
 import org.apache.brooklyn.api.entity.EntitySpec;
 import org.apache.brooklyn.api.location.LocationSpec;
 import org.apache.brooklyn.core.entity.Attributes;
+import org.apache.brooklyn.core.entity.EntityAsserts;
 import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport;
 import org.apache.brooklyn.entity.software.base.EmptySoftwareProcess;
 import org.apache.brooklyn.entity.software.base.EmptySoftwareProcessSshDriver;
 import org.apache.brooklyn.location.localhost.LocalhostMachineProvisioningLocation;
-import org.apache.brooklyn.test.EntityTestUtils;
 import org.apache.brooklyn.util.core.ResourceUtils;
 import org.apache.brooklyn.util.core.text.TemplateProcessor;
 import org.apache.brooklyn.util.javalang.JavaClassNames;
@@ -75,7 +75,7 @@ public class CassandraDatacenterTest extends BrooklynAppUnitTestSupport {
         EmptySoftwareProcess e1 = (EmptySoftwareProcess) Iterables.get(cluster.getMembers(), 0);
         EmptySoftwareProcess e2 = (EmptySoftwareProcess) Iterables.get(cluster.getMembers(), 1);
         
-        EntityTestUtils.assertAttributeEqualsEventually(cluster, CassandraDatacenter.CURRENT_SEEDS, ImmutableSet.<Entity>of(e1, e2));
+        EntityAsserts.assertAttributeEqualsEventually(cluster, CassandraDatacenter.CURRENT_SEEDS, ImmutableSet.<Entity>of(e1, e2));
     }
     
     @Test(groups="Integration") // because takes approx 2 seconds
@@ -93,7 +93,7 @@ public class CassandraDatacenterTest extends BrooklynAppUnitTestSupport {
         app.start(ImmutableList.of(loc));
         EmptySoftwareProcess e1 = (EmptySoftwareProcess) Iterables.get(cluster.getMembers(), 0);
         EmptySoftwareProcess e2 = (EmptySoftwareProcess) Iterables.get(cluster.getMembers(), 1);
-        EntityTestUtils.assertAttributeEqualsEventually(cluster, CassandraDatacenter.CURRENT_SEEDS, ImmutableSet.<Entity>of(e1, e2));
+        EntityAsserts.assertAttributeEqualsEventually(cluster, CassandraDatacenter.CURRENT_SEEDS, ImmutableSet.<Entity>of(e1, e2));
         log.debug("Test "+JavaClassNames.niceClassAndMethod()+", cluster "+cluster+" has "+cluster.getMembers()+"; e1="+e1+" e2="+e2);
         
         // calling the driver stop for this entity will cause SERVICE_UP to become false, and stay false
@@ -104,13 +104,13 @@ public class CassandraDatacenterTest extends BrooklynAppUnitTestSupport {
         if (fast)
             e1.sensors().set(Attributes.SERVICE_UP, false);
         
-        EntityTestUtils.assertAttributeEqualsEventually(cluster, CassandraDatacenter.CURRENT_SEEDS, ImmutableSet.<Entity>of(e2));
+        EntityAsserts.assertAttributeEqualsEventually(cluster, CassandraDatacenter.CURRENT_SEEDS, ImmutableSet.<Entity>of(e2));
 
         cluster.resize(3);
         EmptySoftwareProcess e3 = (EmptySoftwareProcess) Iterables.getOnlyElement(Sets.difference(ImmutableSet.copyOf(cluster.getMembers()), ImmutableSet.of(e1,e2)));
         log.debug("Test "+JavaClassNames.niceClassAndMethod()+", cluster "+cluster+" has "+cluster.getMembers()+"; e3="+e3);
         try {
-            EntityTestUtils.assertAttributeEqualsEventually(cluster, CassandraDatacenter.CURRENT_SEEDS, ImmutableSet.<Entity>of(e2, e3));
+            EntityAsserts.assertAttributeEqualsEventually(cluster, CassandraDatacenter.CURRENT_SEEDS, ImmutableSet.<Entity>of(e2, e3));
         } finally {
             log.debug("Test "+JavaClassNames.niceClassAndMethod()+", cluster "+cluster+" has "+cluster.getMembers()+"; seeds "+cluster.getAttribute(CassandraDatacenter.CURRENT_SEEDS));
         }
@@ -121,8 +121,8 @@ public class CassandraDatacenterTest extends BrooklynAppUnitTestSupport {
             ((EmptySoftwareProcessSshDriver)(((EmptySoftwareProcess)e1).getDriver())).launch();
             if (fast)
                 e1.sensors().set(Attributes.SERVICE_UP, true);
-            EntityTestUtils.assertAttributeEqualsEventually(e1, CassandraNode.SERVICE_UP, true);
-            EntityTestUtils.assertAttributeEqualsContinually(cluster, CassandraDatacenter.CURRENT_SEEDS, ImmutableSet.<Entity>of(e2, e3));
+            EntityAsserts.assertAttributeEqualsEventually(e1, CassandraNode.SERVICE_UP, true);
+            EntityAsserts.assertAttributeEqualsContinually(cluster, CassandraDatacenter.CURRENT_SEEDS, ImmutableSet.<Entity>of(e2, e3));
         }
     }
     

http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/b04591b0/software/webapp/src/test/java/org/apache/brooklyn/entity/webapp/ControlledDynamicWebAppClusterTest.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/test/java/org/apache/brooklyn/entity/webapp/ControlledDynamicWebAppClusterTest.java b/software/webapp/src/test/java/org/apache/brooklyn/entity/webapp/ControlledDynamicWebAppClusterTest.java
index b12e6f9..daa53fd 100644
--- a/software/webapp/src/test/java/org/apache/brooklyn/entity/webapp/ControlledDynamicWebAppClusterTest.java
+++ b/software/webapp/src/test/java/org/apache/brooklyn/entity/webapp/ControlledDynamicWebAppClusterTest.java
@@ -26,6 +26,8 @@ import org.apache.brooklyn.api.entity.EntitySpec;
 import org.apache.brooklyn.api.entity.Group;
 import org.apache.brooklyn.core.entity.Attributes;
 import org.apache.brooklyn.core.entity.Entities;
+import org.apache.brooklyn.core.entity.EntityAsserts;
+import org.apache.brooklyn.core.entity.StartableApplication;
 import org.apache.brooklyn.core.entity.lifecycle.Lifecycle;
 import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport;
 import org.apache.brooklyn.entity.group.BasicGroup;
@@ -34,15 +36,14 @@ import org.apache.brooklyn.entity.proxy.LoadBalancer;
 import org.apache.brooklyn.entity.proxy.TrackingAbstractController;
 import org.apache.brooklyn.entity.software.base.SoftwareProcess;
 import org.apache.brooklyn.entity.webapp.jboss.JBoss7Server;
+import org.apache.brooklyn.location.localhost.LocalhostMachineProvisioningLocation;
 import org.apache.brooklyn.test.Asserts;
-import org.apache.brooklyn.test.EntityTestUtils;
 import org.apache.brooklyn.test.entity.TestJavaWebAppEntity;
 import org.apache.brooklyn.test.support.TestResourceUnavailableException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
-import org.apache.brooklyn.location.localhost.LocalhostMachineProvisioningLocation;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
@@ -77,12 +78,12 @@ public class ControlledDynamicWebAppClusterTest extends BrooklynAppUnitTestSuppo
                 .configure("memberSpec", EntitySpec.create(JBoss7Server.class).configure("war", getTestWar())));
         app.start(locs);
 
-        EntityTestUtils.assertAttributeEqualsEventually(controller, AbstractController.SERVICE_UP, true);
+        EntityAsserts.assertAttributeEqualsEventually(controller, AbstractController.SERVICE_UP, true);
         assertEquals(cluster.getController(), controller);
 
         // Stopping cluster should not stop controller (because it didn't create it)
         cluster.stop();
-        EntityTestUtils.assertAttributeEquals(controller, AbstractController.SERVICE_UP, true);
+        EntityAsserts.assertAttributeEquals(controller, AbstractController.SERVICE_UP, true);
     }
     
     @Test
@@ -115,12 +116,12 @@ public class ControlledDynamicWebAppClusterTest extends BrooklynAppUnitTestSuppo
         app.start(locs);
         LoadBalancer controller = cluster.getController();
         
-        EntityTestUtils.assertAttributeEqualsEventually(controller, AbstractController.SERVICE_UP, true);
+        EntityAsserts.assertAttributeEqualsEventually(controller, AbstractController.SERVICE_UP, true);
         assertEquals(controller.getDisplayName(), "mycustom");
 
         // Stopping cluster should stop the controller (because it created it)
         cluster.stop();
-        EntityTestUtils.assertAttributeEquals(controller, AbstractController.SERVICE_UP, false);
+        EntityAsserts.assertAttributeEquals(controller, AbstractController.SERVICE_UP, false);
     }
     
     @Test
@@ -128,10 +129,11 @@ public class ControlledDynamicWebAppClusterTest extends BrooklynAppUnitTestSuppo
         SoftwareProcess n = app.createAndManageChild(EntitySpec.create(TestJavaWebAppEntity.class));
         app.start(locs);
 
-        EntityTestUtils.assertAttributeEqualsEventually(n, AbstractController.SERVICE_UP, true);
-        
+        EntityAsserts.assertAttributeEqualsEventually(n, AbstractController.SERVICE_UP, true);
+
+        app.config().set(StartableApplication.DESTROY_ON_STOP, false);
         app.stop();
-        EntityTestUtils.assertAttributeEqualsEventually(n, AbstractController.SERVICE_UP, false);
+        EntityAsserts.assertAttributeEqualsEventually(n, AbstractController.SERVICE_UP, false);
     }
     
     @Test
@@ -205,6 +207,6 @@ public class ControlledDynamicWebAppClusterTest extends BrooklynAppUnitTestSuppo
         Entities.unmanage(controller);
         
         cluster.stop();
-        EntityTestUtils.assertAttributeEquals(cluster, ControlledDynamicWebAppCluster.SERVICE_STATE_ACTUAL, Lifecycle.STOPPED);
+        EntityAsserts.assertAttributeEquals(cluster, ControlledDynamicWebAppCluster.SERVICE_STATE_ACTUAL, Lifecycle.STOPPED);
     }
 }


[10/13] brooklyn-library git commit: This closes #13

Posted by he...@apache.org.
This closes #13


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

Branch: refs/heads/master
Commit: 74757844e5f12ddf6509fe47bb6c93765ff0c51d
Parents: b11bed4 b5ae342
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon Mar 7 09:20:22 2016 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Mon Mar 7 09:20:22 2016 +0000

----------------------------------------------------------------------
 .../entity/database/mssql/installmssql.ps1      | 31 +++++++++++++-------
 1 file changed, 20 insertions(+), 11 deletions(-)
----------------------------------------------------------------------



[05/13] brooklyn-library git commit: MS SQL improvements

Posted by he...@apache.org.
MS SQL improvements

- catch possible failures on each step from the install


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

Branch: refs/heads/master
Commit: b5ae3421b861130b89fe3c2d5bf82a2f493dac41
Parents: cbb58b9
Author: Valentin Aitken <bo...@gmail.com>
Authored: Wed Mar 2 16:30:08 2016 +0200
Committer: Valentin Aitken <bo...@gmail.com>
Committed: Wed Mar 2 17:36:48 2016 +0200

----------------------------------------------------------------------
 .../entity/database/mssql/installmssql.ps1      | 31 +++++++++++++-------
 1 file changed, 20 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/b5ae3421/software/database/src/main/resources/org/apache/brooklyn/entity/database/mssql/installmssql.ps1
----------------------------------------------------------------------
diff --git a/software/database/src/main/resources/org/apache/brooklyn/entity/database/mssql/installmssql.ps1 b/software/database/src/main/resources/org/apache/brooklyn/entity/database/mssql/installmssql.ps1
index a2ecda0..41bb75c 100644
--- a/software/database/src/main/resources/org/apache/brooklyn/entity/database/mssql/installmssql.ps1
+++ b/software/database/src/main/resources/org/apache/brooklyn/entity/database/mssql/installmssql.ps1
@@ -24,7 +24,21 @@ $Path = "C:\sql2008.iso"
 $Username = "${config['mssql.download.user']}"
 $Password = '${config['mssql.download.password']}'
 
+& winrm set winrm/config/service/auth '@{CredSSP="true"}'
+If ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
+
+& winrm set winrm/config/client/auth '@{CredSSP="true"}'
+If ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
+
+New-Item -ItemType Directory -Force -Path "C:\Program Files (x86)\Microsoft SQL Server\DReplayClient\ResultDir"
+New-Item -ItemType Directory -Force -Path "C:\Program Files (x86)\Microsoft SQL Server\DReplayClient\WorkingDir"
+
+$operationResult = Install-WindowsFeature NET-Framework-Core
+if (-Not $operationResult.Success) { exit 1 }
+
+$pass = '${attribute['windows.password']}'
 
+Try {
 $WebClient = New-Object System.Net.WebClient
 $WebClient.Credentials = New-Object System.Net.Networkcredential($Username, $Password)
 $WebClient.DownloadFile( $url, $path )
@@ -32,15 +46,6 @@ $WebClient.DownloadFile( $url, $path )
 $mountResult = Mount-DiskImage $Path -PassThru
 $driveLetter = (($mountResult | Get-Volume).DriveLetter) + ":\"
 
-New-Item -ItemType Directory -Force -Path "C:\Program Files (x86)\Microsoft SQL Server\DReplayClient\ResultDir"
-New-Item -ItemType Directory -Force -Path "C:\Program Files (x86)\Microsoft SQL Server\DReplayClient\WorkingDir"
-
-Install-WindowsFeature NET-Framework-Core
-
-& winrm set winrm/config/service/auth '@{CredSSP="true"}'
-& winrm set winrm/config/client/auth '@{CredSSP="true"}'
-
-$pass = '${attribute['windows.password']}'
 $secpasswd = ConvertTo-SecureString $pass -AsPlainText -Force
 $mycreds = New-Object System.Management.Automation.PSCredential ($($env:COMPUTERNAME + "\${location.user}"), $secpasswd)
 
@@ -49,5 +54,9 @@ $exitCode = Invoke-Command -ComputerName $env:COMPUTERNAME -Credential $mycreds
     $process = Start-Process ( $driveLetter + "setup.exe") -ArgumentList "/ConfigurationFile=C:\ConfigurationFile.ini" -RedirectStandardOutput "C:\sqlout.txt" -RedirectStandardError "C:\sqlerr.txt" -Wait -PassThru -NoNewWindow
     $process.ExitCode
 } -Authentication CredSSP -ArgumentList $driveLetter
-
-exit $exitCode
+} Catch {
+ Write-Error $_.Exception
+ Write-Host 'Exception logged'
+ exit 1
+}
+exit $exitCode
\ No newline at end of file


[08/13] brooklyn-library git commit: This closes #16

Posted by he...@apache.org.
This closes #16


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

Branch: refs/heads/master
Commit: c0ea6d5d46e33f7be2c43dd5f921fa8f46b61e7e
Parents: 6efb209 39ed6e4
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon Mar 7 09:18:57 2016 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Mon Mar 7 09:18:57 2016 +0000

----------------------------------------------------------------------
 .../database/postgresql/PostgreSqlSshDriver.java  | 14 +++++++-------
 .../entity/messaging/rabbit/RabbitSshDriver.java  | 18 +++++++++++++-----
 .../network/bind/BindDnsServerSshDriver.java      |  4 ++--
 .../entity/nosql/riak/RiakNodeSshDriver.java      |  4 ++--
 .../entity/nosql/couchbase/pillowfight.yaml       |  8 +++++---
 5 files changed, 29 insertions(+), 19 deletions(-)
----------------------------------------------------------------------