add open ports for config keys that end in .port
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/b671fb59 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/b671fb59 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/b671fb59 Branch: refs/heads/master Commit: b671fb5949034489746955c067cf04938f2dc7f7 Parents: 74232df Author: Robert Moss <[email protected]> Authored: Tue Apr 14 11:20:55 2015 +0100 Committer: Robert Moss <[email protected]> Committed: Tue Apr 14 11:20:55 2015 +0100 ---------------------------------------------------------------------- .../brooklyn/entity/basic/SoftwareProcessImpl.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b671fb59/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 a6c165d..7fec000 100644 --- a/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java +++ b/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java @@ -21,6 +21,7 @@ package brooklyn.entity.basic; import groovy.time.TimeDuration; import java.util.Collection; +import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.Timer; @@ -38,6 +39,7 @@ import brooklyn.entity.basic.ServiceStateLogic.ServiceNotUpLogic; import brooklyn.entity.drivers.DriverDependentEntity; import brooklyn.entity.drivers.EntityDriverManager; import brooklyn.entity.effector.EffectorBody; +import brooklyn.event.Sensor; import brooklyn.event.SensorEvent; import brooklyn.event.SensorEventListener; import brooklyn.event.feed.function.FunctionFeed; @@ -429,7 +431,8 @@ 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. + * default implementation returns 22 plus first value for each PortAttributeSensorAndConfigKey config key PortRange + * plus any ports defined with a config keys ending in .port */ protected Collection<Integer> getRequiredOpenPorts() { Set<Integer> ports = MutableSet.of(22); @@ -440,6 +443,16 @@ public abstract class SoftwareProcessImpl extends AbstractEntity implements Soft } } + Map<String, Object> allConfig = config().getBag().getAllConfig(); + for (String key : allConfig.keySet()) { + if(key.matches(".*\\.port")){ + Object value = allConfig.get(key); + if (value instanceof Integer){ + ports.add((Integer)value); + } + } + } + log.debug("getRequiredOpenPorts detected default {} for {}", ports, this); return ports; }
