Repository: incubator-brooklyn Updated Branches: refs/heads/master 5fa14442d -> 78072b294
fixes for BrooklynNode, java appservers, and load balancers to run in clocker/subnets (using subnet hostname rather than public hostname) Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/f68bf830 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/f68bf830 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/f68bf830 Branch: refs/heads/master Commit: f68bf830ffee6bd98dc6455df73db1f1faf29f12 Parents: e4b5f24 Author: Alex Heneveld <[email protected]> Authored: Tue Mar 17 10:37:21 2015 +0000 Committer: Alex Heneveld <[email protected]> Committed: Wed Mar 18 22:08:19 2015 +0000 ---------------------------------------------------------------------- .../entity/brooklynnode/BrooklynNodeImpl.java | 25 ++++++-------------- .../entity/proxy/AbstractControllerImpl.java | 7 +++--- .../brooklyn/entity/proxy/LoadBalancer.java | 2 +- .../entity/webapp/JavaWebAppSshDriver.java | 4 ++-- 4 files changed, 14 insertions(+), 24 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f68bf830/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNodeImpl.java ---------------------------------------------------------------------- diff --git a/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNodeImpl.java b/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNodeImpl.java index 1f9b869..224215a 100644 --- a/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNodeImpl.java +++ b/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNodeImpl.java @@ -18,7 +18,6 @@ */ package brooklyn.entity.brooklynnode; -import java.net.InetAddress; import java.net.URI; import java.util.List; import java.util.Map; @@ -53,6 +52,7 @@ import brooklyn.event.feed.http.HttpFeed; import brooklyn.event.feed.http.HttpPollConfig; import brooklyn.event.feed.http.HttpValueFunctions; import brooklyn.event.feed.http.JsonFunctions; +import brooklyn.location.access.BrooklynAccessUtils; import brooklyn.management.Task; import brooklyn.management.TaskAdaptable; import brooklyn.management.ha.ManagementNodeState; @@ -76,6 +76,7 @@ import brooklyn.util.time.Time; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; +import com.google.common.net.HostAndPort; import com.google.gson.Gson; public class BrooklynNodeImpl extends SoftwareProcessImpl implements BrooklynNode { @@ -385,32 +386,20 @@ public class BrooklynNodeImpl extends SoftwareProcessImpl implements BrooklynNod // TODO what sensors should we poll? ConfigToAttributes.apply(this); - InetAddress address = getAttribute(WEB_CONSOLE_PUBLIC_ADDRESS); - String host; - if (address == null) { - if (getAttribute(NO_WEB_CONSOLE_AUTHENTICATION)) { - host = "localhost"; // Because of --noConsoleSecurity option - } else { - host = getAttribute(HOSTNAME); - } - } else { - host = address.getHostName(); - } - URI webConsoleUri; if (isHttpProtocolEnabled("http")) { int port = getConfig(PORT_MAPPER).apply(getAttribute(HTTP_PORT)); - webConsoleUri = URI.create(String.format("http://%s:%s", host, port)); - setAttribute(WEB_CONSOLE_URI, webConsoleUri); + HostAndPort accessible = BrooklynAccessUtils.getBrooklynAccessibleAddress(this, port); + webConsoleUri = URI.create(String.format("http://%s:%s", accessible.getHostText(), accessible.getPort())); } else if (isHttpProtocolEnabled("https")) { int port = getConfig(PORT_MAPPER).apply(getAttribute(HTTPS_PORT)); - webConsoleUri = URI.create(String.format("https://%s:%s", host, port)); - setAttribute(WEB_CONSOLE_URI, webConsoleUri); + HostAndPort accessible = BrooklynAccessUtils.getBrooklynAccessibleAddress(this, port); + webConsoleUri = URI.create(String.format("https://%s:%s", accessible.getHostText(), accessible.getPort())); } else { // web-console is not enabled - setAttribute(WEB_CONSOLE_URI, null); webConsoleUri = null; } + setAttribute(WEB_CONSOLE_URI, webConsoleUri); connectServiceUpIsRunning(); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f68bf830/software/webapp/src/main/java/brooklyn/entity/proxy/AbstractControllerImpl.java ---------------------------------------------------------------------- diff --git a/software/webapp/src/main/java/brooklyn/entity/proxy/AbstractControllerImpl.java b/software/webapp/src/main/java/brooklyn/entity/proxy/AbstractControllerImpl.java index c7f518e..297364f 100644 --- a/software/webapp/src/main/java/brooklyn/entity/proxy/AbstractControllerImpl.java +++ b/software/webapp/src/main/java/brooklyn/entity/proxy/AbstractControllerImpl.java @@ -43,6 +43,7 @@ import brooklyn.entity.trait.Startable; import brooklyn.event.AttributeSensor; import brooklyn.event.feed.ConfigToAttributes; import brooklyn.location.access.BrooklynAccessUtils; +import brooklyn.location.basic.Machines; import brooklyn.management.Task; import brooklyn.policy.Policy; import brooklyn.policy.PolicySpec; @@ -276,7 +277,7 @@ public abstract class AbstractControllerImpl extends SoftwareProcessImpl impleme port = accessible.getPort(); } } - if (domain==null) domain = getAttribute(LoadBalancer.HOSTNAME); + if (domain==null) domain = Machines.findSubnetHostname(this).orNull(); if (domain==null) return null; return protocol+"://"+domain+":"+port+"/"+getConfig(SERVICE_UP_URL_PATH); } @@ -301,8 +302,8 @@ public abstract class AbstractControllerImpl extends SoftwareProcessImpl impleme protected void computePortsAndUrls() { AttributeSensor<String> hostAndPortSensor = getConfig(HOST_AND_PORT_SENSOR); - Maybe<Object> hostnameSensor = getConfigRaw(HOSTNAME_SENSOR, true); - Maybe<Object> portSensor = getConfigRaw(PORT_NUMBER_SENSOR, true); + Maybe<Object> hostnameSensor = config().getRaw(HOSTNAME_SENSOR); + Maybe<Object> portSensor = config().getRaw(PORT_NUMBER_SENSOR); if (hostAndPortSensor != null) { checkState(!hostnameSensor.isPresent() && !portSensor.isPresent(), "Must not set %s and either of %s or %s", HOST_AND_PORT_SENSOR, HOSTNAME_SENSOR, PORT_NUMBER_SENSOR); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f68bf830/software/webapp/src/main/java/brooklyn/entity/proxy/LoadBalancer.java ---------------------------------------------------------------------- diff --git a/software/webapp/src/main/java/brooklyn/entity/proxy/LoadBalancer.java b/software/webapp/src/main/java/brooklyn/entity/proxy/LoadBalancer.java index 32e2fc9..415dea4 100644 --- a/software/webapp/src/main/java/brooklyn/entity/proxy/LoadBalancer.java +++ b/software/webapp/src/main/java/brooklyn/entity/proxy/LoadBalancer.java @@ -73,7 +73,7 @@ public interface LoadBalancer extends Entity, Startable { @SuppressWarnings("serial") @SetFromFlag("hostnameSensor") public static final BasicAttributeSensorAndConfigKey<AttributeSensor<String>> HOSTNAME_SENSOR = new BasicAttributeSensorAndConfigKey<AttributeSensor<String>>( - new TypeToken<AttributeSensor<String>>() {}, "member.sensor.hostname", "Hostname/IP sensor on members (defaults to host.name; not supported in all implementations)", Attributes.HOSTNAME); + new TypeToken<AttributeSensor<String>>() {}, "member.sensor.hostname", "Hostname/IP sensor on members (defaults to host.subnet.hostname; not supported in all implementations)", Attributes.SUBNET_HOSTNAME); /** sensor for hostname to forward to on target entities */ @SuppressWarnings("serial") http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f68bf830/software/webapp/src/main/java/brooklyn/entity/webapp/JavaWebAppSshDriver.java ---------------------------------------------------------------------- diff --git a/software/webapp/src/main/java/brooklyn/entity/webapp/JavaWebAppSshDriver.java b/software/webapp/src/main/java/brooklyn/entity/webapp/JavaWebAppSshDriver.java index 9916711..7fd32c9 100644 --- a/software/webapp/src/main/java/brooklyn/entity/webapp/JavaWebAppSshDriver.java +++ b/software/webapp/src/main/java/brooklyn/entity/webapp/JavaWebAppSshDriver.java @@ -89,11 +89,11 @@ public abstract class JavaWebAppSshDriver extends JavaSoftwareProcessSshDriver i if (isProtocolEnabled("https")) { Integer port = getHttpsPort(); checkNotNull(port, "HTTPS_PORT sensors not set; is an acceptable port available?"); - return String.format("https://%s:%s/", getHostname(), port); + return String.format("https://%s:%s/", getSubnetHostname(), port); } else if (isProtocolEnabled("http")) { Integer port = getHttpPort(); checkNotNull(port, "HTTP_PORT sensors not set; is an acceptable port available?"); - return String.format("http://%s:%s/", getHostname(), port); + return String.format("http://%s:%s/", getSubnetHostname(), port); } else { throw new IllegalStateException("HTTP and HTTPS protocols not enabled for "+entity+"; enabled protocols are "+getEnabledProtocols()); }
