You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2015/04/28 11:55:41 UTC

[1/9] incubator-brooklyn git commit: allow open ports to be specified in provisioning properties

Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master e38b4b757 -> d8a9a6f9b


allow open ports to be specified in provisioning properties


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/18b6c712
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/18b6c712
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/18b6c712

Branch: refs/heads/master
Commit: 18b6c712d5651d1fa654a7692b08740312965b42
Parents: 4f1eb45
Author: Robert Moss <ro...@gmail.com>
Authored: Sun Apr 12 11:27:03 2015 +0100
Committer: Robert Moss <ro...@gmail.com>
Committed: Sun Apr 12 11:27:03 2015 +0100

----------------------------------------------------------------------
 .../entity/basic/SoftwareProcessImpl.java         | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/18b6c712/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 3ce61f1..fed2830 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,8 @@ 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;
@@ -421,7 +423,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
+     * and any ports specified in provisioning properties as required.
      */
     protected Collection<Integer> getRequiredOpenPorts() {
         Set<Integer> ports = MutableSet.of(22);
@@ -429,8 +432,21 @@ public abstract class SoftwareProcessImpl extends AbstractEntity implements Soft
             if (PortRange.class.isAssignableFrom(k.getType())) {
                 PortRange p = (PortRange)getConfig(k);
                 if (p != null && !p.isEmpty()) ports.add(p.iterator().next());
+            }   
+        }
+        
+        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;
     }


[6/9] incubator-brooklyn git commit: change from TypeCoercion to prevent runtime error

Posted by he...@apache.org.
change from TypeCoercion to prevent runtime error


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/7296fa18
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/7296fa18
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/7296fa18

Branch: refs/heads/master
Commit: 7296fa185fac13c649612880e14a2125761acf34
Parents: 5543f97
Author: Robert Moss <ro...@gmail.com>
Authored: Thu Apr 16 17:55:04 2015 +0100
Committer: Robert Moss <ro...@gmail.com>
Committed: Thu Apr 16 17:55:04 2015 +0100

----------------------------------------------------------------------
 .../java/brooklyn/entity/basic/SoftwareProcessImpl.java   | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7296fa18/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 9efd186..69b20b2 100644
--- a/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java
+++ b/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java
@@ -30,6 +30,7 @@ import java.util.concurrent.TimeUnit;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import com.google.common.collect.Sets;
 
 import brooklyn.config.ConfigKey;
@@ -444,10 +445,11 @@ public abstract class SoftwareProcessImpl extends AbstractEntity implements Soft
             if (PortRange.class.isAssignableFrom(k.getType())) {
                 PortRange p = (PortRange)getConfig(k);
                 if (p != null && !p.isEmpty()) ports.add(p.iterator().next());
-            }   
-            if(k.getName().matches(".*\\.port")){
-                Integer value = TypeCoercions.coerce(getConfig(k), Integer.class);
-                if (value !=null)ports.add(value);
+            } else if(k.getName().matches(".*\\.port")){
+                Object value = getConfig(k);
+                if (value instanceof Integer){
+                    ports.add((Integer)value);
+                }
             }
         }        
         


[9/9] incubator-brooklyn git commit: This closes #592

Posted by he...@apache.org.
This closes #592


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/d8a9a6f9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/d8a9a6f9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/d8a9a6f9

Branch: refs/heads/master
Commit: d8a9a6f9b7b3b15cf306a3e04226d3219495d9a8
Parents: e38b4b7 cf2fb5d
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Tue Apr 28 10:55:10 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Tue Apr 28 10:55:10 2015 +0100

----------------------------------------------------------------------
 .../location/cloud/CloudLocationConfig.java     |  7 +++++
 .../entity/basic/SoftwareProcessImpl.java       | 28 +++++++++++++++++---
 2 files changed, 32 insertions(+), 3 deletions(-)
----------------------------------------------------------------------



[5/9] incubator-brooklyn git commit: change incorrect import for Sets

Posted by he...@apache.org.
change incorrect import for Sets


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/5543f97d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/5543f97d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/5543f97d

Branch: refs/heads/master
Commit: 5543f97d5b18a45a6f805b756221d432593b7f89
Parents: a8384e3
Author: Robert Moss <ro...@gmail.com>
Authored: Thu Apr 16 16:38:38 2015 +0100
Committer: Robert Moss <ro...@gmail.com>
Committed: Thu Apr 16 16:38:38 2015 +0100

----------------------------------------------------------------------
 .../src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5543f97d/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 31f2bb0..9efd186 100644
--- a/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java
+++ b/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java
@@ -21,7 +21,6 @@ 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;
@@ -31,7 +30,7 @@ import java.util.concurrent.TimeUnit;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.testng.collections.Sets;
+import com.google.common.collect.Sets;
 
 import brooklyn.config.ConfigKey;
 import brooklyn.enricher.basic.AbstractEnricher;
@@ -40,7 +39,6 @@ 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;


[3/9] incubator-brooklyn git commit: add open ports for config keys that end in .port

Posted by he...@apache.org.
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 <ro...@gmail.com>
Authored: Tue Apr 14 11:20:55 2015 +0100
Committer: Robert Moss <ro...@gmail.com>
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;
     }


[8/9] incubator-brooklyn git commit: fix formatting

Posted by he...@apache.org.
fix formatting


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/cf2fb5d0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/cf2fb5d0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/cf2fb5d0

Branch: refs/heads/master
Commit: cf2fb5d082d3709d8d046a91a62a37d676c49b3f
Parents: 263e1e7
Author: Robert Moss <ro...@gmail.com>
Authored: Mon Apr 20 11:10:18 2015 +0100
Committer: Robert Moss <ro...@gmail.com>
Committed: Mon Apr 20 11:10:18 2015 +0100

----------------------------------------------------------------------
 .../java/brooklyn/entity/basic/SoftwareProcessImpl.java   | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2fb5d0/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 69b20b2..ce28efd 100644
--- a/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java
+++ b/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java
@@ -418,11 +418,11 @@ public abstract class SoftwareProcessImpl extends AbstractEntity implements Soft
         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 (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);


[2/9] incubator-brooklyn git commit: create configKey ADDITIONAL_INBOUND_PORTS to augment getRequiredOpenPorts()

Posted by he...@apache.org.
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 <ro...@gmail.com>
Authored: Sun Apr 12 19:35:34 2015 +0100
Committer: Robert Moss <ro...@gmail.com>
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;
     }


[4/9] incubator-brooklyn git commit: convert to single loop, as per review

Posted by he...@apache.org.
convert to single loop, as per review


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/a8384e3f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/a8384e3f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/a8384e3f

Branch: refs/heads/master
Commit: a8384e3fcc6363d202e1252849a5ab1ed030961d
Parents: b671fb5
Author: Robert Moss <ro...@gmail.com>
Authored: Thu Apr 16 16:19:53 2015 +0100
Committer: Robert Moss <ro...@gmail.com>
Committed: Thu Apr 16 16:19:53 2015 +0100

----------------------------------------------------------------------
 .../entity/basic/SoftwareProcessImpl.java       | 22 ++++++++++----------
 1 file changed, 11 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a8384e3f/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 7fec000..31f2bb0 100644
--- a/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java
+++ b/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcessImpl.java
@@ -31,6 +31,7 @@ import java.util.concurrent.TimeUnit;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.testng.collections.Sets;
 
 import brooklyn.config.ConfigKey;
 import brooklyn.enricher.basic.AbstractEnricher;
@@ -57,6 +58,7 @@ import brooklyn.util.collections.MutableMap;
 import brooklyn.util.collections.MutableSet;
 import brooklyn.util.config.ConfigBag;
 import brooklyn.util.exceptions.Exceptions;
+import brooklyn.util.flags.TypeCoercions;
 import brooklyn.util.task.DynamicTasks;
 import brooklyn.util.task.Tasks;
 import brooklyn.util.time.CountdownTimer;
@@ -436,22 +438,20 @@ public abstract class SoftwareProcessImpl extends AbstractEntity implements Soft
      */
     protected Collection<Integer> getRequiredOpenPorts() {
         Set<Integer> ports = MutableSet.of(22);
-        for (ConfigKey k: getEntityType().getConfigKeys()) {
+        Map<ConfigKey<?>, ?> allConfig = config().getBag().getAllConfigAsConfigKeyMap();
+        Set<ConfigKey<?>> configKeys = Sets.newHashSet(allConfig.keySet());
+        configKeys.addAll(getEntityType().getConfigKeys());
+        
+        for (ConfigKey<?> k: configKeys) {
             if (PortRange.class.isAssignableFrom(k.getType())) {
                 PortRange p = (PortRange)getConfig(k);
                 if (p != null && !p.isEmpty()) ports.add(p.iterator().next());
             }   
-        }
-        
-        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);
-                }
+            if(k.getName().matches(".*\\.port")){
+                Integer value = TypeCoercions.coerce(getConfig(k), Integer.class);
+                if (value !=null)ports.add(value);
             }
-        }         
+        }        
         
         log.debug("getRequiredOpenPorts detected default {} for {}", ports, this);
         return ports;


[7/9] incubator-brooklyn git commit: add Beta annotation to ADDITIONAL_INBOUND_PORTS

Posted by he...@apache.org.
add Beta annotation to ADDITIONAL_INBOUND_PORTS


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/263e1e71
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/263e1e71
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/263e1e71

Branch: refs/heads/master
Commit: 263e1e71722287089e37cac7989d577293597e5c
Parents: 7296fa1
Author: Robert Moss <ro...@gmail.com>
Authored: Fri Apr 17 13:38:47 2015 +0100
Committer: Robert Moss <ro...@gmail.com>
Committed: Fri Apr 17 13:38:47 2015 +0100

----------------------------------------------------------------------
 .../main/java/brooklyn/location/cloud/CloudLocationConfig.java   | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/263e1e71/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 ad19f39..5aad7bd 100644
--- a/core/src/main/java/brooklyn/location/cloud/CloudLocationConfig.java
+++ b/core/src/main/java/brooklyn/location/cloud/CloudLocationConfig.java
@@ -18,6 +18,8 @@
  */
 package brooklyn.location.cloud;
 
+import com.google.common.annotations.Beta;
+
 import brooklyn.config.ConfigKey;
 import brooklyn.entity.basic.ConfigKeys;
 import brooklyn.event.basic.BasicConfigKey;
@@ -75,7 +77,7 @@ 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);
-    
+    @Beta
     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);