Return-Path: X-Original-To: apmail-brooklyn-commits-archive@minotaur.apache.org Delivered-To: apmail-brooklyn-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id A195417C2E for ; Mon, 6 Oct 2014 19:12:03 +0000 (UTC) Received: (qmail 75272 invoked by uid 500); 6 Oct 2014 19:12:03 -0000 Delivered-To: apmail-brooklyn-commits-archive@brooklyn.apache.org Received: (qmail 75235 invoked by uid 500); 6 Oct 2014 19:12:03 -0000 Mailing-List: contact commits-help@brooklyn.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@brooklyn.incubator.apache.org Delivered-To: mailing list commits@brooklyn.incubator.apache.org Received: (qmail 75204 invoked by uid 99); 6 Oct 2014 19:12:03 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 06 Oct 2014 19:12:03 +0000 X-ASF-Spam-Status: No, hits=-1999.0 required=5.0 tests=ALL_TRUSTED,HK_RANDOM_FROM,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO mail.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with SMTP; Mon, 06 Oct 2014 19:12:01 +0000 Received: (qmail 74903 invoked by uid 99); 6 Oct 2014 19:11:41 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 06 Oct 2014 19:11:41 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 6A9508B3168; Mon, 6 Oct 2014 19:11:41 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: grkvlt@apache.org To: commits@brooklyn.incubator.apache.org Date: Mon, 06 Oct 2014 19:11:44 -0000 Message-Id: <3442360158924b4d8e30e36f55bda65e@git.apache.org> In-Reply-To: <16fa8d7b09c04189a753905f27ff8c12@git.apache.org> References: <16fa8d7b09c04189a753905f27ff8c12@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [04/10] git commit: Create a BrooklynNode entity when starting the console X-Virus-Checked: Checked by ClamAV on apache.org Create a BrooklynNode entity when starting the console Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/abceb4dd Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/abceb4dd Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/abceb4dd Branch: refs/heads/master Commit: abceb4dd847857ea346b6c8bd7d02757d24ecd4a Parents: e29c473 Author: Andrew Kennedy Authored: Sat Sep 27 18:40:49 2014 +0100 Committer: Andrew Kennedy Committed: Mon Oct 6 15:52:57 2014 +0100 ---------------------------------------------------------------------- usage/dist/src/main/dist/bin/brooklyn | 6 ++-- .../brooklyn/launcher/BrooklynLauncher.java | 37 ++++++++++++++++++-- 2 files changed, 37 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/abceb4dd/usage/dist/src/main/dist/bin/brooklyn ---------------------------------------------------------------------- diff --git a/usage/dist/src/main/dist/bin/brooklyn b/usage/dist/src/main/dist/bin/brooklyn index ae8b659..c65b362 100755 --- a/usage/dist/src/main/dist/bin/brooklyn +++ b/usage/dist/src/main/dist/bin/brooklyn @@ -22,13 +22,12 @@ #set -x # debug -ROOT=$(cd "$(dirname "$0")/.." && pwd -P) - # discover BROOKLYN_HOME if not set, by attempting to resolve absolute path of this command (brooklyn) +ROOT=$(cd "$(dirname "$0")/.." && pwd -P) if [ -z "$BROOKLYN_HOME" ] ; then BROOKLYN_HOME=$(cd "$(dirname "$(readlink -f "$0" 2> /dev/null || readlink "$0" 2> /dev/null || echo "$0")")/.." && pwd) fi - +export ROOT BROOKLYN_HOME # use default memory settings, if not specified if [ -z "${JAVA_OPTS}" ] ; then @@ -41,6 +40,7 @@ INITIAL_CLASSPATH=${BROOKLYN_HOME}/conf:${BROOKLYN_HOME}/lib/patch/*:${BROOKLYN_ if [ ! -z "${BROOKLYN_CLASSPATH}" ]; then INITIAL_CLASSPATH=${BROOKLYN_CLASSPATH}:${INITIAL_CLASSPATH} fi +export INITIAL_CLASSPATH # force resolution of localhost to be loopback, otherwise we hit problems # TODO should be changed in code http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/abceb4dd/usage/launcher/src/main/java/brooklyn/launcher/BrooklynLauncher.java ---------------------------------------------------------------------- diff --git a/usage/launcher/src/main/java/brooklyn/launcher/BrooklynLauncher.java b/usage/launcher/src/main/java/brooklyn/launcher/BrooklynLauncher.java index a26e9d1..24f5c8d 100644 --- a/usage/launcher/src/main/java/brooklyn/launcher/BrooklynLauncher.java +++ b/usage/launcher/src/main/java/brooklyn/launcher/BrooklynLauncher.java @@ -19,8 +19,7 @@ package brooklyn.launcher; import static com.google.common.base.Preconditions.checkNotNull; -import brooklyn.catalog.CatalogLoadMode; -import brooklyn.internal.BrooklynFeatureEnablement; + import io.brooklyn.camp.CampPlatform; import io.brooklyn.camp.brooklyn.BrooklynCampPlatformLauncherNoServer; import io.brooklyn.camp.brooklyn.spi.creation.BrooklynAssemblyTemplateInstantiator; @@ -31,7 +30,6 @@ import java.io.Closeable; import java.io.File; import java.io.StringReader; import java.net.InetAddress; -import java.net.URI; import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedHashMap; @@ -44,6 +42,7 @@ import javax.annotation.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import brooklyn.catalog.CatalogLoadMode; import brooklyn.config.BrooklynProperties; import brooklyn.config.BrooklynServerConfig; import brooklyn.config.BrooklynServiceAttributes; @@ -52,7 +51,9 @@ import brooklyn.entity.Application; import brooklyn.entity.basic.ApplicationBuilder; import brooklyn.entity.basic.BrooklynShutdownHooks; import brooklyn.entity.basic.Entities; +import brooklyn.entity.basic.SoftwareProcess; import brooklyn.entity.basic.StartableApplication; +import brooklyn.entity.brooklynnode.BrooklynNode; import brooklyn.entity.proxying.EntitySpec; import brooklyn.entity.rebind.PersistenceExceptionHandler; import brooklyn.entity.rebind.PersistenceExceptionHandlerImpl; @@ -64,9 +65,11 @@ import brooklyn.entity.rebind.persister.PersistMode; import brooklyn.entity.rebind.persister.PersistenceObjectStore; import brooklyn.entity.rebind.persister.jclouds.JcloudsBlobStoreBasedObjectStore; import brooklyn.entity.trait.Startable; +import brooklyn.internal.BrooklynFeatureEnablement; import brooklyn.launcher.config.StopWhichAppsOnShutdown; import brooklyn.location.Location; import brooklyn.location.PortRange; +import brooklyn.location.basic.LocalhostMachineProvisioningLocation.LocalhostMachine; import brooklyn.location.basic.PortRanges; import brooklyn.management.ManagementContext; import brooklyn.management.ha.HighAvailabilityManager; @@ -94,6 +97,7 @@ import brooklyn.util.text.Strings; import brooklyn.util.time.Duration; import brooklyn.util.time.Time; +import com.google.common.base.Splitter; import com.google.common.base.Stopwatch; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; @@ -535,6 +539,7 @@ public class BrooklynLauncher { try { createApps(); startApps(); + startBrooklynNode(); } catch (Exception e) { handleSubsystemStartupError(ignoreAppErrors, "managed apps", e); } @@ -809,6 +814,32 @@ public class BrooklynLauncher { } } + protected void startBrooklynNode() { + final String classpath = System.getenv("INITIAL_CLASSPATH"); + if (classpath == null || Strings.isBlank(classpath)) { + LOG.warn("Cannot find INITIAL_CLASSPATH environment variable, skipping BrooklynNode entity creation"); + return; + } + ApplicationBuilder brooklyn = new ApplicationBuilder() { + @Override + protected void doBuild() { + addChild(EntitySpec.create(BrooklynNode.class) + .configure(SoftwareProcess.ENTITY_STARTED, true) + .configure(SoftwareProcess.RUN_DIR, System.getenv("ROOT")) + .configure(SoftwareProcess.INSTALL_DIR, System.getenv("BROOKLYN_HOME")) + .configure(BrooklynNode.ENABLED_HTTP_PROTOCOLS, ImmutableList.of(webServer.getHttpsEnabled() ? "https" : "http")) + .configure(webServer.getHttpsEnabled() ? BrooklynNode.HTTPS_PORT : BrooklynNode.HTTP_PORT, PortRanges.fromInteger(webServer.getActualPort())) + .configure(BrooklynNode.WEB_CONSOLE_BIND_ADDRESS, bindAddress) + .configure(BrooklynNode.WEB_CONSOLE_PUBLIC_ADDRESS, publicAddress) + .configure(BrooklynNode.CLASSPATH, Splitter.on(":").splitToList(classpath)) + .displayName("Brooklyn Console")); + } + }; + brooklyn.appDisplayName("Brooklyn") + .manage(managementContext) + .start(ImmutableList.of(new LocalhostMachine())); + } + protected Application getAppFromYaml(String input) { AssemblyTemplate at = campPlatform.pdp().registerDeploymentPlan(new StringReader(input)); BrooklynAssemblyTemplateInstantiator instantiator;