Set subnet_address if has HasNetworkAddresses.privateAddresses
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/4980904f Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/4980904f Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/4980904f Branch: refs/heads/master Commit: 4980904fe1a93f5b5580484ccc5124d2a68152c4 Parents: 9633236 Author: Aled Sage <[email protected]> Authored: Fri Jul 24 19:15:43 2015 -0700 Committer: Aled Sage <[email protected]> Committed: Mon Jul 27 13:50:00 2015 +0100 ---------------------------------------------------------------------- core/src/main/java/brooklyn/location/basic/Machines.java | 11 +++++++++++ 1 file changed, 11 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4980904f/core/src/main/java/brooklyn/location/basic/Machines.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/location/basic/Machines.java b/core/src/main/java/brooklyn/location/basic/Machines.java index 103870f..7c143a8 100644 --- a/core/src/main/java/brooklyn/location/basic/Machines.java +++ b/core/src/main/java/brooklyn/location/basic/Machines.java @@ -21,16 +21,20 @@ package brooklyn.location.basic; import java.net.InetAddress; import java.util.Collection; import java.util.Iterator; +import java.util.Set; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.common.collect.Iterables; + import brooklyn.entity.Entity; import brooklyn.entity.basic.Attributes; import brooklyn.location.Location; import brooklyn.location.MachineLocation; import brooklyn.location.basic.LocalhostMachineProvisioningLocation.LocalhostMachine; import brooklyn.util.guava.Maybe; +import brooklyn.util.net.HasNetworkAddresses; /** utilities for working with MachineLocations */ public class Machines { @@ -38,6 +42,7 @@ public class Machines { private static final Logger log = LoggerFactory.getLogger(Machines.class); public static Maybe<String> getSubnetHostname(Location where) { + // TODO Should we look at HasNetworkAddresses? But that's not a hostname. String hostname = null; if (where instanceof HasSubnetHostname) { hostname = ((HasSubnetHostname) where).getSubnetHostname(); @@ -58,6 +63,12 @@ public class Machines { if (where instanceof HasSubnetHostname) { result = ((HasSubnetHostname) where).getSubnetIp(); } + if (where instanceof HasNetworkAddresses) { + Set<String> privateAddrs = ((HasNetworkAddresses) where).getPrivateAddresses(); + if (privateAddrs.size() > 0) { + result = Iterables.get(privateAddrs, 0); + } + } if (result == null && where instanceof MachineLocation) { InetAddress addr = ((MachineLocation) where).getAddress(); if (addr != null) result = addr.getHostAddress();
