Fix integration tests - brooklyn-software-base

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

Branch: refs/heads/master
Commit: 9ad0d8c8e7dfba53acdd3a3895d0ba8fd5661d7d
Parents: fae666c
Author: Svetoslav Neykov <[email protected]>
Authored: Fri Jun 19 13:07:26 2015 +0300
Committer: Svetoslav Neykov <[email protected]>
Committed: Fri Jun 19 18:32:06 2015 +0300

----------------------------------------------------------------------
 .../main/java/brooklyn/entity/group/DynamicClusterImpl.java | 7 ++++++-
 .../entity/basic/lifecycle/StartStopSshDriverTest.java      | 9 ++++++---
 .../entity/brooklynnode/BrooklynNodeIntegrationTest.java    | 7 +++++++
 .../src/main/java/brooklyn/launcher/BrooklynLauncher.java   | 1 +
 4 files changed, 20 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9ad0d8c8/core/src/main/java/brooklyn/entity/group/DynamicClusterImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/group/DynamicClusterImpl.java 
b/core/src/main/java/brooklyn/entity/group/DynamicClusterImpl.java
index e269880..447a4bb 100644
--- a/core/src/main/java/brooklyn/entity/group/DynamicClusterImpl.java
+++ b/core/src/main/java/brooklyn/entity/group/DynamicClusterImpl.java
@@ -860,7 +860,12 @@ public class DynamicClusterImpl extends AbstractGroupImpl 
implements DynamicClus
 
     protected void discardNode(Entity entity) {
         removeMember(entity);
-        Entities.unmanage(entity);
+        try {
+            Entities.unmanage(entity);
+        } catch (IllegalStateException e) {
+            //probably already unmanaged
+            LOG.debug("Exception during removing member of cluster " + this + 
", unmanaging node " + entity + ". The node is probably already unmanaged.", e);
+        }
     }
 
     protected void stopAndRemoveNode(Entity member) {

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9ad0d8c8/software/base/src/test/java/brooklyn/entity/basic/lifecycle/StartStopSshDriverTest.java
----------------------------------------------------------------------
diff --git 
a/software/base/src/test/java/brooklyn/entity/basic/lifecycle/StartStopSshDriverTest.java
 
b/software/base/src/test/java/brooklyn/entity/basic/lifecycle/StartStopSshDriverTest.java
index 2c64d38..3a9f4da 100644
--- 
a/software/base/src/test/java/brooklyn/entity/basic/lifecycle/StartStopSshDriverTest.java
+++ 
b/software/base/src/test/java/brooklyn/entity/basic/lifecycle/StartStopSshDriverTest.java
@@ -26,6 +26,7 @@ import java.lang.management.ManagementFactory;
 import java.lang.management.ThreadInfo;
 import java.lang.management.ThreadMXBean;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
@@ -43,6 +44,7 @@ import brooklyn.test.entity.TestApplicationImpl;
 import brooklyn.test.entity.TestEntity;
 import brooklyn.test.entity.TestEntityImpl;
 import brooklyn.util.collections.MutableList;
+import brooklyn.util.collections.MutableSet;
 import brooklyn.util.internal.ssh.SshTool;
 import brooklyn.util.internal.ssh.cli.SshCliTool;
 import brooklyn.util.internal.ssh.sshj.SshjTool;
@@ -52,8 +54,9 @@ import com.google.common.base.Function;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
 
-class StartStopSshDriverTest {
+public class StartStopSshDriverTest {
 
     public class BasicStartStopSshDriver extends 
AbstractSoftwareProcessSshDriver {
         public BasicStartStopSshDriver(EntityLocal entity, SshMachineLocation 
machine) {
@@ -113,10 +116,10 @@ class StartStopSshDriverTest {
             @Override
             public void run() {
               List<ThreadInfo> currentThreads = 
getThreadsCalling(StreamGobbler.class);
-              List<Long> currentThreadIds = getThreadId(currentThreads);
+              Collection<Long> currentThreadIds = 
MutableSet.copyOf(getThreadId(currentThreads));
 
               currentThreadIds.removeAll(existingThreadIds);
-              assertEquals(currentThreadIds, ImmutableList.<Long>of());
+              assertEquals(currentThreadIds, ImmutableSet.<Long>of());
             }
         });
     }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9ad0d8c8/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 944f286..00586fd 100644
--- 
a/software/base/src/test/java/brooklyn/entity/brooklynnode/BrooklynNodeIntegrationTest.java
+++ 
b/software/base/src/test/java/brooklyn/entity/brooklynnode/BrooklynNodeIntegrationTest.java
@@ -47,6 +47,7 @@ import brooklyn.entity.Entity;
 import brooklyn.entity.basic.BasicApplication;
 import brooklyn.entity.basic.BasicApplicationImpl;
 import brooklyn.entity.basic.Entities;
+import brooklyn.entity.basic.EntityLocal;
 import brooklyn.entity.basic.SoftwareProcess.StopSoftwareParameters.StopMode;
 import brooklyn.entity.brooklynnode.BrooklynNode.DeployBlueprintEffector;
 import brooklyn.entity.brooklynnode.BrooklynNode.ExistingFileBehaviour;
@@ -507,10 +508,16 @@ services:
         assertTrue(Entities.isManaged(brooklynNode));
         assertFalse(isPidRunning(pidFile), "pid in "+pidFile+" still running");
         
+        // Clear the startup app so it's not started second time, in addition 
to the rebind state
+        // TODO remove this once the startup app is created only if no 
previous persistence state
+        brooklynNode.config().set(BrooklynNode.APP, (String)null);
+        ((EntityLocal)brooklynNode).setAttribute(BrooklynNode.APP, null);
+        
         // Restart the process; expect persisted state to have been restored, 
so apps still known about
         brooklynNode.invoke(BrooklynNode.RESTART, ImmutableMap.<String, 
Object>of(
                 
BrooklynNode.RestartSoftwareParameters.RESTART_MACHINE.getName(), 
"false")).getUnchecked();
 
+        waitForApps(webConsoleUri.toString());
         String apps = 
HttpTestUtils.getContent(webConsoleUri.toString()+"/v1/applications");
         List<String> appType = parseJsonList(apps, ImmutableList.of("spec", 
"type"), String.class);
         assertEquals(appType, 
ImmutableList.of(BasicApplication.class.getName()));

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9ad0d8c8/usage/launcher/src/main/java/brooklyn/launcher/BrooklynLauncher.java
----------------------------------------------------------------------
diff --git 
a/usage/launcher/src/main/java/brooklyn/launcher/BrooklynLauncher.java 
b/usage/launcher/src/main/java/brooklyn/launcher/BrooklynLauncher.java
index 56337b7..7b1d437 100644
--- a/usage/launcher/src/main/java/brooklyn/launcher/BrooklynLauncher.java
+++ b/usage/launcher/src/main/java/brooklyn/launcher/BrooklynLauncher.java
@@ -623,6 +623,7 @@ public class BrooklynLauncher {
         // Allow the startup to be visible in console for newly created apps.
         ((LocalManagementContext)managementContext).noteStartupComplete();
 
+        // TODO create apps only after becoming master, analogously to catalog 
initialization
         try {
             createApps();
             startApps();

Reply via email to