http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/entity/drivers/downloads/DownloadProducerFromPropertiesTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/entity/drivers/downloads/DownloadProducerFromPropertiesTest.java b/core/src/test/java/brooklyn/entity/drivers/downloads/DownloadProducerFromPropertiesTest.java index a8d6e31..8fa0f53 100644 --- a/core/src/test/java/brooklyn/entity/drivers/downloads/DownloadProducerFromPropertiesTest.java +++ b/core/src/test/java/brooklyn/entity/drivers/downloads/DownloadProducerFromPropertiesTest.java @@ -26,6 +26,7 @@ import org.apache.brooklyn.api.entity.drivers.downloads.DownloadResolverManager. import org.apache.brooklyn.api.entity.drivers.downloads.DownloadResolverManager.DownloadTargets; import org.apache.brooklyn.api.entity.proxying.EntitySpec; import org.apache.brooklyn.api.location.Location; +import org.apache.brooklyn.core.management.internal.LocalManagementContext; import org.apache.brooklyn.test.entity.TestApplication; import org.apache.brooklyn.test.entity.TestEntity; import org.testng.annotations.AfterMethod; @@ -39,8 +40,6 @@ import brooklyn.entity.basic.Entities; import org.apache.brooklyn.location.basic.SimulatedLocation; -import brooklyn.management.internal.LocalManagementContext; - import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/entity/effector/EffectorBasicTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/entity/effector/EffectorBasicTest.java b/core/src/test/java/brooklyn/entity/effector/EffectorBasicTest.java index ce3dffc..fa963c3 100644 --- a/core/src/test/java/brooklyn/entity/effector/EffectorBasicTest.java +++ b/core/src/test/java/brooklyn/entity/effector/EffectorBasicTest.java @@ -25,6 +25,7 @@ import org.apache.brooklyn.api.entity.basic.EntityLocal; import org.apache.brooklyn.api.entity.proxying.EntitySpec; import org.apache.brooklyn.api.management.HasTaskChildren; import org.apache.brooklyn.api.management.Task; +import org.apache.brooklyn.core.management.internal.ManagementContextInternal; import org.apache.brooklyn.test.TestUtils; import org.apache.brooklyn.test.entity.TestEntity; import org.slf4j.Logger; @@ -37,8 +38,9 @@ import brooklyn.entity.BrooklynAppUnitTestSupport; import brooklyn.entity.basic.Entities; import brooklyn.entity.trait.FailingEntity; import brooklyn.entity.trait.Startable; + import org.apache.brooklyn.location.basic.SimulatedLocation; -import brooklyn.management.internal.ManagementContextInternal; + import brooklyn.util.collections.MutableMap; import brooklyn.util.exceptions.Exceptions; import brooklyn.util.task.Tasks; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/entity/proxying/ApplicationBuilderOverridingTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/entity/proxying/ApplicationBuilderOverridingTest.java b/core/src/test/java/brooklyn/entity/proxying/ApplicationBuilderOverridingTest.java index 3d3573e..f8f6302 100644 --- a/core/src/test/java/brooklyn/entity/proxying/ApplicationBuilderOverridingTest.java +++ b/core/src/test/java/brooklyn/entity/proxying/ApplicationBuilderOverridingTest.java @@ -35,6 +35,7 @@ import org.apache.brooklyn.api.entity.Application; import org.apache.brooklyn.api.entity.Entity; import org.apache.brooklyn.api.entity.proxying.EntitySpec; import org.apache.brooklyn.api.management.ManagementContext; +import org.apache.brooklyn.core.management.internal.LocalManagementContext; import org.apache.brooklyn.test.entity.LocalManagementContextForTests; import org.apache.brooklyn.test.entity.TestApplication; import org.apache.brooklyn.test.entity.TestEntity; @@ -48,7 +49,6 @@ import brooklyn.entity.basic.BasicApplication; import brooklyn.entity.basic.Entities; import brooklyn.entity.basic.EntityInternal; import brooklyn.entity.basic.StartableApplication; -import brooklyn.management.internal.LocalManagementContext; import brooklyn.util.exceptions.Exceptions; import com.google.common.collect.ImmutableMap; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/entity/proxying/EntityProxyTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/entity/proxying/EntityProxyTest.java b/core/src/test/java/brooklyn/entity/proxying/EntityProxyTest.java index fea7058..3ee866c 100644 --- a/core/src/test/java/brooklyn/entity/proxying/EntityProxyTest.java +++ b/core/src/test/java/brooklyn/entity/proxying/EntityProxyTest.java @@ -30,6 +30,7 @@ import org.apache.brooklyn.api.entity.Entity; import org.apache.brooklyn.api.entity.proxying.EntitySpec; import org.apache.brooklyn.api.management.EntityManager; import org.apache.brooklyn.api.management.Task; +import org.apache.brooklyn.core.management.internal.ManagementContextInternal; import org.apache.brooklyn.test.entity.TestEntity; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; @@ -40,7 +41,6 @@ import brooklyn.entity.basic.ApplicationBuilder; import brooklyn.entity.basic.BrooklynTaskTags; import brooklyn.entity.basic.Entities; import brooklyn.entity.basic.StartableApplication; -import brooklyn.management.internal.ManagementContextInternal; import brooklyn.util.collections.MutableMap; import com.google.common.collect.ImmutableList; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/entity/proxying/InternalEntityFactoryTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/entity/proxying/InternalEntityFactoryTest.java b/core/src/test/java/brooklyn/entity/proxying/InternalEntityFactoryTest.java index 004d02d..8f0d3ec 100644 --- a/core/src/test/java/brooklyn/entity/proxying/InternalEntityFactoryTest.java +++ b/core/src/test/java/brooklyn/entity/proxying/InternalEntityFactoryTest.java @@ -26,6 +26,7 @@ import static org.testng.Assert.assertTrue; import org.apache.brooklyn.api.entity.Application; import org.apache.brooklyn.api.entity.Entity; import org.apache.brooklyn.api.entity.proxying.EntitySpec; +import org.apache.brooklyn.core.management.internal.ManagementContextInternal; import org.apache.brooklyn.test.entity.LocalManagementContextForTests; import org.apache.brooklyn.test.entity.TestApplication; import org.apache.brooklyn.test.entity.TestApplicationImpl; @@ -37,7 +38,6 @@ import org.testng.annotations.Test; import brooklyn.entity.basic.AbstractApplication; import brooklyn.entity.basic.Entities; -import brooklyn.management.internal.ManagementContextInternal; public class InternalEntityFactoryTest { http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/entity/rebind/ActivePartialRebindVersionTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/entity/rebind/ActivePartialRebindVersionTest.java b/core/src/test/java/brooklyn/entity/rebind/ActivePartialRebindVersionTest.java index 45a39cc..41917d4 100644 --- a/core/src/test/java/brooklyn/entity/rebind/ActivePartialRebindVersionTest.java +++ b/core/src/test/java/brooklyn/entity/rebind/ActivePartialRebindVersionTest.java @@ -25,12 +25,12 @@ import org.testng.annotations.Test; import org.apache.brooklyn.api.catalog.CatalogItem; import org.apache.brooklyn.api.entity.Entity; import org.apache.brooklyn.api.entity.proxying.EntitySpec; +import org.apache.brooklyn.core.management.internal.LocalManagementContext; +import org.apache.brooklyn.core.management.osgi.OsgiVersionMoreEntityTest; import brooklyn.catalog.internal.CatalogTestUtils; import brooklyn.entity.group.DynamicCluster; import brooklyn.entity.rebind.transformer.CompoundTransformer; -import brooklyn.management.internal.LocalManagementContext; -import brooklyn.management.osgi.OsgiVersionMoreEntityTest; import brooklyn.util.collections.MutableList; public class ActivePartialRebindVersionTest extends RebindTestFixtureWithApp { http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/entity/rebind/RebindCatalogEntityTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/entity/rebind/RebindCatalogEntityTest.java b/core/src/test/java/brooklyn/entity/rebind/RebindCatalogEntityTest.java index 7856be7..2b5cebf 100644 --- a/core/src/test/java/brooklyn/entity/rebind/RebindCatalogEntityTest.java +++ b/core/src/test/java/brooklyn/entity/rebind/RebindCatalogEntityTest.java @@ -39,12 +39,12 @@ import brooklyn.entity.basic.Entities; import brooklyn.entity.basic.EntityInternal; import brooklyn.entity.basic.StartableApplication; import brooklyn.event.basic.Sensors; -import brooklyn.management.internal.LocalManagementContext; import org.apache.brooklyn.api.entity.Application; import org.apache.brooklyn.api.entity.proxying.EntitySpec; import org.apache.brooklyn.api.management.ManagementContext; import org.apache.brooklyn.api.management.ha.ManagementNodeState; +import org.apache.brooklyn.core.management.internal.LocalManagementContext; import org.apache.brooklyn.test.TestResourceUnavailableException; import brooklyn.util.javalang.UrlClassLoader; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/entity/rebind/RebindCatalogItemTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/entity/rebind/RebindCatalogItemTest.java b/core/src/test/java/brooklyn/entity/rebind/RebindCatalogItemTest.java index ff37f74..5d95534 100644 --- a/core/src/test/java/brooklyn/entity/rebind/RebindCatalogItemTest.java +++ b/core/src/test/java/brooklyn/entity/rebind/RebindCatalogItemTest.java @@ -40,6 +40,7 @@ import org.apache.brooklyn.api.catalog.CatalogItem; import org.apache.brooklyn.api.catalog.CatalogItem.CatalogItemType; import org.apache.brooklyn.api.entity.proxying.EntitySpec; import org.apache.brooklyn.api.management.ManagementContext; +import org.apache.brooklyn.core.management.internal.LocalManagementContext; import org.apache.brooklyn.test.entity.TestEntity; import brooklyn.catalog.internal.BasicBrooklynCatalog; @@ -47,8 +48,9 @@ import brooklyn.catalog.internal.CatalogDto; import brooklyn.config.BrooklynProperties; import brooklyn.config.BrooklynServerConfig; import brooklyn.internal.BrooklynFeatureEnablement; + import org.apache.brooklyn.location.basic.LocalhostMachineProvisioningLocation; -import brooklyn.management.internal.LocalManagementContext; + import brooklyn.policy.basic.AbstractPolicy; import com.google.common.base.Joiner; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/entity/rebind/RebindCatalogWhenCatalogPersistenceDisabledTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/entity/rebind/RebindCatalogWhenCatalogPersistenceDisabledTest.java b/core/src/test/java/brooklyn/entity/rebind/RebindCatalogWhenCatalogPersistenceDisabledTest.java index c04ef95..2c3890c 100644 --- a/core/src/test/java/brooklyn/entity/rebind/RebindCatalogWhenCatalogPersistenceDisabledTest.java +++ b/core/src/test/java/brooklyn/entity/rebind/RebindCatalogWhenCatalogPersistenceDisabledTest.java @@ -30,12 +30,12 @@ import brooklyn.camp.lite.CampPlatformWithJustBrooklynMgmt; import org.apache.brooklyn.api.catalog.CatalogItem; import org.apache.brooklyn.api.entity.proxying.EntitySpec; +import org.apache.brooklyn.core.management.internal.LocalManagementContext; import org.apache.brooklyn.test.entity.TestEntity; import brooklyn.config.BrooklynProperties; import brooklyn.config.BrooklynServerConfig; import brooklyn.internal.BrooklynFeatureEnablement; -import brooklyn.management.internal.LocalManagementContext; import com.google.common.collect.Iterables; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/entity/rebind/RebindEntityTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/entity/rebind/RebindEntityTest.java b/core/src/test/java/brooklyn/entity/rebind/RebindEntityTest.java index 75ba13e..992ca8e 100644 --- a/core/src/test/java/brooklyn/entity/rebind/RebindEntityTest.java +++ b/core/src/test/java/brooklyn/entity/rebind/RebindEntityTest.java @@ -52,6 +52,7 @@ import org.apache.brooklyn.api.location.LocationSpec; import org.apache.brooklyn.api.management.ha.ManagementNodeState; import org.apache.brooklyn.api.mementos.BrooklynMementoManifest; import org.apache.brooklyn.api.mementos.EntityMemento; +import org.apache.brooklyn.core.management.internal.LocalManagementContext; import org.apache.brooklyn.test.entity.TestApplication; import org.apache.brooklyn.test.entity.TestEntity; import org.apache.brooklyn.test.entity.TestEntityImpl; @@ -74,7 +75,6 @@ import brooklyn.event.basic.Sensors; import org.apache.brooklyn.location.basic.LocationConfigTest.MyLocation; -import brooklyn.management.internal.LocalManagementContext; import brooklyn.test.Asserts; import brooklyn.util.collections.MutableMap; import brooklyn.util.collections.MutableSet; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/entity/rebind/RebindFailuresTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/entity/rebind/RebindFailuresTest.java b/core/src/test/java/brooklyn/entity/rebind/RebindFailuresTest.java index 82d122a..ba168cf 100644 --- a/core/src/test/java/brooklyn/entity/rebind/RebindFailuresTest.java +++ b/core/src/test/java/brooklyn/entity/rebind/RebindFailuresTest.java @@ -39,6 +39,7 @@ import org.apache.brooklyn.api.policy.Enricher; import org.apache.brooklyn.api.policy.EnricherSpec; import org.apache.brooklyn.api.policy.Policy; import org.apache.brooklyn.api.policy.PolicySpec; +import org.apache.brooklyn.core.management.internal.LocalManagementContext; import org.apache.brooklyn.test.entity.LocalManagementContextForTests; import org.testng.Assert; import org.testng.annotations.Test; @@ -51,7 +52,6 @@ import brooklyn.entity.basic.EntityFunctions; import brooklyn.entity.basic.EntityPredicates; import brooklyn.entity.rebind.RebindEntityTest.MyEntity; import brooklyn.entity.rebind.RebindEntityTest.MyEntityImpl; -import brooklyn.management.internal.LocalManagementContext; import brooklyn.policy.basic.AbstractPolicy; import brooklyn.util.exceptions.Exceptions; import brooklyn.util.flags.SetFromFlag; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/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 db51a91..c368a7a 100644 --- a/core/src/test/java/brooklyn/entity/rebind/RebindFeedTest.java +++ b/core/src/test/java/brooklyn/entity/rebind/RebindFeedTest.java @@ -28,6 +28,7 @@ import org.apache.brooklyn.api.entity.Feed; import org.apache.brooklyn.api.entity.proxying.EntitySpec; import org.apache.brooklyn.api.event.AttributeSensor; import org.apache.brooklyn.api.location.Location; +import org.apache.brooklyn.core.management.internal.BrooklynGarbageCollector; import org.apache.brooklyn.test.EntityTestUtils; import org.apache.brooklyn.test.entity.TestEntity; import org.apache.brooklyn.test.entity.TestEntityImpl.TestEntityWithoutEnrichers; @@ -54,7 +55,6 @@ import brooklyn.event.feed.ssh.SshValueFunctions; import org.apache.brooklyn.location.basic.LocalhostMachineProvisioningLocation; import org.apache.brooklyn.location.basic.SshMachineLocation; -import brooklyn.management.internal.BrooklynGarbageCollector; import brooklyn.test.Asserts; import brooklyn.util.collections.MutableList; import brooklyn.util.http.BetterMockWebServer; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/entity/rebind/RebindFeedWithHaTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/entity/rebind/RebindFeedWithHaTest.java b/core/src/test/java/brooklyn/entity/rebind/RebindFeedWithHaTest.java index c3c27c2..868665f 100644 --- a/core/src/test/java/brooklyn/entity/rebind/RebindFeedWithHaTest.java +++ b/core/src/test/java/brooklyn/entity/rebind/RebindFeedWithHaTest.java @@ -30,6 +30,7 @@ import org.apache.brooklyn.api.entity.proxying.EntitySpec; import org.apache.brooklyn.api.event.AttributeSensor; import org.apache.brooklyn.api.management.Task; import org.apache.brooklyn.api.management.ha.HighAvailabilityMode; +import org.apache.brooklyn.core.management.internal.LocalManagementContext; import org.apache.brooklyn.test.EntityTestUtils; import org.apache.brooklyn.test.entity.TestApplication; import org.apache.brooklyn.test.entity.TestEntity; @@ -40,7 +41,6 @@ import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; -import brooklyn.management.internal.LocalManagementContext; import brooklyn.util.http.BetterMockWebServer; import brooklyn.util.repeat.Repeater; import brooklyn.util.task.BasicExecutionManager; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/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 1522140..d563bea 100644 --- a/core/src/test/java/brooklyn/entity/rebind/RebindTestFixture.java +++ b/core/src/test/java/brooklyn/entity/rebind/RebindTestFixture.java @@ -40,6 +40,8 @@ import org.apache.brooklyn.api.management.ManagementContext; import org.apache.brooklyn.api.management.Task; import org.apache.brooklyn.api.management.ha.HighAvailabilityMode; import org.apache.brooklyn.api.mementos.BrooklynMementoManifest; +import org.apache.brooklyn.core.management.internal.LocalManagementContext; +import org.apache.brooklyn.core.management.internal.ManagementContextInternal; import brooklyn.catalog.internal.CatalogUtils; import brooklyn.entity.basic.Entities; @@ -49,8 +51,6 @@ import brooklyn.entity.rebind.persister.BrooklynMementoPersisterToObjectStore; import brooklyn.entity.rebind.persister.FileBasedObjectStore; import brooklyn.entity.rebind.persister.PersistMode; import brooklyn.entity.trait.Startable; -import brooklyn.management.internal.LocalManagementContext; -import brooklyn.management.internal.ManagementContextInternal; import brooklyn.util.os.Os; import brooklyn.util.repeat.Repeater; import brooklyn.util.task.BasicExecutionManager; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/entity/rebind/RebindTestUtils.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/entity/rebind/RebindTestUtils.java b/core/src/test/java/brooklyn/entity/rebind/RebindTestUtils.java index 7541009..8e7ec46 100644 --- a/core/src/test/java/brooklyn/entity/rebind/RebindTestUtils.java +++ b/core/src/test/java/brooklyn/entity/rebind/RebindTestUtils.java @@ -38,6 +38,9 @@ import org.apache.brooklyn.api.management.ha.HighAvailabilityMode; import org.apache.brooklyn.api.management.ha.ManagementNodeState; import org.apache.brooklyn.api.mementos.BrooklynMemento; import org.apache.brooklyn.api.mementos.BrooklynMementoRawData; +import org.apache.brooklyn.core.management.ha.ManagementPlaneSyncRecordPersisterToObjectStore; +import org.apache.brooklyn.core.management.internal.LocalManagementContext; +import org.apache.brooklyn.core.management.internal.ManagementContextInternal; import org.apache.brooklyn.test.entity.LocalManagementContextForTests; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -50,9 +53,6 @@ import brooklyn.entity.rebind.persister.BrooklynMementoPersisterToObjectStore; import brooklyn.entity.rebind.persister.FileBasedObjectStore; import brooklyn.entity.rebind.persister.PersistMode; import brooklyn.entity.rebind.persister.PersistenceObjectStore; -import brooklyn.management.ha.ManagementPlaneSyncRecordPersisterToObjectStore; -import brooklyn.management.internal.LocalManagementContext; -import brooklyn.management.internal.ManagementContextInternal; import brooklyn.util.io.FileUtil; import brooklyn.util.javalang.Serializers; import brooklyn.util.javalang.Serializers.ObjectReplacer; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/entity/rebind/persister/XmlMementoSerializerTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/entity/rebind/persister/XmlMementoSerializerTest.java b/core/src/test/java/brooklyn/entity/rebind/persister/XmlMementoSerializerTest.java index cd74827..3dcef6a 100644 --- a/core/src/test/java/brooklyn/entity/rebind/persister/XmlMementoSerializerTest.java +++ b/core/src/test/java/brooklyn/entity/rebind/persister/XmlMementoSerializerTest.java @@ -30,8 +30,6 @@ import java.util.Map; import java.util.NoSuchElementException; import java.util.Set; -import brooklyn.management.osgi.OsgiTestResources; - import org.apache.brooklyn.location.basic.SimulatedLocation; import org.apache.brooklyn.api.location.Location; import org.apache.brooklyn.api.location.LocationSpec; @@ -54,13 +52,14 @@ import org.apache.brooklyn.api.management.ManagementContext; import org.apache.brooklyn.api.mementos.BrooklynMementoPersister.LookupContext; import org.apache.brooklyn.api.policy.Enricher; import org.apache.brooklyn.api.policy.Policy; +import org.apache.brooklyn.core.management.osgi.OsgiTestResources; +import org.apache.brooklyn.core.management.osgi.OsgiVersionMoreEntityTest; import brooklyn.catalog.internal.CatalogItemBuilder; import brooklyn.catalog.internal.CatalogItemDtoAbstract; import brooklyn.catalog.internal.CatalogTestUtils; import brooklyn.entity.basic.Entities; import brooklyn.entity.group.DynamicCluster; -import brooklyn.management.osgi.OsgiVersionMoreEntityTest; import brooklyn.util.collections.MutableList; import brooklyn.util.collections.MutableMap; import brooklyn.util.collections.MutableSet; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/entity/rebind/transformer/CompoundTransformerTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/entity/rebind/transformer/CompoundTransformerTest.java b/core/src/test/java/brooklyn/entity/rebind/transformer/CompoundTransformerTest.java index 56896ca..0e00554 100644 --- a/core/src/test/java/brooklyn/entity/rebind/transformer/CompoundTransformerTest.java +++ b/core/src/test/java/brooklyn/entity/rebind/transformer/CompoundTransformerTest.java @@ -33,6 +33,7 @@ import org.apache.brooklyn.api.entity.rebind.RebindManager.RebindFailureMode; import org.apache.brooklyn.api.management.ManagementContext; import org.apache.brooklyn.api.management.ha.HighAvailabilityMode; import org.apache.brooklyn.api.mementos.BrooklynMementoRawData; +import org.apache.brooklyn.core.management.internal.ManagementContextInternal; import org.apache.brooklyn.test.entity.TestApplication; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -50,7 +51,6 @@ import brooklyn.entity.rebind.persister.BrooklynMementoPersisterToObjectStore; import brooklyn.entity.rebind.persister.FileBasedObjectStore; import brooklyn.entity.rebind.persister.PersistMode; import brooklyn.event.basic.BasicConfigKey; -import brooklyn.management.internal.ManagementContextInternal; import brooklyn.util.guava.SerializablePredicate; import brooklyn.util.os.Os; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/event/feed/ConfigToAttributesTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/event/feed/ConfigToAttributesTest.java b/core/src/test/java/brooklyn/event/feed/ConfigToAttributesTest.java index fb8f620..ff6ffab 100644 --- a/core/src/test/java/brooklyn/event/feed/ConfigToAttributesTest.java +++ b/core/src/test/java/brooklyn/event/feed/ConfigToAttributesTest.java @@ -21,6 +21,8 @@ package brooklyn.event.feed; import static org.testng.Assert.assertEquals; import org.apache.brooklyn.api.entity.proxying.EntitySpec; +import org.apache.brooklyn.core.management.internal.LocalManagementContext; +import org.apache.brooklyn.core.management.internal.ManagementContextInternal; import org.apache.brooklyn.test.entity.TestApplication; import org.apache.brooklyn.test.entity.TestEntity; import org.testng.annotations.AfterMethod; @@ -30,8 +32,6 @@ import org.testng.annotations.Test; import brooklyn.entity.basic.Entities; import brooklyn.event.basic.BasicAttributeSensorAndConfigKey; import brooklyn.event.basic.TemplatedStringAttributeSensorAndConfigKey; -import brooklyn.management.internal.LocalManagementContext; -import brooklyn.management.internal.ManagementContextInternal; public class ConfigToAttributesTest { http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/management/entitlement/AcmeEntitlementManager.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/management/entitlement/AcmeEntitlementManager.java b/core/src/test/java/brooklyn/management/entitlement/AcmeEntitlementManager.java deleted file mode 100644 index 9674d93..0000000 --- a/core/src/test/java/brooklyn/management/entitlement/AcmeEntitlementManager.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package brooklyn.management.entitlement; - -import org.apache.brooklyn.api.management.entitlement.EntitlementClass; -import org.apache.brooklyn.api.management.entitlement.EntitlementContext; -import org.apache.brooklyn.api.management.entitlement.EntitlementManager; - -public class AcmeEntitlementManager extends PerUserEntitlementManager { - - public AcmeEntitlementManager() { - // default mode (if no user specified) is root - super(Entitlements.root()); - - super.addUser("admin", Entitlements.root()); - - super.addUser("support", Entitlements.readOnly()); - - // metrics can log in but can't really do much else - super.addUser("metrics", Entitlements.minimal()); - - // 'navigator' defines a user with a custom entitlement manager allowing - // access to see entities (in the tree) but not to do anything - // or even see any sensor information on those entities - super.addUser("navigator", new EntitlementManager() { - @Override - public <T> boolean isEntitled(EntitlementContext context, EntitlementClass<T> entitlementClass, T entitlementClassArgument) { - if (Entitlements.SEE_ENTITY.equals(entitlementClass)) return true; - return false; - } - }); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/management/entitlement/AcmeEntitlementManagerTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/management/entitlement/AcmeEntitlementManagerTest.java b/core/src/test/java/brooklyn/management/entitlement/AcmeEntitlementManagerTest.java deleted file mode 100644 index e43fe4a..0000000 --- a/core/src/test/java/brooklyn/management/entitlement/AcmeEntitlementManagerTest.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package brooklyn.management.entitlement; - -import java.net.URI; - -import org.testng.Assert; -import org.testng.annotations.Test; - -import brooklyn.management.entitlement.Entitlements.EntityAndItem; -import brooklyn.management.entitlement.Entitlements.StringAndArgument; - -public class AcmeEntitlementManagerTest extends AcmeEntitlementManagerTestFixture { - - protected void addGlobalConfig() { - configBag.put(Entitlements.GLOBAL_ENTITLEMENT_MANAGER, AcmeEntitlementManager.class.getName()); - } - - @Test - public void testOtherAuthorizedUserHasAllPermissions() { - checkUserHasAllPermissions("other"); - } - - @Test - public void testNullUserHasAllPermissions() { - checkUserHasAllPermissions(null); - } - - @Test - public void testNavigatorHasListPermissionsOnly() { - setup(configBag); - WebEntitlementContext entitlementContext = new WebEntitlementContext("navigator", "127.0.0.1", URI.create("/X").toString(), "X"); - Entitlements.setEntitlementContext(entitlementContext); - Assert.assertFalse(Entitlements.isEntitled(mgmt.getEntitlementManager(), Entitlements.ROOT, null)); - Assert.assertTrue(Entitlements.isEntitled(mgmt.getEntitlementManager(), Entitlements.SEE_ENTITY, app)); - Assert.assertFalse(Entitlements.isEntitled(mgmt.getEntitlementManager(), Entitlements.INVOKE_EFFECTOR, EntityAndItem.of(app, StringAndArgument.of("any-eff", null)))); - Assert.assertFalse(Entitlements.isEntitled(mgmt.getEntitlementManager(), Entitlements.SEE_SENSOR, EntityAndItem.of(app, "any-sensor"))); - // and cannot invoke methods - confirmEffectorEntitlement(false); - } - -} - http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/management/entitlement/AcmeEntitlementManagerTestFixture.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/management/entitlement/AcmeEntitlementManagerTestFixture.java b/core/src/test/java/brooklyn/management/entitlement/AcmeEntitlementManagerTestFixture.java deleted file mode 100644 index 63ee8a0..0000000 --- a/core/src/test/java/brooklyn/management/entitlement/AcmeEntitlementManagerTestFixture.java +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package brooklyn.management.entitlement; - -import java.io.IOException; -import java.net.URI; - -import org.apache.brooklyn.api.entity.Application; -import org.apache.brooklyn.api.entity.proxying.EntitySpec; -import org.apache.brooklyn.api.location.Location; -import org.apache.brooklyn.api.management.ManagementContext; -import org.apache.brooklyn.test.entity.LocalManagementContextForTests; -import org.testng.Assert; -import org.testng.annotations.AfterMethod; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableList; - -import brooklyn.config.BrooklynProperties; -import brooklyn.entity.basic.ApplicationBuilder; -import brooklyn.entity.basic.BasicApplication; -import brooklyn.entity.basic.Entities; -import brooklyn.management.entitlement.Entitlements.EntityAndItem; -import brooklyn.management.entitlement.Entitlements.StringAndArgument; -import brooklyn.util.config.ConfigBag; -import brooklyn.util.exceptions.Exceptions; - -public abstract class AcmeEntitlementManagerTestFixture { - - protected ManagementContext mgmt; - protected Application app; - protected ConfigBag configBag; - - public void setup(ConfigBag cfg) { - mgmt = new LocalManagementContextForTests(BrooklynProperties.Factory.newEmpty().addFrom(cfg)); - app = ApplicationBuilder.newManagedApp(EntitySpec.create(BasicApplication.class), mgmt); - } - - @BeforeMethod(alwaysRun=true) - public void init() throws IOException { - Entitlements.clearEntitlementContext(); - configBag = ConfigBag.newInstance(); - addGlobalConfig(); - } - - protected abstract void addGlobalConfig() throws IOException; - - @AfterMethod(alwaysRun=true) - public void tearDown() { - Entitlements.clearEntitlementContext(); - if (app != null) Entities.destroyAll(app.getManagementContext()); - if (mgmt != null) Entities.destroyAll(mgmt); - app = null; - mgmt = null; - } - - @Test - public void testMetricsHasMinimalPermissions() { - checkUserHasMinimalPermissions("metrics"); - } - - public void checkUserHasMinimalPermissions(String username) { - setup(configBag); - WebEntitlementContext entitlementContext = new WebEntitlementContext(username, "127.0.0.1", URI.create("/applications").toString(), "H"); - Entitlements.setEntitlementContext(entitlementContext); - Assert.assertFalse(Entitlements.isEntitled(mgmt.getEntitlementManager(), Entitlements.ROOT, null)); - Assert.assertFalse(Entitlements.isEntitled(mgmt.getEntitlementManager(), Entitlements.SEE_ENTITY, app)); - Assert.assertFalse(Entitlements.isEntitled(mgmt.getEntitlementManager(), Entitlements.INVOKE_EFFECTOR, EntityAndItem.of(app, StringAndArgument.of("any-eff", null)))); - Assert.assertFalse(Entitlements.isEntitled(mgmt.getEntitlementManager(), Entitlements.SEE_SENSOR, EntityAndItem.of(app, "any-sensor"))); - // and can invoke methods - confirmEffectorEntitlement(false); - } - - @Test - public void testSupportHasReadOnlyPermissions() { - checkUserHasReadOnlyPermissions("support"); - } - - public void checkUserHasReadOnlyPermissions(String username) { - setup(configBag); - WebEntitlementContext entitlementContext = new WebEntitlementContext(username, "127.0.0.1", URI.create("/X").toString(), "B"); - Entitlements.setEntitlementContext(entitlementContext); - Assert.assertFalse(Entitlements.isEntitled(mgmt.getEntitlementManager(), Entitlements.ROOT, null)); - Assert.assertTrue(Entitlements.isEntitled(mgmt.getEntitlementManager(), Entitlements.SEE_ENTITY, app)); - Assert.assertFalse(Entitlements.isEntitled(mgmt.getEntitlementManager(), Entitlements.INVOKE_EFFECTOR, EntityAndItem.of(app, StringAndArgument.of("any-eff", null)))); - Assert.assertTrue(Entitlements.isEntitled(mgmt.getEntitlementManager(), Entitlements.SEE_SENSOR, EntityAndItem.of(app, "any-sensor"))); - // and cannot invoke methods - confirmEffectorEntitlement(false); - } - - @Test - public void testAdminHasAllPermissions() { - checkUserHasAllPermissions("admin"); - } - - public void checkUserHasAllPermissions(String user) { - setup(configBag); - WebEntitlementContext entitlementContext = new WebEntitlementContext(user, "127.0.0.1", URI.create("/X").toString(), "A"); - Entitlements.setEntitlementContext(entitlementContext); - Assert.assertTrue(Entitlements.isEntitled(mgmt.getEntitlementManager(), Entitlements.ROOT, null)); - Assert.assertTrue(Entitlements.isEntitled(mgmt.getEntitlementManager(), Entitlements.SEE_ENTITY, app)); - Assert.assertTrue(Entitlements.isEntitled(mgmt.getEntitlementManager(), Entitlements.INVOKE_EFFECTOR, EntityAndItem.of(app, StringAndArgument.of("any-eff", null)))); - Assert.assertTrue(Entitlements.isEntitled(mgmt.getEntitlementManager(), Entitlements.SEE_SENSOR, EntityAndItem.of(app, "any-sensor"))); - // and can invoke methods - confirmEffectorEntitlement(true); - } - - protected void confirmEffectorEntitlement(boolean shouldSucceed) { - try { - ((BasicApplication)app).start(ImmutableList.<Location>of()); - checkNoException(shouldSucceed); - } catch (Exception e) { - checkNotEntitledException(shouldSucceed, e); - } - } - - private void checkNoException(boolean shouldBeEntitled) { - checkNotEntitledException(shouldBeEntitled, null); - } - - private void checkNotEntitledException(boolean shouldBeEntitled, Exception e) { - if (e==null) { - if (shouldBeEntitled) return; - Assert.fail("entitlement should have been denied"); - } - - Exception notEntitled = Exceptions.getFirstThrowableOfType(e, NotEntitledException.class); - if (notEntitled==null) - throw Exceptions.propagate(e); - if (!shouldBeEntitled) { - /* denied, as it should have been */ - return; - } - Assert.fail("entitlement should have been granted, but was denied: "+e); - } - -} - http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/management/entitlement/EntitlementsTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/management/entitlement/EntitlementsTest.java b/core/src/test/java/brooklyn/management/entitlement/EntitlementsTest.java deleted file mode 100644 index 901c5ae..0000000 --- a/core/src/test/java/brooklyn/management/entitlement/EntitlementsTest.java +++ /dev/null @@ -1,207 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package brooklyn.management.entitlement; - -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertTrue; - -import org.apache.brooklyn.api.entity.Application; -import org.apache.brooklyn.api.entity.proxying.EntitySpec; -import org.apache.brooklyn.api.management.ManagementContext; -import org.apache.brooklyn.api.management.entitlement.EntitlementManager; -import org.apache.brooklyn.test.entity.LocalManagementContextForTests; -import org.testng.annotations.AfterMethod; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; - -import brooklyn.config.BrooklynProperties; -import brooklyn.entity.basic.ApplicationBuilder; -import brooklyn.entity.basic.BasicApplication; -import brooklyn.entity.basic.Entities; -import brooklyn.management.entitlement.Entitlements.EntityAndItem; -import brooklyn.management.entitlement.Entitlements.StringAndArgument; - -@Test -public class EntitlementsTest { - - private ManagementContext mgmt; - private Application app; - - @BeforeMethod - public void setup() { - mgmt = new LocalManagementContextForTests(BrooklynProperties.Factory.newEmpty()); - app = ApplicationBuilder.newManagedApp(EntitySpec.create(BasicApplication.class), mgmt); - } - - @AfterMethod - public void tearDown() { - if (app != null) Entities.destroyAll(app.getManagementContext()); - if (mgmt != null) Entities.destroyAll(mgmt); - app = null; - mgmt = null; - } - - // allowing - public void testAllowingRoot() { - EntitlementManager allowSeeEntity = Entitlements.FineGrainedEntitlements.allowing(Entitlements.ROOT); - assertTrue(allowSeeEntity.isEntitled(null, Entitlements.ROOT, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.SEE_ENTITY, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.INVOKE_EFFECTOR, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.SEE_SENSOR, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.DEPLOY_APPLICATION, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.SEE_ALL_SERVER_INFO, null)); - } - public void testAllowingSeeEntity() { - EntitlementManager allowSeeEntity = Entitlements.FineGrainedEntitlements.allowing(Entitlements.SEE_ENTITY); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.ROOT, null)); - assertTrue(allowSeeEntity.isEntitled(null, Entitlements.SEE_ENTITY, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.INVOKE_EFFECTOR, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.SEE_SENSOR, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.DEPLOY_APPLICATION, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.SEE_ALL_SERVER_INFO, null)); - } - public void testAllowingInvokeEffector() { - EntitlementManager allowSeeEntity = Entitlements.FineGrainedEntitlements.allowing(Entitlements.INVOKE_EFFECTOR); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.ROOT, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.SEE_ENTITY, null)); - assertTrue(allowSeeEntity.isEntitled(null, Entitlements.INVOKE_EFFECTOR, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.SEE_SENSOR, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.DEPLOY_APPLICATION, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.SEE_ALL_SERVER_INFO, null)); - } - public void testAllowingSeeSensor() { - EntitlementManager allowSeeEntity = Entitlements.FineGrainedEntitlements.allowing(Entitlements.SEE_SENSOR); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.ROOT, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.SEE_ENTITY, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.INVOKE_EFFECTOR, null)); - assertTrue(allowSeeEntity.isEntitled(null, Entitlements.SEE_SENSOR, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.DEPLOY_APPLICATION, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.SEE_ALL_SERVER_INFO, null)); - } - public void testAllowingDeployApplication() { - EntitlementManager allowSeeEntity = Entitlements.FineGrainedEntitlements.allowing(Entitlements.DEPLOY_APPLICATION); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.ROOT, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.SEE_ENTITY, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.INVOKE_EFFECTOR, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.SEE_SENSOR, null)); - assertTrue(allowSeeEntity.isEntitled(null, Entitlements.DEPLOY_APPLICATION, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.SEE_ALL_SERVER_INFO, null)); - } - public void testAllowingSeeAllServerInfo() { - EntitlementManager allowSeeEntity = Entitlements.FineGrainedEntitlements.allowing(Entitlements.SEE_ALL_SERVER_INFO); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.ROOT, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.SEE_ENTITY, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.INVOKE_EFFECTOR, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.SEE_SENSOR, null)); - assertFalse(allowSeeEntity.isEntitled(null, Entitlements.DEPLOY_APPLICATION, null)); - assertTrue(allowSeeEntity.isEntitled(null, Entitlements.SEE_ALL_SERVER_INFO, null)); - } - - // nonSecret - public void testSeeNonSecretSensors() { - EntitlementManager seeNonSecretSensors = Entitlements.FineGrainedEntitlements.seeNonSecretSensors(); - assertFalse(seeNonSecretSensors.isEntitled(null, Entitlements.SEE_SENSOR, Entitlements.EntityAndItem.of(app, "password"))); - assertTrue(seeNonSecretSensors.isEntitled(null, Entitlements.SEE_SENSOR, Entitlements.EntityAndItem.of(app, "any-sensor"))); - } - - // allOf - public void testAllOfWithSeeEntityAndSeeSensors() { - EntitlementManager allOf = Entitlements.FineGrainedEntitlements.allOf( - Entitlements.FineGrainedEntitlements.allowing(Entitlements.SEE_ENTITY), - Entitlements.FineGrainedEntitlements.allowing(Entitlements.SEE_SENSOR)); - assertFalse(allOf.isEntitled(null, Entitlements.ROOT, null)); - assertTrue(allOf.isEntitled(null, Entitlements.SEE_ENTITY, null)); - assertFalse(allOf.isEntitled(null, Entitlements.INVOKE_EFFECTOR, null)); - assertTrue(allOf.isEntitled(null, Entitlements.SEE_SENSOR, null)); - assertFalse(allOf.isEntitled(null, Entitlements.DEPLOY_APPLICATION, null)); - assertFalse(allOf.isEntitled(null, Entitlements.SEE_ALL_SERVER_INFO, null)); - } - - // anyOf - public void testAnyOfWithSeeEntityAndSeeSensors() { - EntitlementManager anyOf = Entitlements.FineGrainedEntitlements.anyOf( - Entitlements.FineGrainedEntitlements.allowing(Entitlements.SEE_ENTITY), - Entitlements.FineGrainedEntitlements.allowing(Entitlements.SEE_SENSOR)); - assertFalse(anyOf.isEntitled(null, Entitlements.ROOT, null)); - assertTrue(anyOf.isEntitled(null, Entitlements.SEE_ENTITY, null)); - assertFalse(anyOf.isEntitled(null, Entitlements.INVOKE_EFFECTOR, null)); - assertTrue(anyOf.isEntitled(null, Entitlements.SEE_SENSOR, null)); - assertFalse(anyOf.isEntitled(null, Entitlements.DEPLOY_APPLICATION, null)); - assertFalse(anyOf.isEntitled(null, Entitlements.SEE_ALL_SERVER_INFO, null)); - } - - // root - public void testGlobalRootEntitlement() { - EntitlementManager root = Entitlements.root(); - assertTrue(root.isEntitled(null, Entitlements.ROOT, null)); - assertTrue(root.isEntitled(null, Entitlements.SEE_ENTITY, null)); - assertTrue(root.isEntitled(null, Entitlements.INVOKE_EFFECTOR, null)); - assertTrue(root.isEntitled(null, Entitlements.SEE_SENSOR, null)); - assertTrue(root.isEntitled(null, Entitlements.DEPLOY_APPLICATION, null)); - assertTrue(root.isEntitled(null, Entitlements.SEE_ALL_SERVER_INFO, null)); - } - public void testAppSpecificRootEntitlement() { - EntitlementManager root = Entitlements.root(); - assertTrue(root.isEntitled(null, Entitlements.SEE_ENTITY, app)); - assertTrue(root.isEntitled(null, Entitlements.INVOKE_EFFECTOR, EntityAndItem.of(app, StringAndArgument.of("any-eff", null)))); - assertTrue(root.isEntitled(null, Entitlements.SEE_SENSOR, Entitlements.EntityAndItem.of(app, "any-sensor"))); - assertTrue(root.isEntitled(null, Entitlements.SEE_SENSOR, Entitlements.EntityAndItem.of(app, "password"))); - assertTrue(root.isEntitled(null, Entitlements.DEPLOY_APPLICATION, Entitlements.EntityAndItem.of(app, null))); - assertTrue(root.isEntitled(null, Entitlements.SEE_ALL_SERVER_INFO, null)); - } - - // minimal - public void testGlobalMinimalEntitlement() { - EntitlementManager minimal = Entitlements.minimal(); - assertFalse(minimal.isEntitled(null, Entitlements.ROOT, null)); - assertFalse(minimal.isEntitled(null, Entitlements.SEE_ENTITY, null)); - assertFalse(minimal.isEntitled(null, Entitlements.INVOKE_EFFECTOR, null)); - assertFalse(minimal.isEntitled(null, Entitlements.SEE_SENSOR, null)); - assertFalse(minimal.isEntitled(null, Entitlements.DEPLOY_APPLICATION, null)); - assertFalse(minimal.isEntitled(null, Entitlements.SEE_ALL_SERVER_INFO, null)); - } - public void testAppSpecificMinimalEntitlement() { - EntitlementManager minimal = Entitlements.minimal(); - assertFalse(minimal.isEntitled(null, Entitlements.SEE_ENTITY, app)); - assertFalse(minimal.isEntitled(null, Entitlements.INVOKE_EFFECTOR, EntityAndItem.of(app, StringAndArgument.of("any-eff", null)))); - assertFalse(minimal.isEntitled(null, Entitlements.SEE_SENSOR, Entitlements.EntityAndItem.of(app, "any-sensor"))); - assertFalse(minimal.isEntitled(null, Entitlements.SEE_SENSOR, Entitlements.EntityAndItem.of(app, "password"))); - assertFalse(minimal.isEntitled(null, Entitlements.DEPLOY_APPLICATION, Entitlements.EntityAndItem.of(app, null))); - assertFalse(minimal.isEntitled(null, Entitlements.SEE_ALL_SERVER_INFO, null)); - } - - // readOnly - public void testGlobalReadOnlyEntitlement() { - EntitlementManager readOnly = Entitlements.readOnly(); - assertFalse(readOnly.isEntitled(null, Entitlements.ROOT, null)); - assertTrue(readOnly.isEntitled(null, Entitlements.SEE_ENTITY, null)); - assertFalse(readOnly.isEntitled(null, Entitlements.INVOKE_EFFECTOR, null)); - assertFalse(readOnly.isEntitled(null, Entitlements.SEE_SENSOR, null)); - assertFalse(readOnly.isEntitled(null, Entitlements.DEPLOY_APPLICATION, null)); - assertFalse(readOnly.isEntitled(null, Entitlements.SEE_ALL_SERVER_INFO, null)); - } - public void testAppSpecificReadOnlyEntitlement() { - EntitlementManager readOnly = Entitlements.readOnly(); - assertTrue(readOnly.isEntitled(null, Entitlements.SEE_ENTITY, app)); - assertFalse(readOnly.isEntitled(null, Entitlements.INVOKE_EFFECTOR, EntityAndItem.of(app, StringAndArgument.of("any-eff", null)))); - assertTrue(readOnly.isEntitled(null, Entitlements.SEE_SENSOR, Entitlements.EntityAndItem.of(app, "any-sensor"))); - assertFalse(readOnly.isEntitled(null, Entitlements.SEE_SENSOR, Entitlements.EntityAndItem.of(app, "password"))); - assertFalse(readOnly.isEntitled(null, Entitlements.DEPLOY_APPLICATION, Entitlements.EntityAndItem.of(app, null))); - } -} http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/management/entitlement/EntityEntitlementTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/management/entitlement/EntityEntitlementTest.java b/core/src/test/java/brooklyn/management/entitlement/EntityEntitlementTest.java deleted file mode 100644 index b6bf5c1..0000000 --- a/core/src/test/java/brooklyn/management/entitlement/EntityEntitlementTest.java +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package brooklyn.management.entitlement; - -import org.apache.brooklyn.api.entity.Application; -import org.apache.brooklyn.api.entity.proxying.EntitySpec; -import org.apache.brooklyn.api.location.Location; -import org.apache.brooklyn.api.management.ManagementContext; -import org.apache.brooklyn.test.entity.LocalManagementContextForTests; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.testng.Assert; -import org.testng.annotations.AfterMethod; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableList; - -import brooklyn.config.BrooklynProperties; -import brooklyn.entity.basic.ApplicationBuilder; -import brooklyn.entity.basic.BasicApplication; -import brooklyn.entity.basic.Entities; -import brooklyn.management.entitlement.Entitlements.EntityAndItem; -import brooklyn.management.entitlement.Entitlements.StringAndArgument; -import brooklyn.management.internal.LocalManagementContext; -import brooklyn.util.config.ConfigBag; -import brooklyn.util.exceptions.Exceptions; - -public class EntityEntitlementTest { - - private static final Logger log = LoggerFactory.getLogger(EntityEntitlementTest.class); - - ManagementContext mgmt; - Application app; - - public void setup(ConfigBag cfg) { - mgmt = new LocalManagementContextForTests(BrooklynProperties.Factory.newEmpty().addFrom(cfg)); - app = ApplicationBuilder.newManagedApp(EntitySpec.create(BasicApplication.class), mgmt); - } - - @AfterMethod(alwaysRun=true) - public void tearDown() { - if (app != null) Entities.destroyAll(app.getManagementContext()); - if (mgmt != null) Entities.destroyAll(mgmt); - app = null; - mgmt = null; - } - - @Test - public void testDefaultRootAllows() { - setup(ConfigBag.newInstance()); - // default "root" access allows ROOT permission, and invoke effector, etc - Assert.assertTrue(mgmt.getEntitlementManager().isEntitled(null, Entitlements.ROOT, null)); - Assert.assertTrue(mgmt.getEntitlementManager().isEntitled(null, Entitlements.SEE_ENTITY, app)); - Assert.assertTrue(mgmt.getEntitlementManager().isEntitled(null, Entitlements.INVOKE_EFFECTOR, EntityAndItem.of(app, StringAndArgument.of("any-eff", null)))); - Assert.assertTrue(mgmt.getEntitlementManager().isEntitled(null, Entitlements.SEE_SENSOR, EntityAndItem.of(app, "any-sensor"))); - // and can invoke methods, without any user/login registered - confirmEffectorEntitlement(true); - confirmSensorEntitlement(true); - } - - @Test - public void testExplicitRootAllows() { - setup(ConfigBag.newInstance().configure(Entitlements.GLOBAL_ENTITLEMENT_MANAGER, "root")); - - Assert.assertTrue(mgmt.getEntitlementManager().isEntitled(null, Entitlements.ROOT, null)); - Assert.assertTrue(mgmt.getEntitlementManager().isEntitled(null, Entitlements.SEE_ENTITY, app)); - Assert.assertTrue(mgmt.getEntitlementManager().isEntitled(null, Entitlements.INVOKE_EFFECTOR, EntityAndItem.of(app, StringAndArgument.of("any-eff", null)))); - Assert.assertTrue(mgmt.getEntitlementManager().isEntitled(null, Entitlements.SEE_SENSOR, EntityAndItem.of(app, "any-sensor"))); - - confirmEffectorEntitlement(true); - confirmSensorEntitlement(true); - } - - @Test - public void testReadOnlyThrowsNotEntitled() { - try { - setup(ConfigBag.newInstance().configure(Entitlements.GLOBAL_ENTITLEMENT_MANAGER, "readonly")); - // eventually above call will fail in app creation, but for now the call below falls - ((BasicApplication)app).start(ImmutableList.<Location>of()); - tearDown(); - - Assert.fail("something should have been disallowed"); - } catch (Exception e) { - checkNotEntitledException(e); - } finally { - app = null; - if (mgmt!=null) ((LocalManagementContext)mgmt).terminate(); - mgmt = null; - } - } - - @Test(enabled=false) - // this test (and minimal below) currently work fine until tearDown, - // but then of course they don't have entitlement to call 'stop'; - // (as more entitlement checks are added app creation will fail). - // - // TODO these tests should set up a user with the permission, - // e.g. so system has root, but 'bob' has read-only, then we can test read-only; - // TODO rest api tests, as some of the permissions will only be enforced at REST level - public void testReadOnlyAllowsSome() { - setup(ConfigBag.newInstance().configure(Entitlements.GLOBAL_ENTITLEMENT_MANAGER, "readonly")); - - Assert.assertFalse(mgmt.getEntitlementManager().isEntitled(null, Entitlements.ROOT, null)); - Assert.assertTrue(mgmt.getEntitlementManager().isEntitled(null, Entitlements.SEE_ENTITY, app)); - Assert.assertFalse(mgmt.getEntitlementManager().isEntitled(null, Entitlements.INVOKE_EFFECTOR, EntityAndItem.of(app, StringAndArgument.of("any-eff", null)))); - Assert.assertTrue(mgmt.getEntitlementManager().isEntitled(null, Entitlements.SEE_SENSOR, EntityAndItem.of(app, "any-sensor"))); - - confirmEffectorEntitlement(false); - confirmSensorEntitlement(true); - } - - @Test(enabled=false) - public void testMinimalDisallows() { - setup(ConfigBag.newInstance().configure(Entitlements.GLOBAL_ENTITLEMENT_MANAGER, "minimal")); - - Assert.assertFalse(mgmt.getEntitlementManager().isEntitled(null, Entitlements.ROOT, null)); - Assert.assertFalse(mgmt.getEntitlementManager().isEntitled(null, Entitlements.SEE_ENTITY, app)); - Assert.assertFalse(mgmt.getEntitlementManager().isEntitled(null, Entitlements.INVOKE_EFFECTOR, EntityAndItem.of(app, StringAndArgument.of("any-eff", null)))); - Assert.assertFalse(mgmt.getEntitlementManager().isEntitled(null, Entitlements.SEE_SENSOR, EntityAndItem.of(app, "any-sensor"))); - - confirmEffectorEntitlement(false); - confirmSensorEntitlement(false); - } - - protected void confirmSensorEntitlement(boolean shouldSucceed) { - // TODO... based on above - // (though maybe we should test against REST API classes rather than lower level programmatic? - // TBC...) - log.warn("confirmSensorEntitlement still required!"); - } - - // TODO specific users tests - - protected void confirmEffectorEntitlement(boolean shouldSucceed) { - try { - ((BasicApplication)app).start(ImmutableList.<Location>of()); - checkNoException(shouldSucceed); - } catch (Exception e) { - checkNotEntitledException(shouldSucceed, e); - } - } - - private void checkNoException(boolean shouldBeEntitled) { - checkNotEntitledException(shouldBeEntitled, null); - } - - private void checkNotEntitledException(Exception e) { - checkNotEntitledException(false, e); - } - - private void checkNotEntitledException(boolean shouldBeEntitled, Exception e) { - if (e==null) { - if (shouldBeEntitled) return; - Assert.fail("entitlement should have been denied"); - } - - Exception notEntitled = Exceptions.getFirstThrowableOfType(e, NotEntitledException.class); - if (notEntitled==null) - throw Exceptions.propagate(e); - if (!shouldBeEntitled) { - /* denied, as it should have been */ - return; - } - Assert.fail("entitlement should have been granted, but was denied: "+e); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/management/entitlement/PerUserEntitlementManagerPropertiesTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/management/entitlement/PerUserEntitlementManagerPropertiesTest.java b/core/src/test/java/brooklyn/management/entitlement/PerUserEntitlementManagerPropertiesTest.java deleted file mode 100644 index b583c08..0000000 --- a/core/src/test/java/brooklyn/management/entitlement/PerUserEntitlementManagerPropertiesTest.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package brooklyn.management.entitlement; - -import java.io.IOException; -import java.io.StringReader; -import java.util.Properties; - -import org.testng.annotations.Test; - - -public class PerUserEntitlementManagerPropertiesTest extends AcmeEntitlementManagerTestFixture { - - protected void addGlobalConfig() throws IOException { - Properties moreProps = new Properties(); - moreProps.load(new StringReader( - "brooklyn.entitlements.global=brooklyn.management.entitlement.PerUserEntitlementManager\n" - + "brooklyn.entitlements.perUser.admin=root\n" - + "brooklyn.entitlements.perUser.support=readonly\n" - + "brooklyn.entitlements.perUser.metrics=minimal")); - configBag.putAll(moreProps); - } - - @Test - public void testOtherAuthorizedUserHasMinimalPermissions() { - checkUserHasMinimalPermissions("other"); - } - - @Test - public void testNullUserHasAllPermissions() { - checkUserHasAllPermissions(null); - } - - -} - http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/management/ha/HighAvailabilityManagerFileBasedTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/management/ha/HighAvailabilityManagerFileBasedTest.java b/core/src/test/java/brooklyn/management/ha/HighAvailabilityManagerFileBasedTest.java deleted file mode 100644 index 7091f08..0000000 --- a/core/src/test/java/brooklyn/management/ha/HighAvailabilityManagerFileBasedTest.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package brooklyn.management.ha; - -import java.io.File; - -import org.testng.annotations.AfterMethod; -import org.testng.annotations.Test; - -import brooklyn.entity.rebind.persister.FileBasedObjectStore; -import brooklyn.util.os.Os; - -@Test -public class HighAvailabilityManagerFileBasedTest extends HighAvailabilityManagerTestFixture { - - private File dir; - - protected FileBasedObjectStore newPersistenceObjectStore() { - if (dir!=null) - throw new IllegalStateException("Test does not support multiple object stores"); - dir = Os.newTempDir(getClass()); - return new FileBasedObjectStore(dir); - } - - @Override - @AfterMethod(alwaysRun=true) - public void tearDown() throws Exception { - super.tearDown(); - dir = Os.deleteRecursively(dir).asNullOrThrowing(); - } -} http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/management/ha/HighAvailabilityManagerInMemoryIntegrationTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/management/ha/HighAvailabilityManagerInMemoryIntegrationTest.java b/core/src/test/java/brooklyn/management/ha/HighAvailabilityManagerInMemoryIntegrationTest.java deleted file mode 100644 index a379faa..0000000 --- a/core/src/test/java/brooklyn/management/ha/HighAvailabilityManagerInMemoryIntegrationTest.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package brooklyn.management.ha; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.testng.annotations.Test; - -import brooklyn.entity.rebind.persister.InMemoryObjectStore; -import brooklyn.entity.rebind.persister.PersistenceObjectStore; -import brooklyn.util.time.Duration; -import brooklyn.util.time.Time; - -import com.google.common.base.Ticker; - -@Test(groups="Integration") -public class HighAvailabilityManagerInMemoryIntegrationTest extends HighAvailabilityManagerTestFixture { - - private static final Logger log = LoggerFactory.getLogger(HighAvailabilityManagerInMemoryIntegrationTest.class); - - @Override - protected PersistenceObjectStore newPersistenceObjectStore() { - return new InMemoryObjectStore(); - } - - @Override - protected Duration getPollPeriod() { - return Duration.millis(100); - } - - @Override - protected long tickerAdvance(Duration duration) { - log.info("sleeping for "+duration); - // actually sleep, in order to advance the local time ticker - Time.sleep(duration); - return super.tickerAdvance(duration); - } - - @Override - protected Ticker getRemoteTicker() { - // use real times - return null; - } - - @Override - @Test(groups="Integration", enabled=false, invocationCount=50) - public void testGetManagementPlaneStatusManyTimes() throws Exception { - } - - @Test(groups="Integration") - @Override - public void testGetManagementPlaneStatus() throws Exception { - super.testGetManagementPlaneStatus(); - } - - @Test(groups="Integration") - @Override - public void testDoesNotPromoteIfMasterTimeoutNotExpired() throws Exception { - super.testDoesNotPromoteIfMasterTimeoutNotExpired(); - } - - @Test(groups="Integration") - @Override - public void testGetManagementPlaneSyncStateDoesNotThrowNpeBeforePersisterSet() throws Exception { - super.testGetManagementPlaneSyncStateDoesNotThrowNpeBeforePersisterSet(); - } - - @Test(groups="Integration") - @Override - public void testGetManagementPlaneSyncStateInfersTimedOutNodeAsFailed() throws Exception { - super.testGetManagementPlaneSyncStateInfersTimedOutNodeAsFailed(); - } - - @Test(groups="Integration") - @Override - public void testPromotes() throws Exception { - super.testPromotes(); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6602f694/core/src/test/java/brooklyn/management/ha/HighAvailabilityManagerInMemoryTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/management/ha/HighAvailabilityManagerInMemoryTest.java b/core/src/test/java/brooklyn/management/ha/HighAvailabilityManagerInMemoryTest.java deleted file mode 100644 index ff86733..0000000 --- a/core/src/test/java/brooklyn/management/ha/HighAvailabilityManagerInMemoryTest.java +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package brooklyn.management.ha; - -import java.util.Collection; -import java.util.List; - -import org.apache.brooklyn.api.entity.Entity; -import org.apache.brooklyn.api.entity.proxying.EntitySpec; -import org.apache.brooklyn.api.location.Location; -import org.apache.brooklyn.api.location.NoMachinesAvailableException; -import org.apache.brooklyn.api.management.ha.HighAvailabilityMode; -import org.apache.brooklyn.test.entity.TestApplication; -import org.apache.brooklyn.test.entity.TestEntity; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.testng.Assert; -import org.testng.annotations.Test; - -import brooklyn.entity.basic.EntityInternal; -import brooklyn.entity.rebind.persister.InMemoryObjectStore; -import brooklyn.entity.rebind.persister.PersistenceObjectStore; - -import org.apache.brooklyn.location.basic.LocalhostMachineProvisioningLocation; -import org.apache.brooklyn.location.basic.SshMachineLocation; - -import brooklyn.management.internal.LocalManagementContext; -import brooklyn.util.collections.MutableList; - -import com.google.common.collect.Iterables; - -@Test -public class HighAvailabilityManagerInMemoryTest extends HighAvailabilityManagerTestFixture { - - private static final Logger log = LoggerFactory.getLogger(HighAvailabilityManagerInMemoryTest.class); - - protected PersistenceObjectStore newPersistenceObjectStore() { - return new InMemoryObjectStore(); - } - - public void testGetManagementPlaneStatus() throws Exception { - super.testGetManagementPlaneStatus(); - } - - // extra test that promoteToMaster doesn't interfere with what is managed - public void testLocationsStillManagedCorrectlyAfterDoublePromotion() throws NoMachinesAvailableException { - HighAvailabilityManagerImpl ha = (HighAvailabilityManagerImpl) managementContext.getHighAvailabilityManager(); - ha.start(HighAvailabilityMode.MASTER); - - TestApplication app = TestApplication.Factory.newManagedInstanceForTests(managementContext); - - LocalhostMachineProvisioningLocation l = app.newLocalhostProvisioningLocation(); - l.setConfig(TestEntity.CONF_NAME, "sample1"); - Assert.assertEquals(l.getConfig(TestEntity.CONF_NAME), "sample1"); - - SshMachineLocation l2 = l.obtain(); - Assert.assertEquals(l2.getConfig(TestEntity.CONF_NAME), "sample1"); - Assert.assertNotNull(l2.getParent(), "Parent not set after dodgy promoteToMaster"); - Assert.assertEquals(l2.getParent().getConfig(TestEntity.CONF_NAME), "sample1"); - - TestEntity entity = app.createAndManageChild(EntitySpec.create(TestEntity.class).location(l).location(l2)); - log.info("Entities managed are: "+managementContext.getEntityManager().getEntities()); - Collection<Location> le = entity.getLocations(); - log.info("Locs at entity are: "+le); - Collection<Location> lm = managementContext.getLocationManager().getLocations(); - log.info("Locs managed are: "+lm); - log.info(" objs: "+identities(lm)); - Assert.assertNotNull(entity.getManagementSupport().getManagementContext()); - Assert.assertNotNull( ((EntityInternal)app.getChildren().iterator().next()).getManagementSupport().getManagementContext()); - Assert.assertTrue( ((EntityInternal)app.getChildren().iterator().next()).getManagementSupport().isDeployed()); - checkEntitiesHealthy(app, entity); - - managementContext.getRebindManager().forcePersistNow(true, null); - log.info("Test deliberately doing unnecessary extra promoteToMaster"); - ha.promoteToMaster(); - - log.info("Entities managed are: "+managementContext.getEntityManager().getEntities()); - Collection<Location> lle = entity.getLocations(); - log.info("Locs at entity(old) are: "+lle); - log.info(" objs: "+identities(lle)); - // check entities -- the initial-full promotion previously re-created items, - // and plugged them in as children, but only managed the roots - checkEntitiesHealthy(app, entity); - - // assert what's in the location manager is accurate - Collection<Location> llmm = managementContext.getLocationManager().getLocations(); - log.info("Locs managed are: "+llmm); - log.info(" objs: "+identities(llmm)); - Assert.assertEquals(llmm, lm); - SshMachineLocation ll2a = Iterables.getOnlyElement(Iterables.filter(llmm, SshMachineLocation.class)); - Assert.assertEquals(ll2a.getConfig(TestEntity.CONF_NAME), "sample1"); - Assert.assertNotNull(ll2a.getParent(), "Parent not set after dodgy promoteToMaster"); - Assert.assertEquals(ll2a.getParent().getConfig(TestEntity.CONF_NAME), "sample1"); - - // and what's in the location manager is accurate - Entity ee = (Entity)managementContext.lookup(entity.getId()); - Collection<Location> llee = ee.getLocations(); - log.info("Locs at entity(lookup) are: "+llee); - log.info(" objs: "+identities(llee)); - SshMachineLocation ll2b = Iterables.getOnlyElement(Iterables.filter(llee, SshMachineLocation.class)); - Assert.assertEquals(ll2b.getConfig(TestEntity.CONF_NAME), "sample1"); - Assert.assertNotNull(ll2b.getParent(), "Parent not set after dodgy promoteToMaster"); - Assert.assertEquals(ll2b.getParent().getConfig(TestEntity.CONF_NAME), "sample1"); - } - - private void checkEntitiesHealthy(TestApplication app, TestEntity entity) { - Assert.assertNotNull(app.getManagementSupport().getManagementContext()); - Assert.assertTrue( app.getManagementSupport().getManagementContext().isRunning() ); - - Assert.assertNotNull(entity.getManagementSupport().getManagementContext()); - Assert.assertNotNull( ((EntityInternal)app.getChildren().iterator().next()).getManagementSupport().getManagementContext() ); - Assert.assertTrue( ((EntityInternal)app.getChildren().iterator().next()).getManagementSupport().isDeployed()); - Assert.assertTrue( ((EntityInternal)app.getChildren().iterator().next()).getManagementSupport().getManagementContext() instanceof LocalManagementContext ); - } - - @Test(groups="Integration", invocationCount=50) - public void testLocationsStillManagedCorrectlyAfterDoublePromotionManyTimes() throws NoMachinesAvailableException { - testLocationsStillManagedCorrectlyAfterDoublePromotion(); - } - - private List<String> identities(Collection<?> objs) { - List<String> result = MutableList.of(); - for (Object obj: objs) - result.add(Integer.toHexString(System.identityHashCode(obj))); - return result; - } - -}
