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 2014/11/18 18:53:17 UTC

[3/5] incubator-brooklyn git commit: Don't start feeds when in HOT_STANDBY/HOT_BACKUP

Don't start feeds when in HOT_STANDBY/HOT_BACKUP


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

Branch: refs/heads/master
Commit: a0ac6b9200c110755fed9e25b7c0e85a3820fc08
Parents: d6a9aec
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Tue Nov 18 19:48:58 2014 +0200
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Tue Nov 18 19:48:58 2014 +0200

----------------------------------------------------------------------
 .../entity/rebind/BasicEntityRebindSupport.java |  6 ++---
 .../brooklyn/entity/rebind/RebindFeedTest.java  |  4 ++--
 .../brooklyn/management/ha/HotStandbyTest.java  | 23 ++++++++++++++++++++
 3 files changed, 28 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a0ac6b92/core/src/main/java/brooklyn/entity/rebind/BasicEntityRebindSupport.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/BasicEntityRebindSupport.java b/core/src/main/java/brooklyn/entity/rebind/BasicEntityRebindSupport.java
index c2d8532..8edb2fd 100644
--- a/core/src/main/java/brooklyn/entity/rebind/BasicEntityRebindSupport.java
+++ b/core/src/main/java/brooklyn/entity/rebind/BasicEntityRebindSupport.java
@@ -164,9 +164,9 @@ public class BasicEntityRebindSupport extends AbstractBrooklynObjectRebindSuppor
                 }
                 
                 try {
-                    // TODO don't start feeds here necessarily, if we're in RO mode for instance
-                    // (should refactor enrichers and policies and apply to them)
-                    feed.start();
+                    if (!rebindContext.isReadOnly(feed)) {
+                        feed.start();
+                    }
                 } catch (Exception e) {
                     rebindContext.getExceptionHandler().onRebindFailed(BrooklynObjectType.ENTITY, entity, e);
                 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a0ac6b92/core/src/test/java/brooklyn/entity/rebind/RebindFeedTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/entity/rebind/RebindFeedTest.java b/core/src/test/java/brooklyn/entity/rebind/RebindFeedTest.java
index c0be0fb..968f497 100644
--- a/core/src/test/java/brooklyn/entity/rebind/RebindFeedTest.java
+++ b/core/src/test/java/brooklyn/entity/rebind/RebindFeedTest.java
@@ -67,8 +67,8 @@ public class RebindFeedTest extends RebindTestFixtureWithApp {
 
     private static final Logger log = LoggerFactory.getLogger(RebindFeedTest.class);
     
-    final static AttributeSensor<String> SENSOR_STRING = Sensors.newStringSensor("aString", "");
-    final static AttributeSensor<Integer> SENSOR_INT = Sensors.newIntegerSensor( "aLong", "");
+    public final static AttributeSensor<String> SENSOR_STRING = Sensors.newStringSensor("aString", "");
+    public final static AttributeSensor<Integer> SENSOR_INT = Sensors.newIntegerSensor( "aLong", "");
 
     private BetterMockWebServer server;
     private URL baseUrl;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a0ac6b92/core/src/test/java/brooklyn/management/ha/HotStandbyTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/management/ha/HotStandbyTest.java b/core/src/test/java/brooklyn/management/ha/HotStandbyTest.java
index 76fa635..f82afe8 100644
--- a/core/src/test/java/brooklyn/management/ha/HotStandbyTest.java
+++ b/core/src/test/java/brooklyn/management/ha/HotStandbyTest.java
@@ -19,8 +19,11 @@
 package brooklyn.management.ha;
 
 import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
 
 import java.util.ArrayDeque;
+import java.util.Collection;
 import java.util.Date;
 import java.util.Deque;
 import java.util.List;
@@ -35,10 +38,13 @@ import org.testng.annotations.Test;
 
 import brooklyn.entity.Application;
 import brooklyn.entity.Entity;
+import brooklyn.entity.Feed;
 import brooklyn.entity.basic.Entities;
 import brooklyn.entity.proxying.EntitySpec;
 import brooklyn.entity.rebind.PersistenceExceptionHandlerImpl;
+import brooklyn.entity.rebind.RebindFeedTest;
 import brooklyn.entity.rebind.RebindManagerImpl;
+import brooklyn.entity.rebind.RebindFeedTest.MyEntityWithFunctionFeedImpl;
 import brooklyn.entity.rebind.persister.BrooklynMementoPersisterToObjectStore;
 import brooklyn.entity.rebind.persister.InMemoryObjectStore;
 import brooklyn.entity.rebind.persister.ListeningObjectStore;
@@ -594,4 +600,21 @@ public class HotStandbyTest {
         assertEquals(n2.ha.getNodeState(), ManagementNodeState.FAILED);
     }
     
+    @Test
+    public void testHotStandbyDoesNoStartFeeds() throws Exception {
+        HaMgmtNode n1 = createMaster(Duration.PRACTICALLY_FOREVER);
+        TestApplication app = createFirstAppAndPersist(n1);
+        TestEntity entity = app.createAndManageChild(EntitySpec.create(TestEntity.class).impl(MyEntityWithFunctionFeedImpl.class));
+        forcePersistNow(n1);
+        for (Feed feed : entity.feeds().getFeeds()) {
+            assertTrue(feed.isActive(), "Feed expected running, but it is non-running");
+        }
+
+        HaMgmtNode n2 = createHotStandby(Duration.PRACTICALLY_FOREVER);
+        TestEntity entityRO = (TestEntity) n2.mgmt.lookup(entity.getId(), Entity.class);
+        for (Feed feedRO : entityRO.feeds().getFeeds()) {
+            assertFalse(feedRO.isActive(), "Feed expected non-active, but it is running");
+        }
+    }
+
 }