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());
         }

Reply via email to