This is an automated email from the ASF dual-hosted git repository.

heneveld pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git


The following commit(s) were added to refs/heads/master by this push:
     new eaa759d  disabled test for leak of enricher persisted files
eaa759d is described below

commit eaa759dc1bc34b40f9f5de5efd82738487c06cca
Author: Alex Heneveld <[email protected]>
AuthorDate: Wed Feb 23 14:11:42 2022 +0000

    disabled test for leak of enricher persisted files
---
 .../core/mgmt/rebind/RebindTestFixture.java        | 10 +++--
 .../entity/group/DynamicMultiGroupRebindTest.java  | 44 ++++++++++++++++++++++
 2 files changed, 50 insertions(+), 4 deletions(-)

diff --git 
a/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/RebindTestFixture.java
 
b/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/RebindTestFixture.java
index b2296e8..ca71c2a 100644
--- 
a/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/RebindTestFixture.java
+++ 
b/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/RebindTestFixture.java
@@ -155,10 +155,12 @@ public abstract class RebindTestFixture<T extends 
StartableApplication> {
     /** terminates the original management context (not destroying items) and 
points it at the new one (and same for apps); 
      * then clears the variables for the new one, so you can re-rebind */
     protected void switchOriginalToNewManagementContext() {
-        origManagementContext.getRebindManager().stopPersistence();
-        for (Application e: origManagementContext.getApplications()) 
((Startable)e).stop();
-        waitForTaskCountToBecome(origManagementContext, 0, true);
-        origManagementContext.terminate();
+        if (origManagementContext!=null && origManagementContext.isRunning()) {
+            origManagementContext.getRebindManager().stopPersistence();
+            for (Application e : origManagementContext.getApplications()) 
((Startable) e).stop();
+            waitForTaskCountToBecome(origManagementContext, 0, true);
+            origManagementContext.terminate();
+        }
         origManagementContext = (LocalManagementContext) newManagementContext;
         origApp = newApp;
         newManagementContext = null;
diff --git 
a/core/src/test/java/org/apache/brooklyn/entity/group/DynamicMultiGroupRebindTest.java
 
b/core/src/test/java/org/apache/brooklyn/entity/group/DynamicMultiGroupRebindTest.java
index 153f0e2..7d2866f 100644
--- 
a/core/src/test/java/org/apache/brooklyn/entity/group/DynamicMultiGroupRebindTest.java
+++ 
b/core/src/test/java/org/apache/brooklyn/entity/group/DynamicMultiGroupRebindTest.java
@@ -20,9 +20,16 @@ package org.apache.brooklyn.entity.group;
 
 import static com.google.common.base.Predicates.instanceOf;
 import static com.google.common.collect.Iterables.find;
+import com.google.common.io.Files;
+import org.apache.brooklyn.api.mgmt.ha.MementoCopyMode;
+import org.apache.brooklyn.api.mgmt.rebind.mementos.BrooklynMementoRawData;
 import static 
org.apache.brooklyn.core.entity.EntityPredicates.displayNameEqualTo;
+import org.apache.brooklyn.core.mgmt.persist.BrooklynPersistenceUtils;
+import org.apache.brooklyn.core.test.entity.TestApplication;
 import static 
org.apache.brooklyn.entity.group.DynamicMultiGroup.BUCKET_FUNCTION;
 import static 
org.apache.brooklyn.entity.group.DynamicMultiGroupImpl.bucketFromAttribute;
+import org.apache.brooklyn.util.collections.MutableSet;
+import org.testng.Assert;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertNull;
@@ -117,4 +124,41 @@ public class DynamicMultiGroupRebindTest extends 
RebindTestFixtureWithApp {
             });
         }
     }
+
+    @Test(groups="Broken")  // bug we are fixing
+    public void testSimplestMultiGroupRebindAndDelete() throws Exception {
+        DynamicMultiGroup dmg = 
origApp.createAndManageChild(EntitySpec.create(DynamicMultiGroup.class)
+                .configure(DynamicMultiGroup.ENTITY_FILTER, 
Predicates.alwaysFalse())
+                .configure(BUCKET_FUNCTION, bucketFromAttribute(SENSOR))
+                .configure(DynamicMultiGroup.BUCKET_SPEC, 
EntitySpec.create(BasicGroup.class)));
+
+        BrooklynMementoRawData state;
+        state = BrooklynPersistenceUtils.newStateMemento(mgmt(), 
MementoCopyMode.LOCAL);
+        Assert.assertEquals(state.getEntities().size(), 2);
+
+        TestApplication appRebinded = 
rebind(RebindOptions.create().terminateOrigManagementContext(true));
+        switchOriginalToNewManagementContext();
+
+        state = BrooklynPersistenceUtils.newStateMemento(mgmt(), 
MementoCopyMode.LOCAL);
+        Assert.assertEquals(state.getEntities().size(), 2);
+
+        appRebinded.stop();
+
+        appRebinded = 
rebind(RebindOptions.create().terminateOrigManagementContext(true));
+
+        Assert.assertNull(appRebinded);
+        state = BrooklynPersistenceUtils.newStateMemento(mgmt(), 
MementoCopyMode.LOCAL);
+        Assert.assertEquals(state.getEntities().size(), 0);
+        Assert.assertEquals(state.getEnrichers().size(), 0);
+
+        Files.fileTraverser().breadthFirst(mementoDir).forEach(f -> {
+            if (!f.isDirectory()) {
+                if ( MutableSet.of("planeId").contains(f.getName()) ) {
+                    // expect these
+                } else {
+                    Assert.fail("At least one file exists after deployment: " 
+ f);
+                }
+            }
+        });
+    }
 }

Reply via email to