You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by sj...@apache.org on 2014/10/10 13:27:03 UTC
[2/4] git commit: Mark the wrapper app when instantiating from CAMP.
Mark the wrapper app when instantiating from CAMP.
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/e3c09ff2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/e3c09ff2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/e3c09ff2
Branch: refs/heads/master
Commit: e3c09ff2a7c0595d44bb4c6f2c4640ad40847eee
Parents: 48eb5cb
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Wed Oct 1 14:41:07 2014 +0300
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Fri Oct 10 13:53:59 2014 +0300
----------------------------------------------------------------------
.../internal/EntityManagementUtils.java | 9 +++++
.../BrooklynAssemblyTemplateInstantiator.java | 2 ++
.../camp/brooklyn/EntitiesYamlTest.java | 37 ++++++++++++++++++++
3 files changed, 48 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e3c09ff2/core/src/main/java/brooklyn/management/internal/EntityManagementUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/management/internal/EntityManagementUtils.java b/core/src/main/java/brooklyn/management/internal/EntityManagementUtils.java
index 516bdf9..089fd33 100644
--- a/core/src/main/java/brooklyn/management/internal/EntityManagementUtils.java
+++ b/core/src/main/java/brooklyn/management/internal/EntityManagementUtils.java
@@ -25,6 +25,7 @@ import io.brooklyn.camp.spi.instantiate.AssemblyTemplateInstantiator;
import java.io.StringReader;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import java.util.concurrent.Callable;
@@ -35,9 +36,11 @@ import org.slf4j.LoggerFactory;
import brooklyn.camp.brooklyn.api.AssemblyTemplateSpecInstantiator;
import brooklyn.config.BrooklynServerConfig;
+import brooklyn.config.ConfigKey;
import brooklyn.entity.Application;
import brooklyn.entity.Entity;
import brooklyn.entity.basic.BrooklynTaskTags;
+import brooklyn.entity.basic.ConfigKeys;
import brooklyn.entity.basic.Entities;
import brooklyn.entity.basic.EntityFunctions;
import brooklyn.entity.basic.EntityLocal;
@@ -67,6 +70,12 @@ public class EntityManagementUtils {
private static final Logger log = LoggerFactory.getLogger(EntityManagementUtils.class);
+ /**
+ * A marker config value which indicates that an application was created automatically
+ * to allow the management of a non-app entity.
+ */
+ public static final ConfigKey<Boolean> WRAPPER_APP_MARKER = ConfigKeys.newBooleanConfigKey("brooklyn.wrapper_app");
+
/** creates an application from the given app spec, managed by the given management context */
public static <T extends Application> T createUnstarted(ManagementContext mgmt, EntitySpec<T> spec) {
T app = mgmt.getEntityManager().createEntity(spec);
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e3c09ff2/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynAssemblyTemplateInstantiator.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynAssemblyTemplateInstantiator.java b/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynAssemblyTemplateInstantiator.java
index ca8e750..2383a27 100644
--- a/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynAssemblyTemplateInstantiator.java
+++ b/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynAssemblyTemplateInstantiator.java
@@ -109,6 +109,8 @@ public class BrooklynAssemblyTemplateInstantiator implements AssemblyTemplateSpe
// if promoted, apply the transformations done to the app
// (transformations will be done by the resolveSpec call above, but we are collapsing oldApp so transfer to app=newApp)
EntityManagementUtils.collapseSpec(oldApp, app);
+ } else {
+ app.configure(EntityManagementUtils.WRAPPER_APP_MARKER, Boolean.TRUE);
}
return app;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e3c09ff2/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/EntitiesYamlTest.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/EntitiesYamlTest.java b/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/EntitiesYamlTest.java
index 8529163..5c3a76f 100644
--- a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/EntitiesYamlTest.java
+++ b/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/EntitiesYamlTest.java
@@ -20,6 +20,7 @@ package io.brooklyn.camp.brooklyn;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertNull;
import static org.testng.Assert.assertTrue;
import io.brooklyn.camp.brooklyn.spi.dsl.methods.BrooklynDslCommon;
import io.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent;
@@ -43,6 +44,7 @@ import brooklyn.entity.Application;
import brooklyn.entity.Effector;
import brooklyn.entity.Entity;
import brooklyn.entity.basic.Attributes;
+import brooklyn.entity.basic.BasicApplication;
import brooklyn.entity.basic.BasicEntity;
import brooklyn.entity.basic.ConfigKeys;
import brooklyn.entity.basic.Entities;
@@ -58,6 +60,7 @@ import brooklyn.event.AttributeSensor;
import brooklyn.event.basic.Sensors;
import brooklyn.location.Location;
import brooklyn.management.Task;
+import brooklyn.management.internal.EntityManagementUtils;
import brooklyn.management.internal.EntityManagerInternal;
import brooklyn.test.entity.TestEntity;
import brooklyn.test.entity.TestEntityImpl;
@@ -761,6 +764,40 @@ public class EntitiesYamlTest extends AbstractYamlTest {
}
}
+ @Test
+ public void testWrapperAppMarkerExists() throws Exception {
+ Entity entity = createAndStartApplication(
+ "services:",
+ "- type: " + BasicEntity.class.getName());
+ assertTrue(entity.getConfig(EntityManagementUtils.WRAPPER_APP_MARKER));
+ }
+
+ @Test
+ public void testWrapperAppMarkerDoesntExist() throws Exception {
+ Entity entity = createAndStartApplication(
+ "services:",
+ "- type: " + BasicApplication.class.getName());
+ assertNull(entity.getConfig(EntityManagementUtils.WRAPPER_APP_MARKER));
+ }
+
+ @Test
+ public void testWrapperAppMarkerForced() throws Exception {
+ Entity entity = createAndStartApplication(
+ "wrappedApp: true",
+ "services:",
+ "- type: " + BasicApplication.class.getName());
+ assertTrue(entity.getConfig(EntityManagementUtils.WRAPPER_APP_MARKER));
+ }
+
+ @Test
+ public void testWrapperAppMarkerUnforced() throws Exception {
+ Entity entity = createAndStartApplication(
+ "wrappedApp: false",
+ "services:",
+ "- type: " + BasicApplication.class.getName());
+ assertNull(entity.getConfig(EntityManagementUtils.WRAPPER_APP_MARKER));
+ }
+
@Override
protected Logger getLogger() {
return log;