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/10 12:25:04 UTC

[1/7] incubator-brooklyn git commit: EC2 CentOS 6.3 test: openIptables=true

Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master 7804628d2 -> 3610d8a5f


EC2 CentOS 6.3 test: openIptables=true

- The AMI has iptables locked down; need to open iptables for the
  jclouds “open ports”. Otherwise things like JBoss7 live test fails.

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

Branch: refs/heads/master
Commit: 6e1ec7260328342925fd565b05ec9980c8835ee8
Parents: 94db5ff
Author: Aled Sage <al...@gmail.com>
Authored: Thu Nov 6 13:38:00 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Nov 6 13:38:00 2014 +0000

----------------------------------------------------------------------
 .../base/src/test/java/brooklyn/entity/AbstractEc2LiveTest.java  | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6e1ec726/software/base/src/test/java/brooklyn/entity/AbstractEc2LiveTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/brooklyn/entity/AbstractEc2LiveTest.java b/software/base/src/test/java/brooklyn/entity/AbstractEc2LiveTest.java
index 64db32d..9490c98 100644
--- a/software/base/src/test/java/brooklyn/entity/AbstractEc2LiveTest.java
+++ b/software/base/src/test/java/brooklyn/entity/AbstractEc2LiveTest.java
@@ -25,6 +25,7 @@ import org.testng.annotations.Test;
 
 import brooklyn.config.BrooklynProperties;
 import brooklyn.location.Location;
+import brooklyn.location.jclouds.JcloudsLocation;
 import brooklyn.location.jclouds.JcloudsLocationConfig;
 import brooklyn.test.entity.LocalManagementContextForTests;
 import brooklyn.util.collections.MutableMap;
@@ -100,8 +101,9 @@ public abstract class AbstractEc2LiveTest extends BrooklynAppLiveTestSupport {
 
     @Test(groups = {"Live"})
     public void test_CentOS_6_3() throws Exception {
+        // TODO Should openIptables=true be the default?!
         // Image: {id=us-east-1/ami-a96b01c0, providerId=ami-a96b01c0, name=CentOS-6.3-x86_64-GA-EBS-02-85586466-5b6c-4495-b580-14f72b4bcf51-ami-bb9af1d2.1, location={scope=REGION, id=us-east-1, description=us-east-1, parent=aws-ec2, iso3166Codes=[US-VA]}, os={family=centos, arch=paravirtual, version=6.3, description=aws-marketplace/CentOS-6.3-x86_64-GA-EBS-02-85586466-5b6c-4495-b580-14f72b4bcf51-ami-bb9af1d2.1, is64Bit=true}, description=CentOS-6.3-x86_64-GA-EBS-02 on EBS x86_64 20130527:1219, version=bb9af1d2.1, status=AVAILABLE[available], loginUser=root, userMetadata={owner=679593333241, rootDeviceType=ebs, virtualizationType=paravirtual, hypervisor=xen}})
-        runTest(ImmutableMap.of("imageId", "us-east-1/ami-a96b01c0", "hardwareId", SMALL_HARDWARE_ID));
+        runTest(ImmutableMap.of("imageId", "us-east-1/ami-a96b01c0", "hardwareId", SMALL_HARDWARE_ID, JcloudsLocation.OPEN_IPTABLES.getName(), true));
     }
 
     @Test(groups = {"Live"})


[6/7] incubator-brooklyn git commit: More logging for failing BindDnsServerIntegrationTest

Posted by al...@apache.org.
More logging for failing BindDnsServerIntegrationTest

- Fails non-deterministically on jenkins; can’t reproduce locally.
  Therefore adding logging to dump out a copy of the persistence dir,
  as it was at the point of rebind.
- Also terminates the old management context.


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

Branch: refs/heads/master
Commit: 8e2c548080ffe98ea53ff7be88011d853bc0f922
Parents: bfdfd32
Author: Aled Sage <al...@gmail.com>
Authored: Fri Nov 7 08:24:33 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Mon Nov 10 11:23:56 2014 +0000

----------------------------------------------------------------------
 .../bind/BindDnsServerIntegrationTest.java      | 51 +++++++++++---------
 1 file changed, 29 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8e2c5480/software/network/src/test/java/brooklyn/entity/network/bind/BindDnsServerIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/network/src/test/java/brooklyn/entity/network/bind/BindDnsServerIntegrationTest.java b/software/network/src/test/java/brooklyn/entity/network/bind/BindDnsServerIntegrationTest.java
index 4d785ba..f6f9fd8 100644
--- a/software/network/src/test/java/brooklyn/entity/network/bind/BindDnsServerIntegrationTest.java
+++ b/software/network/src/test/java/brooklyn/entity/network/bind/BindDnsServerIntegrationTest.java
@@ -34,7 +34,6 @@ import brooklyn.entity.basic.ApplicationBuilder;
 import brooklyn.entity.basic.Attributes;
 import brooklyn.entity.basic.EmptySoftwareProcess;
 import brooklyn.entity.basic.Entities;
-import brooklyn.entity.basic.StartableApplication;
 import brooklyn.entity.group.DynamicCluster;
 import brooklyn.entity.proxying.EntitySpec;
 import brooklyn.entity.rebind.RebindTestFixture;
@@ -44,14 +43,14 @@ import brooklyn.policy.EnricherSpec;
 import brooklyn.test.EntityTestUtils;
 import brooklyn.test.entity.TestApplication;
 
-public class BindDnsServerIntegrationTest extends RebindTestFixture {
+public class BindDnsServerIntegrationTest extends RebindTestFixture<TestApplication> {
 
     private static final Logger LOG = LoggerFactory.getLogger(BindDnsServerIntegrationTest.class);
     private BindDnsServer dns;
     private DynamicCluster cluster;
 
     @Override
-    protected StartableApplication createApp() {
+    protected TestApplication createApp() {
         TestApplication app = ApplicationBuilder.newManagedApp(TestApplication.class, origManagementContext);
         dns = app.createAndManageChild(EntitySpec.create(BindDnsServer.class, TestBindDnsServerImpl.class)
                 .configure(BindDnsServer.ENTITY_FILTER, Predicates.instanceOf(EmptySoftwareProcess.class))
@@ -66,31 +65,39 @@ public class BindDnsServerIntegrationTest extends RebindTestFixture {
         return app;
     }
 
-    @Test(groups = "Integration")
-    public void testRebindDns() throws Exception {
+    @Test(invocationCount=1, groups = "Integration")
+    public void testRebindDns() throws Throwable {
         LocationSpec.create(LocalhostMachineProvisioningLocation.class);
         origApp.start(ImmutableList.of(new LocalhostMachineProvisioningLocation()));
         logDnsMappings();
         assertEquals(dns.getAttribute(BindDnsServer.ADDRESS_MAPPINGS).keySet().size(), 1);
         assertMapSizes(3, 1, 2, 1);
 
-        rebind(false);
-        dns = (BindDnsServer) Iterables.getOnlyElement(Iterables.filter(newApp.getChildren(), Predicates.instanceOf(BindDnsServer.class)));
-        cluster = (DynamicCluster) Iterables.getOnlyElement(Iterables.filter(newApp.getChildren(), Predicates.instanceOf(DynamicCluster.class)));
-
-        // assert original attributes restored and the server can be updated.
-        logDnsMappings();
-        assertMapSizes(3, 1, 2, 1);
-        cluster.resize(1);
-        assertDnsEntityEventuallyHasActiveMembers(1);
-        logDnsMappings();
-        EntityTestUtils.assertAttributeEqualsEventually(cluster, DynamicCluster.GROUP_SIZE, 1);
-        assertMapSizes(1, 1, 0, 1);
-        cluster.resize(5);
-        assertDnsEntityEventuallyHasActiveMembers(5);
-        logDnsMappings();
-        EntityTestUtils.assertAttributeEqualsEventually(cluster, DynamicCluster.GROUP_SIZE, 5);
-        assertMapSizes(5, 1, 4, 1);
+        rebind(false, true, mementoDirBackup);
+        try {
+            dns = (BindDnsServer) Iterables.getOnlyElement(Iterables.filter(newApp.getChildren(), Predicates.instanceOf(BindDnsServer.class)));
+            cluster = (DynamicCluster) Iterables.getOnlyElement(Iterables.filter(newApp.getChildren(), Predicates.instanceOf(DynamicCluster.class)));
+    
+            // assert original attributes restored and the server can be updated.
+            logDnsMappings();
+            assertMapSizes(3, 1, 2, 1);
+            cluster.resize(1);
+            assertDnsEntityEventuallyHasActiveMembers(1);
+            logDnsMappings();
+            EntityTestUtils.assertAttributeEqualsEventually(cluster, DynamicCluster.GROUP_SIZE, 1);
+            assertMapSizes(1, 1, 0, 1);
+            cluster.resize(5);
+            assertDnsEntityEventuallyHasActiveMembers(5);
+            logDnsMappings();
+            EntityTestUtils.assertAttributeEqualsEventually(cluster, DynamicCluster.GROUP_SIZE, 5);
+            assertMapSizes(5, 1, 4, 1);
+        } catch (Throwable t) {
+            // Failing in jenkins occassionally; don't know why and can't reproduce.
+            // Therefore dumping out lots more info on failure.
+            LOG.error("Test failed; dumping out contents of original persistence dir used for rebind...", t);
+            dumpMementoDir(mementoDirBackup);
+            throw t;
+        }
     }
 
     @Test(groups = "Integration")


[4/7] incubator-brooklyn git commit: entity.getAllAttributes() return everything

Posted by al...@apache.org.
entity.getAllAttributes() return everything

- Even if the AttributeSensor is unknown for a given key name, still
  return it.
- There’s a race where persister thread calls getAllAttributes() at
  same time as new attribute type is being added to entityType.
  Previously the sensor was not returned, so was not persisted.

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

Branch: refs/heads/master
Commit: 48c7b447a5cf9d29527289a5c2e6f40821fb7196
Parents: 69e2f86
Author: Aled Sage <al...@gmail.com>
Authored: Fri Nov 7 08:19:53 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Fri Nov 7 08:19:53 2014 +0000

----------------------------------------------------------------------
 .../java/brooklyn/entity/basic/AbstractEntity.java     | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/48c7b447/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java b/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java
index c5ca83a..4590990 100644
--- a/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java
+++ b/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java
@@ -55,6 +55,7 @@ import brooklyn.event.SensorEventListener;
 import brooklyn.event.basic.AttributeMap;
 import brooklyn.event.basic.AttributeSensorAndConfigKey;
 import brooklyn.event.basic.BasicNotificationSensor;
+import brooklyn.event.basic.Sensors;
 import brooklyn.event.feed.AbstractFeed;
 import brooklyn.event.feed.ConfigToAttributes;
 import brooklyn.internal.BrooklynFeatureEnablement;
@@ -1032,12 +1033,16 @@ public abstract class AbstractEntity extends AbstractBrooklynObject implements E
         Map<AttributeSensor, Object> result = Maps.newLinkedHashMap();
         Map<String, Object> attribs = attributesInternal.asMap();
         for (Map.Entry<String,Object> entry : attribs.entrySet()) {
-            AttributeSensor attribKey = (AttributeSensor) entityType.getSensor(entry.getKey());
+            AttributeSensor<?> attribKey = (AttributeSensor<?>) entityType.getSensor(entry.getKey());
             if (attribKey == null) {
-                LOG.warn("When retrieving all attributes of {}, ignoring attribute {} because no matching AttributeSensor found", this, entry.getKey());
-            } else {
-                result.put(attribKey, entry.getValue());
+                // Most likely a race: e.g. persister thread calling getAllAttributes; writer thread
+                // has written attribute value and is in process of calling entityType.addSensorIfAbsent(attribute)
+                // Just use a synthetic AttributeSensor, rather than ignoring value.
+                // TODO If it's not a race, then don't log.warn every time!
+                LOG.warn("When retrieving all attributes of {}, no AttributeSensor for attribute {} (creating synthetic)", this, entry.getKey());
+                attribKey = Sensors.newSensor(Object.class, entry.getKey());
             }
+            result.put(attribKey, entry.getValue());
         }
         return result;
     }


[7/7] incubator-brooklyn git commit: This closes #308

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


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

Branch: refs/heads/master
Commit: 3610d8a5f448f6457f98dd5a97ba10f51bc6f8f1
Parents: 7804628 8e2c548
Author: Aled Sage <al...@gmail.com>
Authored: Mon Nov 10 11:24:49 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Mon Nov 10 11:24:49 2014 +0000

----------------------------------------------------------------------
 .../brooklyn/entity/basic/AbstractEntity.java   | 13 ++--
 .../main/java/brooklyn/util/task/BasicTask.java |  2 +
 .../entity/rebind/RebindTestFixture.java        | 63 +++++++++++++++++++-
 .../brooklyn/entity/AbstractEc2LiveTest.java    |  4 +-
 .../bind/BindDnsServerIntegrationTest.java      | 51 +++++++++-------
 .../webapp/nodejs/NodeJsWebAppEc2LiveTest.java  | 13 +---
 .../nodejs/NodeJsWebAppSoftlayerLiveTest.java   | 13 +---
 7 files changed, 110 insertions(+), 49 deletions(-)
----------------------------------------------------------------------



[5/7] incubator-brooklyn git commit: RebindTestFixture: support for dumping mementoDir

Posted by al...@apache.org.
RebindTestFixture: support for dumping mementoDir

- Create a mementoDirBackup field, in case wants to be used by
  sub-classes.
- Adds dumpMementoDir(File dir)


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

Branch: refs/heads/master
Commit: bfdfd327d52b01d55d4c549aa0ff0a475295651c
Parents: 48c7b44
Author: Aled Sage <al...@gmail.com>
Authored: Fri Nov 7 08:24:19 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Mon Nov 10 11:23:56 2014 +0000

----------------------------------------------------------------------
 .../entity/rebind/RebindTestFixture.java        | 63 +++++++++++++++++++-
 1 file changed, 61 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/bfdfd327/core/src/test/java/brooklyn/entity/rebind/RebindTestFixture.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/entity/rebind/RebindTestFixture.java b/core/src/test/java/brooklyn/entity/rebind/RebindTestFixture.java
index 60d245a..fb4e286 100644
--- a/core/src/test/java/brooklyn/entity/rebind/RebindTestFixture.java
+++ b/core/src/test/java/brooklyn/entity/rebind/RebindTestFixture.java
@@ -21,6 +21,8 @@ package brooklyn.entity.rebind;
 import static org.testng.Assert.assertEquals;
 
 import java.io.File;
+import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 import org.slf4j.Logger;
@@ -30,6 +32,7 @@ import org.testng.annotations.BeforeMethod;
 
 import brooklyn.catalog.BrooklynCatalog;
 import brooklyn.catalog.CatalogItem;
+import brooklyn.config.BrooklynProperties;
 import brooklyn.entity.basic.Entities;
 import brooklyn.entity.basic.EntityFunctions;
 import brooklyn.entity.basic.StartableApplication;
@@ -41,11 +44,17 @@ import brooklyn.management.ha.HighAvailabilityMode;
 import brooklyn.management.internal.LocalManagementContext;
 import brooklyn.management.internal.ManagementContextInternal;
 import brooklyn.mementos.BrooklynMementoManifest;
+import brooklyn.mementos.BrooklynMementoRawData;
+import brooklyn.test.entity.LocalManagementContextForTests;
+import brooklyn.util.io.FileUtil;
 import brooklyn.util.os.Os;
+import brooklyn.util.text.Identifiers;
 import brooklyn.util.time.Duration;
 
 import com.google.api.client.util.Sets;
+import com.google.common.annotations.Beta;
 import com.google.common.collect.FluentIterable;
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
 
 public abstract class RebindTestFixture<T extends StartableApplication> {
@@ -57,6 +66,7 @@ public abstract class RebindTestFixture<T extends StartableApplication> {
     protected ClassLoader classLoader = getClass().getClassLoader();
     protected LocalManagementContext origManagementContext;
     protected File mementoDir;
+    protected File mementoDirBackup;
     
     protected T origApp;
     protected T newApp;
@@ -65,6 +75,9 @@ public abstract class RebindTestFixture<T extends StartableApplication> {
     @BeforeMethod(alwaysRun=true)
     public void setUp() throws Exception {
         mementoDir = Os.newTempDir(getClass());
+        File mementoDirParent = mementoDir.getParentFile();
+        mementoDirBackup = new File(mementoDirParent, mementoDir.getName()+"."+Identifiers.makeRandomId(4)+".bak");
+
         origManagementContext = createOrigManagementContext();
         origApp = createApp();
         
@@ -114,9 +127,44 @@ public abstract class RebindTestFixture<T extends StartableApplication> {
 
         if (origManagementContext != null) Entities.destroyAll(origManagementContext);
         if (mementoDir != null) FileBasedObjectStore.deleteCompletely(mementoDir);
+        if (mementoDirBackup != null) FileBasedObjectStore.deleteCompletely(mementoDir);
         origManagementContext = null;
     }
 
+    /**
+     * Dumps out the persisted mementos that are at the given directory.
+     * 
+     * Binds to the persisted state (as a "hot standby") to load the raw data (as strings), and to write out the
+     * entity, location, policy, enricher, feed and catalog-item data.
+     * 
+     * @param dir The directory containing the persisted state (e.g. {@link #mementoDir} or {@link #mementoDirBackup})
+     */
+    protected void dumpMementoDir(File dir) {
+        LocalManagementContextForTests mgmt = new LocalManagementContextForTests(BrooklynProperties.Factory.newEmpty());
+        FileBasedObjectStore store = null;
+        BrooklynMementoPersisterToObjectStore persister = null;
+        try {
+            store = new FileBasedObjectStore(dir);
+            store.injectManagementContext(mgmt);
+            store.prepareForSharedUse(PersistMode.AUTO, HighAvailabilityMode.HOT_STANDBY);
+            persister = new BrooklynMementoPersisterToObjectStore(store, BrooklynProperties.Factory.newEmpty(), classLoader);
+            BrooklynMementoRawData data = persister.loadMementoRawData(RebindExceptionHandlerImpl.builder().build());
+            List<BrooklynObjectType> types = ImmutableList.of(BrooklynObjectType.ENTITY, BrooklynObjectType.LOCATION, 
+                    BrooklynObjectType.POLICY, BrooklynObjectType.ENRICHER, BrooklynObjectType.FEED, 
+                    BrooklynObjectType.CATALOG_ITEM);
+            for (BrooklynObjectType type : types) {
+                LOG.info(type+" ("+data.getObjectsOfType(type).keySet()+"):");
+                for (Map.Entry<String, String> entry : data.getObjectsOfType(type).entrySet()) {
+                    LOG.info("\t"+type+" "+entry.getKey()+": "+entry.getValue());
+                }
+            }
+        } finally {
+            if (persister != null) persister.stop(false);
+            if (store != null) store.close();
+            mgmt.terminate();
+        }
+    }
+    
     /** rebinds, and sets newApp */
     protected T rebind() throws Exception {
         return rebind(true);
@@ -133,9 +181,15 @@ public abstract class RebindTestFixture<T extends StartableApplication> {
         // TODO What are sensible defaults?!
         return rebind(checkSerializable, false);
     }
-    
+
     @SuppressWarnings("unchecked")
     protected T rebind(boolean checkSerializable, boolean terminateOrigManagementContext) throws Exception {
+        return rebind(checkSerializable, terminateOrigManagementContext, (File)null);
+    }
+    
+    @Beta // temporary method while debugging; Aled will refactor all of this soon!
+    @SuppressWarnings("unchecked")
+    protected T rebind(boolean checkSerializable, boolean terminateOrigManagementContext, File backupDir) throws Exception {
         if (newApp!=null || newManagementContext!=null) throw new IllegalStateException("already rebound");
         
         RebindTestUtils.waitForPersisted(origApp);
@@ -145,7 +199,12 @@ public abstract class RebindTestFixture<T extends StartableApplication> {
         if (terminateOrigManagementContext) {
             origManagementContext.terminate();
         }
-        
+
+        if (backupDir != null) {
+            FileUtil.copyDir(mementoDir, backupDir);
+            FileUtil.setFilePermissionsTo700(backupDir);
+        }
+
         newManagementContext = createNewManagementContext();
         newApp = (T) RebindTestUtils.rebind((LocalManagementContext)newManagementContext, classLoader);
         return newApp;


[3/7] incubator-brooklyn git commit: TaskFinalizer: add TODO about logging

Posted by al...@apache.org.
TaskFinalizer: add TODO about logging

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

Branch: refs/heads/master
Commit: 69e2f86501a5b4b9397d4aa5db96e89abfada40b
Parents: 6416575
Author: Aled Sage <al...@gmail.com>
Authored: Thu Nov 6 13:41:13 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Nov 6 13:41:13 2014 +0000

----------------------------------------------------------------------
 core/src/main/java/brooklyn/util/task/BasicTask.java | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/69e2f865/core/src/main/java/brooklyn/util/task/BasicTask.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/util/task/BasicTask.java b/core/src/main/java/brooklyn/util/task/BasicTask.java
index c478336..e666680 100644
--- a/core/src/main/java/brooklyn/util/task/BasicTask.java
+++ b/core/src/main/java/brooklyn/util/task/BasicTask.java
@@ -756,6 +756,8 @@ public class BasicTask<T> implements TaskInternal<T> {
             }
             if (!t.isDone()) {
                 // shouldn't happen
+                // TODO But does happen if management context was terminated (e.g. running test suite).
+                //      Should check if Execution Manager is running, and only log if it was not terminated?
                 log.warn("Task "+t+" is being finalized before completion");
                 return;
             }


[2/7] incubator-brooklyn git commit: Fix NodeJs live tests: don’t assert REQUEST_COUNT

Posted by al...@apache.org.
Fix NodeJs live tests: don’t assert REQUEST_COUNT

- attributes like REQUEST_COUNT are not set for NodeJs, so don’t 
  assert that they are non-null

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

Branch: refs/heads/master
Commit: 6416575da12c739052c473ef29077d93edc17b39
Parents: 6e1ec72
Author: Aled Sage <al...@gmail.com>
Authored: Thu Nov 6 13:38:38 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Nov 6 13:38:38 2014 +0000

----------------------------------------------------------------------
 .../entity/webapp/nodejs/NodeJsWebAppEc2LiveTest.java  | 13 +++----------
 .../webapp/nodejs/NodeJsWebAppSoftlayerLiveTest.java   | 13 +++----------
 2 files changed, 6 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6416575d/software/webapp/src/test/java/brooklyn/entity/webapp/nodejs/NodeJsWebAppEc2LiveTest.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/test/java/brooklyn/entity/webapp/nodejs/NodeJsWebAppEc2LiveTest.java b/software/webapp/src/test/java/brooklyn/entity/webapp/nodejs/NodeJsWebAppEc2LiveTest.java
index ac8e32d..b2b5937 100644
--- a/software/webapp/src/test/java/brooklyn/entity/webapp/nodejs/NodeJsWebAppEc2LiveTest.java
+++ b/software/webapp/src/test/java/brooklyn/entity/webapp/nodejs/NodeJsWebAppEc2LiveTest.java
@@ -18,15 +18,15 @@
  */
 package brooklyn.entity.webapp.nodejs;
 
-import static brooklyn.entity.webapp.nodejs.NodeJsWebAppFixtureIntegrationTest.*;
-import static org.testng.Assert.assertNotNull;
+import static brooklyn.entity.webapp.nodejs.NodeJsWebAppFixtureIntegrationTest.APP_FILE;
+import static brooklyn.entity.webapp.nodejs.NodeJsWebAppFixtureIntegrationTest.APP_NAME;
+import static brooklyn.entity.webapp.nodejs.NodeJsWebAppFixtureIntegrationTest.GIT_REPO_URL;
 
 import org.testng.annotations.Test;
 
 import brooklyn.entity.AbstractEc2LiveTest;
 import brooklyn.entity.proxying.EntitySpec;
 import brooklyn.location.Location;
-import brooklyn.test.Asserts;
 import brooklyn.test.HttpTestUtils;
 
 import com.google.common.collect.ImmutableList;
@@ -49,13 +49,6 @@ public class NodeJsWebAppEc2LiveTest extends AbstractEc2LiveTest {
 
         HttpTestUtils.assertHttpStatusCodeEventuallyEquals(url, 200);
         HttpTestUtils.assertContentContainsText(url, "Hello");
-
-        Asserts.succeedsEventually(new Runnable() {
-            @Override public void run() {
-                assertNotNull(server.getAttribute(NodeJsWebAppService.REQUEST_COUNT));
-                assertNotNull(server.getAttribute(NodeJsWebAppService.ERROR_COUNT));
-                assertNotNull(server.getAttribute(NodeJsWebAppService.TOTAL_PROCESSING_TIME));
-            }});
     }
 
     @Test(groups = {"Live", "Live-sanity"})

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6416575d/software/webapp/src/test/java/brooklyn/entity/webapp/nodejs/NodeJsWebAppSoftlayerLiveTest.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/test/java/brooklyn/entity/webapp/nodejs/NodeJsWebAppSoftlayerLiveTest.java b/software/webapp/src/test/java/brooklyn/entity/webapp/nodejs/NodeJsWebAppSoftlayerLiveTest.java
index ce4de92..ae87086 100644
--- a/software/webapp/src/test/java/brooklyn/entity/webapp/nodejs/NodeJsWebAppSoftlayerLiveTest.java
+++ b/software/webapp/src/test/java/brooklyn/entity/webapp/nodejs/NodeJsWebAppSoftlayerLiveTest.java
@@ -18,15 +18,15 @@
  */
 package brooklyn.entity.webapp.nodejs;
 
-import static brooklyn.entity.webapp.nodejs.NodeJsWebAppFixtureIntegrationTest.*;
-import static org.testng.Assert.assertNotNull;
+import static brooklyn.entity.webapp.nodejs.NodeJsWebAppFixtureIntegrationTest.APP_FILE;
+import static brooklyn.entity.webapp.nodejs.NodeJsWebAppFixtureIntegrationTest.APP_NAME;
+import static brooklyn.entity.webapp.nodejs.NodeJsWebAppFixtureIntegrationTest.GIT_REPO_URL;
 
 import org.testng.annotations.Test;
 
 import brooklyn.entity.AbstractSoftlayerLiveTest;
 import brooklyn.entity.proxying.EntitySpec;
 import brooklyn.location.Location;
-import brooklyn.test.Asserts;
 import brooklyn.test.HttpTestUtils;
 
 import com.google.common.collect.ImmutableList;
@@ -49,13 +49,6 @@ public class NodeJsWebAppSoftlayerLiveTest extends AbstractSoftlayerLiveTest {
 
         HttpTestUtils.assertHttpStatusCodeEventuallyEquals(url, 200);
         HttpTestUtils.assertContentContainsText(url, "Hello");
-
-        Asserts.succeedsEventually(new Runnable() {
-            @Override public void run() {
-                assertNotNull(server.getAttribute(NodeJsWebAppService.REQUEST_COUNT));
-                assertNotNull(server.getAttribute(NodeJsWebAppService.ERROR_COUNT));
-                assertNotNull(server.getAttribute(NodeJsWebAppService.TOTAL_PROCESSING_TIME));
-            }});
     }
 
     @Test(groups = {"Live", "Live-sanity"})