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/07/18 18:34:18 UTC

[09/13] git commit: support effector parameters which are maps (@sjcorbett just did this also; now this commit simply adds a test for this)

support effector parameters which are maps (@sjcorbett just did this also; now this commit simply adds a test for this)


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

Branch: refs/heads/master
Commit: cefcda3b862fbbc0ff0008daadf988f8c361522a
Parents: 8569120
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Fri Jul 18 00:39:24 2014 -0400
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Fri Jul 18 12:26:20 2014 -0400

----------------------------------------------------------------------
 .../brooklynnode/BrooklynNodeRestTest.java      | 55 +++++++++++++++++++-
 1 file changed, 54 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cefcda3b/usage/launcher/src/test/java/brooklyn/entity/brooklynnode/BrooklynNodeRestTest.java
----------------------------------------------------------------------
diff --git a/usage/launcher/src/test/java/brooklyn/entity/brooklynnode/BrooklynNodeRestTest.java b/usage/launcher/src/test/java/brooklyn/entity/brooklynnode/BrooklynNodeRestTest.java
index 2cd97f0..2a3816b 100644
--- a/usage/launcher/src/test/java/brooklyn/entity/brooklynnode/BrooklynNodeRestTest.java
+++ b/usage/launcher/src/test/java/brooklyn/entity/brooklynnode/BrooklynNodeRestTest.java
@@ -1,7 +1,27 @@
+/*
+ * 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.entity.brooklynnode;
 
 import java.net.URI;
+import java.util.concurrent.Callable;
 
+import org.apache.http.client.HttpClient;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.testng.Assert;
@@ -19,12 +39,17 @@ import brooklyn.launcher.camp.SimpleYamlLauncher;
 import brooklyn.location.Location;
 import brooklyn.management.Task;
 import brooklyn.test.EntityTestUtils;
+import brooklyn.test.HttpTestUtils;
 import brooklyn.test.entity.TestApplication;
 import brooklyn.test.entity.TestEntity;
+import brooklyn.util.collections.Jsonya;
 import brooklyn.util.collections.MutableMap;
 import brooklyn.util.collections.MutableSet;
 import brooklyn.util.config.ConfigBag;
+import brooklyn.util.http.HttpTool;
+import brooklyn.util.http.HttpToolResponse;
 import brooklyn.util.net.Urls;
+import brooklyn.util.repeat.Repeater;
 import brooklyn.util.time.Duration;
 
 import com.google.common.collect.Iterables;
@@ -40,7 +65,7 @@ public class BrooklynNodeRestTest {
     // so feels worth it to have as a unit test
     @Test
     public void testBrooklynNodeRestDeployAndMirror() {
-        SimpleYamlLauncher l = new SimpleYamlLauncherForTests();
+        final SimpleYamlLauncher l = new SimpleYamlLauncherForTests();
         try {
             TestApplication app = ApplicationBuilder.newManagedApp(TestApplication.class, l.getManagementContext());
 
@@ -84,6 +109,34 @@ public class BrooklynNodeRestTest {
             EntityTestUtils.assertAttributeEqualsEventually(mirror, TestEntity.NAME, "foo");
             log.info("Mirror successfully validated");
             
+            // also try deploying by invoking deploy through json
+            // (catch issues when effector params are map)
+            HttpClient client = HttpTool.httpClientBuilder().build();
+            HttpToolResponse result = HttpTool.httpPost(client, URI.create(Urls.mergePaths(uri.toString(), "/v1/applications/"+app.getId()+"/entities/"+bn.getId()
+                    +"/effectors/deployBlueprint")), 
+                MutableMap.of(com.google.common.net.HttpHeaders.CONTENT_TYPE, "application/json"), 
+                Jsonya.newInstance()
+                    .put("blueprintType", TestApplication.class.getName())
+                    .put("blueprintConfig", MutableMap.of(TestEntity.CONF_NAME.getName(), "foo"))
+                .toString().getBytes());
+            log.info("Deploy effector invoked, result: "+result);
+            HttpTestUtils.assertHealthyStatusCode( result.getResponseCode() );
+            
+            Repeater.create().every(Duration.millis(10)).until(new Callable<Boolean>() {
+                @Override
+                public Boolean call() throws Exception {
+                    return l.getManagementContext().getApplications().size() == 3;
+                }
+            }).limitTimeTo(Duration.TEN_SECONDS);
+            
+            apps = MutableSet.copyOf( l.getManagementContext().getApplications() );
+            apps.removeAll( MutableSet.of(app, newApp) );
+            Application newApp2 = Iterables.getOnlyElement(apps);
+            Entities.dumpInfo(newApp2);
+            
+            EntityTestUtils.assertAttributeEqualsEventually(newApp2, Attributes.SERVICE_UP, true);
+            Assert.assertEquals(newApp2.getConfig(TestEntity.CONF_NAME), "foo");
+            
         } finally {
             l.destroyAll();
         }