You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2014/11/05 15:34:52 UTC

[1/4] git commit: SoftwareProcess: don’t getShellEnv() if supplied

Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master fcac7738c -> c323b00d3


SoftwareProcess: don’t getShellEnv() if supplied

- Calling getShellEnvironment() during jboss.install() was causing it
  to lookup the config, including sysprops. However, that required
  MySql to have a URL before it could resolve.
  On localhost (e.g. integration tests), the jboss.install() held a
  lock (SshMachineLocation.acquireMutex) which meant only one thing
  could be installed at a time - hence prevented MySql from being 
  installed. Therefore deadlock.
- Fixed by guarding the call to getShellEnvironment(), to only be
  done if env was not explicitly supplied.

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

Branch: refs/heads/master
Commit: b8ec67f7a5e7547f7d2d59f85b3f6699b0352e6e
Parents: fcac773
Author: Aled Sage <al...@gmail.com>
Authored: Wed Nov 5 13:18:53 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Wed Nov 5 13:18:53 2014 +0000

----------------------------------------------------------------------
 .../basic/AbstractSoftwareProcessSshDriver.java       | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b8ec67f7/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessSshDriver.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessSshDriver.java b/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessSshDriver.java
index 0e54a20..1f21fb7 100644
--- a/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessSshDriver.java
+++ b/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessSshDriver.java
@@ -57,7 +57,6 @@ import brooklyn.util.text.StringPredicates;
 import brooklyn.util.text.Strings;
 import brooklyn.util.time.Duration;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Predicates;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
@@ -283,7 +282,12 @@ public abstract class AbstractSoftwareProcessSshDriver extends AbstractSoftwareP
             flags.putAll(getSshFlags());
         }
         flags.putAll(flags2);
-        Map<String, String> environment = Optional.fromNullable((Map<String,String>) flags.get("env")).or(getShellEnvironment());
+        Map<String, String> environment = (Map<String, String>) flags.get("env");
+        if (environment == null) {
+            // Important only to call getShellEnvironment() if env was not supplied; otherwise it
+            // could cause us to resolve config (e.g. block for attributeWhenReady) too early.
+            environment = getShellEnvironment();
+        }
         if (Tasks.current()!=null) {
             // attach tags here, as well as in ScriptHelper, because they may have just been read from the driver
             if (environment!=null) {
@@ -368,7 +372,11 @@ public abstract class AbstractSoftwareProcessSshDriver extends AbstractSoftwareP
     @Override
     public void copyRuntimeResources() {
         try {
-            execute("mkdir -p " + getRunDir(), "create run directory");
+            // Ensure environment variables are not looked up here, otherwise sub-classes might
+            // lookup port numbers and fail with ugly error if port is not set. It could also
+            // cause us to block for attribute ready earlier than we need.
+            DynamicTasks.queue(SshEffectorTasks.ssh("mkdir -p " + getRunDir()).summary("create run directory")
+                .requiringExitCodeZero()).get();
 
             Map<String, String> runtimeFiles = entity.getConfig(SoftwareProcess.RUNTIME_FILES);
             if (runtimeFiles != null && runtimeFiles.size() > 0) {


[4/4] git commit: This closes #301

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


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

Branch: refs/heads/master
Commit: c323b00d374a176e3f8baa919c89847c06b4ba60
Parents: fcac773 3440679
Author: Aled Sage <al...@gmail.com>
Authored: Wed Nov 5 14:34:41 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Wed Nov 5 14:34:41 2014 +0000

----------------------------------------------------------------------
 .../basic/AbstractSoftwareProcessSshDriver.java       | 14 +++++++++++---
 .../brooklynnode/BrooklynNodeIntegrationTest.java     |  9 ++++++++-
 .../entity/webapp/tomcat/Tomcat7SshDriver.java        |  3 ++-
 3 files changed, 21 insertions(+), 5 deletions(-)
----------------------------------------------------------------------



[3/4] git commit: fix BrooklynNodeIntegrationTest.testStopPlainThrowsException

Posted by al...@apache.org.
fix BrooklynNodeIntegrationTest.testStopPlainThrowsException

- Test was leaving brooklyn process running

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

Branch: refs/heads/master
Commit: 344067970e305843b1703bc34c38f18659de038f
Parents: 66cbad2
Author: Aled Sage <al...@gmail.com>
Authored: Wed Nov 5 13:35:08 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Wed Nov 5 13:35:08 2014 +0000

----------------------------------------------------------------------
 .../entity/brooklynnode/BrooklynNodeIntegrationTest.java    | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/34406797/software/base/src/test/java/brooklyn/entity/brooklynnode/BrooklynNodeIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/brooklyn/entity/brooklynnode/BrooklynNodeIntegrationTest.java b/software/base/src/test/java/brooklyn/entity/brooklynnode/BrooklynNodeIntegrationTest.java
index 27eb278..065996d 100644
--- a/software/base/src/test/java/brooklyn/entity/brooklynnode/BrooklynNodeIntegrationTest.java
+++ b/software/base/src/test/java/brooklyn/entity/brooklynnode/BrooklynNodeIntegrationTest.java
@@ -48,6 +48,7 @@ import brooklyn.entity.basic.BasicApplicationImpl;
 import brooklyn.entity.basic.Entities;
 import brooklyn.entity.brooklynnode.BrooklynNode.DeployBlueprintEffector;
 import brooklyn.entity.brooklynnode.BrooklynNode.ExistingFileBehaviour;
+import brooklyn.entity.brooklynnode.BrooklynNode.StopNodeAndKillAppsEffector;
 import brooklyn.entity.proxying.EntityProxyImpl;
 import brooklyn.entity.proxying.EntitySpec;
 import brooklyn.event.feed.http.JsonFunctions;
@@ -63,7 +64,6 @@ import brooklyn.test.entity.TestApplication;
 import brooklyn.util.collections.MutableMap;
 import brooklyn.util.config.ConfigBag;
 import brooklyn.util.exceptions.Exceptions;
-import brooklyn.util.exceptions.PropagatedRuntimeException;
 import brooklyn.util.guava.Functionals;
 import brooklyn.util.http.HttpTool;
 import brooklyn.util.http.HttpToolResponse;
@@ -72,6 +72,7 @@ import brooklyn.util.net.Networking;
 import brooklyn.util.net.Urls;
 import brooklyn.util.os.Os;
 import brooklyn.util.text.Strings;
+import brooklyn.util.time.Duration;
 
 import com.google.common.base.Charsets;
 import com.google.common.base.Function;
@@ -452,6 +453,12 @@ services:
             } else {
                 throw e;
             }
+        } finally {
+            try {
+                brooklynNode.invoke(BrooklynNode.STOP_NODE_AND_KILL_APPS, ImmutableMap.of(StopNodeAndKillAppsEffector.TIMEOUT.getName(), Duration.THIRTY_SECONDS)).getUnchecked();
+            } catch (Exception e) {
+                log.warn("Error in stopNodeAndKillApps for "+brooklynNode+" (continuing)", e);
+            }
         }
     }
 


[2/4] git commit: Tomcat install: don’t resolve config (via env variables)

Posted by al...@apache.org.
Tomcat install: don’t resolve config (via env variables)

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

Branch: refs/heads/master
Commit: 66cbad2b18f793edf19c34afa41d2028d86785ca
Parents: b8ec67f
Author: Aled Sage <al...@gmail.com>
Authored: Wed Nov 5 13:20:21 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Wed Nov 5 13:20:21 2014 +0000

----------------------------------------------------------------------
 .../main/java/brooklyn/entity/webapp/tomcat/Tomcat7SshDriver.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/66cbad2b/software/webapp/src/main/java/brooklyn/entity/webapp/tomcat/Tomcat7SshDriver.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/main/java/brooklyn/entity/webapp/tomcat/Tomcat7SshDriver.java b/software/webapp/src/main/java/brooklyn/entity/webapp/tomcat/Tomcat7SshDriver.java
index 787ef6e..05d8fc2 100644
--- a/software/webapp/src/main/java/brooklyn/entity/webapp/tomcat/Tomcat7SshDriver.java
+++ b/software/webapp/src/main/java/brooklyn/entity/webapp/tomcat/Tomcat7SshDriver.java
@@ -70,6 +70,7 @@ public class Tomcat7SshDriver extends JavaWebAppSshDriver implements Tomcat7Driv
         commands.add(format("tar xvzf %s", saveAs));
 
         newScript(INSTALLING)
+                .environmentVariablesReset()
                 .body.append(commands)
                 .execute();
     }
@@ -91,7 +92,7 @@ public class Tomcat7SshDriver extends JavaWebAppSshDriver implements Tomcat7Driv
 
     @Override
     public void launch() {
-        Map ports = MutableMap.of("httpPort", getHttpPort(), "shutdownPort", getShutdownPort());
+        Map<String, Integer> ports = MutableMap.of("httpPort", getHttpPort(), "shutdownPort", getShutdownPort());
         Networking.checkPortsValid(ports);
 
         // We wait for evidence of tomcat running because, using