create configKey ADDITIONAL_INBOUND_PORTS to augment getRequiredOpenPorts()
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/74232dff Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/74232dff Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/74232dff Branch: refs/heads/master Commit: 74232dff9d561d7f74ea726841ab7da2f0a9633d Parents: 18b6c71 Author: Robert Moss <[email protected]> Authored: Sun Apr 12 19:35:34 2015 +0100 Committer: Robert Moss <[email protected]> Committed: Sun Apr 12 19:35:34 2015 +0100 ---------------------------------------------------------------------- .../location/cloud/CloudLocationConfig.java | 5 ++++ .../entity/basic/SoftwareProcessImpl.java | 25 +++++++------------- 2 files changed, 14 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/74232dff/core/src/main/java/brooklyn/location/cloud/CloudLocationConfig.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/location/cloud/CloudLocationConfig.java b/core/src/main/java/brooklyn/location/cloud/CloudLocationConfig.java index 4d868ae..ad19f39 100644 --- a/core/src/main/java/brooklyn/location/cloud/CloudLocationConfig.java +++ b/core/src/main/java/brooklyn/location/cloud/CloudLocationConfig.java @@ -75,6 +75,11 @@ public interface CloudLocationConfig { public static final ConfigKey<Object> INBOUND_PORTS = new BasicConfigKey<Object>(Object.class, "inboundPorts", "Inbound ports to be applied when creating a VM, on supported clouds " + "(either a single port as a String, or an Iterable<Integer> or Integer[])", null); + + public static final ConfigKey<Object> ADDITIONAL_INBOUND_PORTS = new BasicConfigKey<Object>(Object.class, "required.ports", + "Required additional ports to be applied when creating a VM, on supported clouds " + + "(either a single port as an Integer, or an Iterable<Integer> or Integer[])", null); + public static final ConfigKey<Boolean> OS_64_BIT = ConfigKeys.newBooleanConfigKey("os64Bit", "Whether to require 64-bit OS images (true), 32-bit images (false), or either (null)"); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/74232dff/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java ---------------------------------------------------------------------- diff --git a/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java b/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java index fed2830..a6c165d 100644 --- a/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java +++ b/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java @@ -21,8 +21,6 @@ package brooklyn.entity.basic; import groovy.time.TimeDuration; import java.util.Collection; -import java.util.Iterator; -import java.util.List; import java.util.Map; import java.util.Set; import java.util.Timer; @@ -416,6 +414,14 @@ public abstract class SoftwareProcessImpl extends AbstractEntity implements Soft result.putAll(getConfig(PROVISIONING_PROPERTIES)); if (result.get(CloudLocationConfig.INBOUND_PORTS) == null) { Collection<Integer> ports = getRequiredOpenPorts(); + Object requiredPorts = result.get(CloudLocationConfig.ADDITIONAL_INBOUND_PORTS); + if (requiredPorts instanceof Integer){ + ports.add((Integer)requiredPorts); + }else if (requiredPorts instanceof Iterable) { + for(Object o : (Iterable<?>)requiredPorts){ + if(o instanceof Integer) ports.add((Integer)o); + } + } if (ports != null && ports.size() > 0) result.put(CloudLocationConfig.INBOUND_PORTS, ports); } result.put(LocationConfigKeys.CALLER_CONTEXT, this); @@ -423,8 +429,7 @@ public abstract class SoftwareProcessImpl extends AbstractEntity implements Soft } /** returns the ports that this entity wants to use; - * default implementation returns 22 plus first value for each PortAttributeSensorAndConfigKey config key PortRange - * and any ports specified in provisioning properties as required. + * default implementation returns 22 plus first value for each PortAttributeSensorAndConfigKey config key PortRange. */ protected Collection<Integer> getRequiredOpenPorts() { Set<Integer> ports = MutableSet.of(22); @@ -435,18 +440,6 @@ public abstract class SoftwareProcessImpl extends AbstractEntity implements Soft } } - Map<String, Object> provisioningProperties = getConfig(PROVISIONING_PROPERTIES); - if(provisioningProperties.containsKey("required.ports")){ - Object requiredPorts = provisioningProperties.get("required.ports"); - if (requiredPorts instanceof Integer){ - ports.add((Integer)requiredPorts); - }else if (requiredPorts instanceof List) { - for(Object o : (List<?>)requiredPorts){ - if(o instanceof Integer) ports.add((Integer)o); - } - } - } - log.debug("getRequiredOpenPorts detected default {} for {}", ports, this); return ports; }
